Exemplo n.º 1
0
        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");
        }
Exemplo n.º 2
0
        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");
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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();
        }
Exemplo n.º 6
0
        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);
        }