private async Task CreaPDF(BodyModel item, long total) { PdfStamper.CreaPDF(item.Body, item.Path, item.EM, _model.UrlCLIENT); var dirInfo = new DirectoryInfo(Path.GetDirectoryName(item.Path)); var files = dirInfo.GetFiles().Where(f => !f.Name.ToLower().Contains("copertina")); await apiGateway.Stampe.AddInfo(_stampa.UIDStampa, $"Progresso {files.Count()}/{total}"); }
internal async Task <Dictionary <Guid, BodyModel> > GeneraPDFEmendamenti(IEnumerable <EmendamentiDto> Emendamenti, int Da, int A, string _pathTemp) { var listaPercorsiEM = new Dictionary <Guid, BodyModel>(); try { listaPercorsiEM = Emendamenti.ToDictionary(em => em.UIDEM, em => new BodyModel()); Action <BodyModel> CreaPDF = item => { Log.Debug($"Percorso EM [{item.Path}]"); //Creo PDF EM con allegati PdfStamper.CreaPDF(item.Body, item.Path, item.EM, model.urlCLIENT); }; if (Da != 0 && A != 0) { Log.Debug($"Stampo solo DA [{Da}], A [{A}]"); var j = 1; var k = Da; var k_end = A; foreach (var item in Emendamenti) { if (j >= k) { if (j > k_end) { break; } var bodyPDF = await ApiGateway.GetBodyEM(item.UIDEM, TemplateTypeEnum.PDF); var nameFilePDF = $"{item.DisplayTitle.Replace(" ", "_").Replace("all'", "")}_{item.UIDEM}_{DateTime.Now:ddMMyyyy_hhmmss}.pdf"; var FilePathComplete = Path.Combine(_pathTemp, nameFilePDF); var dettagliCreaPDF = new BodyModel { Path = FilePathComplete, Body = bodyPDF, EM = item }; listaPercorsiEM[item.UIDEM] = dettagliCreaPDF; } j++; } } else { foreach (var item in Emendamenti) { var bodyPDF = await ApiGateway.GetBodyEM(item.UIDEM, TemplateTypeEnum.PDF); var nameFilePDF = $"{item.DisplayTitle.Replace(" ", "_").Replace("all'", "")}_{item.UIDEM}_{DateTime.Now:ddMMyyyy_hhmmss}.pdf"; var FilePathComplete = Path.Combine(_pathTemp, nameFilePDF); var dettagliCreaPDF = new BodyModel { Path = FilePathComplete, Body = bodyPDF, EM = item }; listaPercorsiEM[item.UIDEM] = dettagliCreaPDF; } } listaPercorsiEM.AsParallel().ForAll(item => CreaPDF(item.Value)); } catch (Exception ex) { Log.Error("GeneraPDFEmendamenti Error-->", ex); } return(listaPercorsiEM); }