Try your search with a different keyword or use * as a wildcard.
using Microsoft.AspNetCore.Http;
using Nop.Core;
using Nop.Data;
namespace Nop.Services.Installation;
/// <summary>
/// Represents middleware that checks whether database is installed and redirects to installation URL in otherwise
/// </summary>
public partial class InstallUrlMiddleware
{
#region Fields
protected readonly RequestDelegate _next;
#endregion
#region Ctor
public InstallUrlMiddleware(RequestDelegate next)
{
_next = next;
}
#endregion
#region Methods
/// <summary>
/// Invoke middleware actions
/// </summary>
/// <param name="context">HTTP context</param>
/// <param name="webHelper">Web helper</param>
/// <returns>A task that represents the asynchronous operation</returns>
public virtual async Task InvokeAsync(HttpContext context, IWebHelper webHelper)
{
//whether database is installed
if (!DataSettingsManager.IsDatabaseInstalled())
{
var installUrl = $"{webHelper.GetStoreLocation()}{NopInstallationDefaults.InstallPath}";
if (!webHelper.GetThisPageUrl(false).StartsWith(installUrl, StringComparison.InvariantCultureIgnoreCase))
{
//redirect
context.Response.Redirect(installUrl);
return;
}
}
//or call the next middleware in the request pipeline
await _next(context);
}
#endregion
}