Beispiel #1
0
        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);
        }
Beispiel #2
0
        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 }));
            }
        }
Beispiel #3
0
        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);
        }