public async Task RestCache() { var dataConfig = new DataConfig(); dataConfig.ConnectionString = "mongodb://localhost:27017"; dataConfig.DatabaseName = "bworld"; var database = new MongoDatabase(Options.Create(dataConfig)); var dataFactoryMongo = new DataFactoryMongo(database, new MongoBlob(database), Options.Create(dataConfig)); var businessFactory = new BusinessModuleFactory(null); var resetSiteCacheCommand = new ResetSiteCacheCommand(dataFactoryMongo, new CacheProvider(dataFactoryMongo, businessFactory, new RouteProvider(dataFactoryMongo, businessFactory))); var domainDatas = new Dictionary <string, string>(); domainDatas.Add("domain", "localhost"); resetSiteCacheCommand.Input = new ResetSiteCacheInput() { Site = new CurrentRequest() { SiteId = "227aefdb-a2b9-4c27-98d9-2f0db43f99ca", DomainDatas = domainDatas } }; await resetSiteCacheCommand.ExecuteAsync(); }
// // GET: /Home/ public HomeController(BusinessFactory business, IRouteManager routeManager, ModuleManager moduleManager, GetSeoCommand getSeoCommand, SeoService seoService, ResetSiteCacheCommand resetSiteCacheCommand, IOptions <ApplicationConfig> options, ILogger <HomeController> logger) : base(business) { _routeManager = routeManager; _moduleManager = moduleManager; _seoService = seoService; _resetSiteCacheCommand = resetSiteCacheCommand; _logger = logger; _applicationConfig = options.Value; _getSeoCommand = getSeoCommand; }
public async Task Test1() { try { var services = new ServiceCollection(); var serviceProvider = services.BuildServiceProvider(); var dataConfig = new DataConfig(); dataConfig.ConnectionString = "mongodb://localhost:27017"; dataConfig.DatabaseName = "bworld"; var database = new MongoDatabase(Options.Create(dataConfig)); var dataFactoryMongo = new DataFactoryMongo(database, new MongoBlob(database), Options.Create(dataConfig)); var businessFactory = new BusinessModuleFactory(serviceProvider); var cacheProvider = new CacheProvider(dataFactoryMongo, businessFactory, new RouteProvider(dataFactoryMongo, businessFactory)); var domainDatas = new Dictionary <string, string>(); domainDatas.Add("domain", "localhost"); var resetSiteCacheCommand = new ResetSiteCacheCommand(dataFactoryMongo, cacheProvider); resetSiteCacheCommand.Input = new ResetSiteCacheInput() { Site = new CurrentRequest() { SiteId = "c27e39ee-7ba9-46f8-aa7c-9e334c72a96c", //"227aefdb-a2b9-4c27-98d9-2f0db43f99ca", DomainDatas = domainDatas } }; await cacheProvider.InitializeCacheAsync(); //await resetSiteCacheCommand.ExecuteAsync(); } catch (Exception ex) { Console.WriteLine(ex); } //await resetSiteCacheCommand.ExecuteAsync(); }
public async Task <ActionResult <BaseParameters> > Master([FromServices] ModuleManager moduleManager, [FromServices] ResetSiteCacheCommand resetSiteCacheCommand, [FromServices] IRouteManager routeManager, [FromServices] IOptions <ApplicationConfig> options, [FromQuery] string url, [FromQuery] string port = "") { var fullRequestUrl = HttpUtility.UrlDecode(url); var fullUrl = fullRequestUrl.Split('?')[0]; if (fullUrl.Contains(":")) { fullUrl = fullUrl.Replace($":{port}", ""); } var parameters = new BaseParameters(); var simpleUrl = fullUrl.Replace("https://", "").Replace("http://", ""); var findRouteInput = new FindRouteInput(); findRouteInput.Url = simpleUrl; findRouteInput.FullUrl = fullRequestUrl; findRouteInput.IsSecure = true; findRouteInput.Port = Request.Host.Port.ToString(); var findRouteResult = await routeManager.FindRouteAsync(findRouteInput); if (!findRouteResult.IsSuccess) { return(NotFound()); } var currentRequest = new CurrentRequest(); var siteId = findRouteResult.SiteId; currentRequest.SiteId = siteId; currentRequest.DomainId = findRouteResult.DomainId; currentRequest.DomainDatas = new Dictionary <string, string>(); currentRequest.IsSecure = true; currentRequest.Port = findRouteInput.Port; if (findRouteResult.DomainDatas != null) { foreach (var domainData in findRouteResult.DomainDatas) { currentRequest.DomainDatas.Add(domainData); } } dynamic master; try { master = await moduleManager.GetMasterAsync(currentRequest); } catch (Exception exception) { _logger.LogError(exception, "This catch should be remove"); master = await Business.InvokeAsync <ResetSiteCacheCommand, ResetSiteCacheInput, CommandResult <dynamic> >( resetSiteCacheCommand, new ResetSiteCacheInput { Site = currentRequest }); } var value = options.Value; var baseUrlJs = value.MainDomainUrl; parameters.Master = JsonConvert.SerializeObject(master, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); parameters.Version = value.Version; parameters.MainDomainUrl = @UrlHelper.Concat(baseUrlJs); parameters.IsDebug = value.IsDebug; parameters.BaseUrlJs = baseUrlJs; parameters.Header = HomeController.GetHeader(findRouteResult, master, Request, fullRequestUrl); parameters.BaseUrlSite = parameters.Header.BaseUrlSite; return(parameters); }
public async Task <ActionResult <BaseParameters> > Master([FromServices] ModuleManager moduleManager, [FromServices] ResetSiteCacheCommand resetSiteCacheCommand, [FromServices] IRouteManager routeManager, [FromServices] IOptions <ApplicationConfig> options, [FromQuery] string url, [FromQuery] string port = "") { /*var requestedDomain = $"{Request.Scheme}://{Request.Host.Host}"; * string applicationPath = Request.PathBase; * string requestedPath = path; * var fullRequestUrl = @UrlHelper.Concat(requestedDomain, Request.PathBase, requestedPath); * * var fullUrl = UrlHelper.Concat(requestedDomain, applicationPath, requestedPath);*/ var fullRequestUrl = url; var fullUrl = fullRequestUrl.Split('?')[0]; if (fullUrl.Contains(":")) { fullUrl = fullUrl.Replace($":{port}", ""); } var parameters = new BaseParameters(); var simpleUrl = fullUrl.Replace("https://", "").Replace("http://", ""); var findRouteInput = new FindRouteInput(); findRouteInput.Url = simpleUrl; findRouteInput.FullUrl = fullRequestUrl; findRouteInput.IsSecure = true; findRouteInput.Port = Request.Host.Port.ToString(); var findRouteResult = await routeManager.FindRouteAsync(findRouteInput); if (!findRouteResult.IsSuccess) { return(NotFound()); } var currentRequest = new CurrentRequest(); var siteId = findRouteResult.SiteId; currentRequest.SiteId = siteId; currentRequest.DomainId = findRouteResult.DomainId; currentRequest.DomainDatas = new Dictionary <string, string>(); currentRequest.IsSecure = true; currentRequest.Port = findRouteInput.Port; if (findRouteResult.DomainDatas != null) { foreach (var domainData in findRouteResult.DomainDatas) { currentRequest.DomainDatas.Add(domainData); } } dynamic master; try { master = await moduleManager.GetMasterAsync(currentRequest); } catch (Exception exception) { _logger.LogError(exception, "This catch should be remove"); master = await Business.InvokeAsync <ResetSiteCacheCommand, ResetSiteCacheInput, CommandResult <dynamic> >( resetSiteCacheCommand, new ResetSiteCacheInput { Site = currentRequest }); } var value = options.Value; parameters.Master = master; parameters.Version = value.Version; parameters.MainDomainUrl = @UrlHelper.Concat(value.MainDomainUrl); parameters.IsDebug = value.IsDebug; //var baseUrl = UriHelper.BuildAbsolute(Request.Scheme, Request.Host).TrimEnd('/'); // parameters.BaseUrl = baseUrl; var baseUrlJs = ""; baseUrlJs = value.MainDomainUrl; parameters.BaseUrlJs = baseUrlJs; // var masterJson = JsonConvert.SerializeObject(master); parameters.Header = HomeController.GetHeader(findRouteResult, master, Request, fullRequestUrl); parameters.BaseUrlSite = parameters.Header.BaseUrlSite; return(parameters); }