private async Task <List <ClaimFilePage> > GenerateAllDocumentation(Claim claim) { List <ClaimFilePage> claimFilePages = new List <ClaimFilePage>(); if (claim.StateId != (long)ClaimState.eId.Pendiente_de_Presentación) { return(null); } var claimFiles = await getFileService.GetByClaimId(claim.Id, true); if (claimFiles == null) { return(null); } var filesToPrint = claimFiles.Where(file => !file.Printed).ToList(); foreach (var file in filesToPrint) { if (file.FileTypeId == (long)FileType.eId.reclamo) { continue; } if (file != null) { if (file.FileName.ToLower().Contains(".pdf")) { //Si es pdf lo agrego directamente byte[] bFile = Convert.FromBase64String(file.Base64); if (await CanAdd(bFile)) { ClaimFilePage claimDocPage = new ClaimFilePage(); claimDocPage.Page = bFile; claimDocPage.ClaimId = claim.Id; claimFilePages.Add(claimDocPage); } } else { //sino debe crear una nueva pagina de pdf a partir del archivo imagen, y luego la agrego byte[] bFile = Convert.FromBase64String(file.Base64); byte[] bFileFromImage = pdfMerge.CreatePdfFromFile(bFile); if (await CanAdd(bFileFromImage)) { ClaimFilePage claimDocPage = new ClaimFilePage(); claimDocPage.Page = bFileFromImage; claimDocPage.ClaimId = claim.Id; claimFilePages.Add(claimDocPage); } } } } await updateFileService.MarkAsPrinted(filesToPrint); return(claimFilePages); }
public async Task <IActionResult> GetByClaimId(long claimId) { try { var files = await getFileService.GetByClaimId(claimId); if (files == null) { return(NotFound()); } return(Ok(new { files = files.Adapt <List <ClaimSimpleFileDto> >() })); } catch (Exception ex) { return(StatusCode(StatusCodes.Status500InternalServerError, new { message = ex.Message })); } }
public override async Task <long> ChangeNextState(Claim claim, long newStateSetedByuser) { if (newStateSetedByuser == (long)ClaimState.eId.Borrador) { var files = await getFileService.GetByClaimId(claim.Id); if (files != null) { var reclamo = files.FirstOrDefault(x => x.FileTypeId == (long)FileType.eId.reclamo); if (reclamo != null) { await deleteFileService.Delete(reclamo); } } } if (newStateSetedByuser > 0) { return(newStateSetedByuser); } return((long)ClaimState.eId.En_Revision); }