예제 #1
0
        public async Task CreatePdfAsync(int jumpStartId)
        {
            var jumpStart = await _dbContext.JumpStarts
                            .FirstOrDefaultAsync(item => item.Id == jumpStartId && item.HasPdf == false);

            if (jumpStart is null)
            {
                // We already created pdf for this one
                return;
            }

            var articles = await _dbContext.Articles
                           .Include(item => item.Category)
                           .ThenInclude(item => item.Image)
                           .Where(item => item.Date == jumpStart.DateTime.Date)
                           .OrderBy(item => item.Order).ToListAsync();

            var pdfData = await _puppeteerService.BuildPdfAsync(jumpStart.DateTime, articles);

            await UploadPdfAsync(jumpStart, pdfData);

            jumpStart.HasPdf = true;
            _dbContext.Update(jumpStart);

            await _dbContext.SaveChangesAsync();

            _backgroundJobClient.Enqueue <EmailRecipientJob>(job =>
                                                             job.CreateForJumpStart(jumpStart.Id));
        }
예제 #2
0
        public async Task SetValueAsync <T>(string companySlug, T value)
        {
            var json = JsonConvert.SerializeObject(value);

            var config = await _dbContext.Settings
                         .Include(item => item.Company)
                         .FirstOrDefaultAsync(item => item.Company.Slug == companySlug.ToLower());

            if (config is null)
            {
                var company = await _dbContext.Companies
                              .FirstOrDefaultAsync(item => item.Slug == companySlug.ToLower());

                _dbContext.Settings.Add(new Setting
                {
                    CompanyId = company.Id,
                    Value     = json
                });
            }
            else
            {
                config.Value = json;
                _dbContext.Update(config);
            }

            await _dbContext.SaveChangesAsync();
        }