public async Task ExecuteAsync() { var start = DateTime.Now; _logger.Log($"Starting {_jobName} @ {start.ToString("HH:mm:ss.ffff")}"); _connectDb.EnsureMigrated(); var duration = DateTime.Now - start; _logger.Log($"Finished {_jobName} in {duration.Seconds}.{duration.Milliseconds} seconds"); }
public async Task ExecuteAsync() { var start = DateTime.Now; _logger.Log($"Starting {nameof(JobLongRunning)} @ {start.ToString("HH:mm:ss.ffff")}"); // job should last between 10 to 30 seconds await Task.Delay(10000); await Task.Delay((int)Math.Floor(new Random().NextDouble() * 20000)); var duration = DateTime.Now - start; _logger.Log($"Finished {nameof(JobLongRunning)} in {duration.Seconds}.{duration.Milliseconds} seconds"); }
public async Task <IActionResult> RunLuceneJob([FromServices] SiteManager siteManager, [FromForm] string siteId) { var processId = Guid.NewGuid().ToString(); var site = await siteManager.GetByIdAsync(siteId); await _jobs.EnqueueAsync <SitePublisher>( publisher => publisher.QueueSearchIndex(site) ); _logger.SetCategory("Jobs.Lucene", processId); _logger.Log($"Queued {site.Title} with external crawler service."); return(Ok(processId)); }
public async Task ExecuteAsync() { var message = "Excuted " + this.GetType().Name; try { var users = await _poolManager.GetUsersAsync("global-pool"); var count = users.ToList().Count.ToString(); message += $": There are {count} user(s)."; } catch (Exception ex) { message += $": {ex.Message}"; } _logger.Log(message); }
public async Task ExportSiteAsTemplate(string siteId, string templateId, string templateTitle, string processId) { if (siteId == null) { throw new ArgumentNullException(nameof(siteId)); } if (string.IsNullOrWhiteSpace(templateId)) { throw new ArgumentNullException(nameof(templateId)); } if (string.IsNullOrWhiteSpace(templateTitle)) { throw new ArgumentNullException(nameof(templateTitle)); } templateId = templateId.Replace(" ", String.Empty).ToLower(); // Get the site and site template for common access _site = await _siteManager.GetByIdAsync(siteId); _baseTemplate = _templateManager.GetTemplate(_site.SiteTemplateId); // Set IO paths for common access _exportTemplateFolder = Path.Combine(_exportRootFolder, templateId); _exportDataFolder = Path.Combine(_exportTemplateFolder, SiteTemplate.DATA_FOLDER_NAME); _exportDefaultThemeFolder = Path.Combine(_exportTemplateFolder, SiteTemplate.THEMES_FOLDER_NAME, SiteTemplate.THEMES_DEFAULT_NAME); _baseTemplateFolder = Path.Combine(_coreOptions.FileSystemRoot, _baseTemplate.TemplateFolder.Replace("/", @"\")); _baseDefaultThemeFolder = Path.Combine(_baseTemplateFolder, SiteTemplate.THEMES_FOLDER_NAME, SiteTemplate.THEMES_DEFAULT_NAME); _logger.SetCategory("Jobs.ExportTemplate", processId ?? Guid.NewGuid().ToString()); _logger.Log($"Exporting site {_site.Title} as Template {templateTitle}, version {CURRENT_SCHEMA}"); // Initialize a new template to export _exportTemplate = new SiteTemplate() { Schema = CURRENT_SCHEMA, Id = templateId, Title = templateTitle, PageTemplates = new List <PageTemplate>(), Pages = new List <SiteTemplatePage>(), MasterPages = new List <SiteTemplateMasterPage>(), NavMenus = new List <SiteTemplateNav>(), Themes = new List <SiteTemplateTheme>(), // scripts can be set directly from base w/o modification Scripts = _baseTemplate.Scripts }; // Perform export steps ScaffoldExportFolder(); ExportDefaultTheme(); ExportPageTemplates(); await ExportSiteCssAsTemplateCss(); await ExportMasterPages(); await ExportPages(); WriteTemplateConfigFile(); _logger.Log("Export complete"); // Refresh template manager cache to pickup the exported template _templateManager.RefreshInternalCache(); }
protected int ProcessNotificationEmail(Notification note, List <User> assignedUsers) { int errorCount = 0; var sentList = GetNotificationEmailLogs(note.Id); var sentUserIds = sentList.Select(log => log.UserId).ToList(); // Remove the users that have already received this email. var sendList = assignedUsers.Where(u => sentUserIds.Contains(u.Id) == false).ToList(); foreach (User user in sendList) { try { if (string.IsNullOrEmpty(user.Email)) { _logger.Log("WARNING", $"[NotificationId:{note.Id}, UserId:{user.Id}] No email address defined for user."); } else if (user.EmailConfirmed == false) { _logger.Log("WARNING", $"[NotificationId:{note.Id}, UserId:{user.Id}, Email:{user.Email}] Email address has not been confirmed."); } else if (IsValidEmail(user.Email) == false) { _logger.Log("WARNING", $"[NotificationId:{note.Id}, UserId:{user.Id}, Email:{user.Email}] Invalid email address."); } else { SendEmail(note, user); InsertNotificationEmailLog(new NotificationEmailLog() { SentUTC = DateTime.UtcNow, NotificationId = note.Id, UserId = user.Id, EmailAddress = user.Email }); } } catch (Exception ex) { var msg = $"[NotificationId:{note.Id}, UserId:{user.Id}, Email:{user.Email ?? "(undefined)"}] "; _logger.Log("ERROR", msg + ex.Message); errorCount++; } } return(errorCount); }