private async Task <IEnumerable <Site> > InsertInitialSiteAsync() { int?outgoingMailPort = null; if (!string.IsNullOrEmpty(_config[ConfigurationKey.DefaultOutgoingMailPort])) { outgoingMailPort = int.Parse(_config[ConfigurationKey.DefaultOutgoingMailPort]); } var site = new Site { IsDefault = true, Name = _config[ConfigurationKey.DefaultSiteName], PageTitle = _config[ConfigurationKey.DefaultPageTitle], Path = _config[ConfigurationKey.DefaultSitePath], Footer = _config[ConfigurationKey.DefaultFooter], OutgoingMailHost = _config[ConfigurationKey.DefaultOutgoingMailHost], OutgoingMailLogin = _config[ConfigurationKey.DefaultOutgoingMailLogin], OutgoingMailPassword = _config[ConfigurationKey.DefaultOutgoingMailPassword], OutgoingMailPort = outgoingMailPort, RegistrationOpens = _dateTimeProvider.Now, ProgramStarts = _dateTimeProvider.Now, ProgramEnds = _dateTimeProvider.Now.AddDays(60), AccessClosed = _dateTimeProvider.Now.AddDays(90) }; site = await _siteRepository.AddSaveAsync(-1, site); await _cache.RemoveAsync(CacheKey.Sites); _logger.LogInformation("Inserted initial site named: {SiteName}", site.Name); await _initialSetupService.InsertAsync(site.Id, _config[ConfigurationKey.InitialAuthorizationCode]); _logger.LogInformation("Inserted initial authorization code"); return(new List <Site> { site }); }