public async Task <int> UpdateItem(ExportRequestDto dto) { using (var ctx = _contextFactory.ConstructContext()) { ctx.Update(dto.ToEntity()); return(await ctx.SaveChangesAsync(true)); } }
public IActionResult Export([FromBody] ExportRequestDto exportRequest) { Thread background = new Thread(() => _exportService.Export(exportRequest)); background.Start(); return(NoContent()); }
public async Task <ExportRequestDto> QueueRequest(ExportRequestDto request) { using (var ctx = _contextFactory.ConstructContext()) { var ent = await ctx.ExportQueue.AddAsync(request.ToEntity()); await ctx.SaveChangesAsync(true); return(ent.Entity.ToDto()); } }
private async Task SendResultEmail(ExportRequestDto dto, byte[] zip) { await _emailAccessor.SendEmail(new EmailMessageDto { To = dto.Email, From = "*****@*****.**", //TODO pull from settings Subject = $"Export Result {dto.RequestId}", Body = $"Request Id: '{dto.RequestId}' is complete! <br />Check this message for an attatchment.", FileName = $"Export-{DateTime.Now:yyyy-MM-dd}.zip", AttatchmentMime = "application/zip", File = zip }); }
public async Task <IActionResult> ExportToJson([FromQuery] ExportRequestDto request, CancellationToken cancellationToken) { if (request.StartDate > request.EndDate) { ModelState.AddModelError(nameof(request.StartDate), "Start date cannot be greater than end date"); return(BadRequest(ModelState)); } var fileContents = await _exportService.ExportToJsonAsync(request, cancellationToken); return(File(fileContents, "application/json")); }
internal static ExportQueueEntity ToEntity(this ExportRequestDto dto) { if (dto == null) { return(null); } return(new ExportQueueEntity { Id = dto.Id, RequestId = dto.RequestId, Email = dto.Email, UserId = dto.UserId, ExportType = (int)dto.ExportType, Status = (int)dto.Status, StartRange = dto.StartRange, LastUpdated = null, TimeStamp = dto.TimeStamp == DateTimeOffset.MinValue ? null : (DateTimeOffset?)dto.TimeStamp }); }