public async Task <BaseResponse <AttiDto> > Get(Guid sedutaUId, ClientModeEnum mode, int page, int size) { try { var requestUrl = $"{apiUrl}/atti/view"; var param = new Dictionary <string, object> { { "CLIENT_MODE", (int)mode } }; var model = new BaseRequest <AttiDto> { id = sedutaUId, page = page, size = size, param = param }; var body = JsonConvert.SerializeObject(model); var lst = JsonConvert.DeserializeObject <BaseResponse <AttiDto> >(await Post(requestUrl, body, _token)); return(lst); } catch (UnauthorizedAccessException ex) { Log.Error("GetAtti", ex); throw ex; } catch (Exception ex) { Log.Error("GetAtti", ex); throw ex; } }
public async Task <ActionResult> EsportaDOC(Guid id, OrdinamentoEnum ordine, ClientModeEnum mode) { try { var apiGateway = new ApiGateway(_Token); var file = await apiGateway.Esporta.EsportaWORD(id, ordine, mode); return(Json(Convert.ToBase64String(file.Content), JsonRequestBehavior.AllowGet)); } catch (Exception e) { Console.WriteLine(e); return(Json(new ErrorResponse(e.Message), JsonRequestBehavior.AllowGet)); } }
public async Task <ActionResult> EsportaXLS(Guid id, OrdinamentoEnum ordine = OrdinamentoEnum.Default, ClientModeEnum mode = ClientModeEnum.GRUPPI, bool is_report = false) { try { var apiGateway = new ApiGateway(_Token); var file = await apiGateway.Esporta.EsportaXLS(id, ordine, mode, is_report); return(Json(Convert.ToBase64String(file.Content), JsonRequestBehavior.AllowGet)); } catch (Exception e) { Log.Error("EsportaXLS", e); return(Json(new ErrorResponse(e.Message), JsonRequestBehavior.AllowGet)); } }
public async Task <ActionResult> RiepilogoEmendamenti(Guid id, ClientModeEnum mode = ClientModeEnum.GRUPPI, OrdinamentoEnum ordine = OrdinamentoEnum.Presentazione, ViewModeEnum view = ViewModeEnum.GRID, int page = 1, int size = 50) { var apiGateway = new ApiGateway(_Token); EmendamentiViewModel model; var view_require_my_sign = Convert.ToBoolean(Request.QueryString["require_my_sign"]); if (Session["RicaricaFiltri"] is bool) { if (Convert.ToBoolean(Session["RicaricaFiltri"])) { Session["RicaricaFiltri"] = false; //reset sessione if (Session["RiepilogoEmendamenti"] is EmendamentiViewModel old_model) { try { if (HttpContext.User.IsInRole(RuoliExt.Amministratore_PEM) || HttpContext.User.IsInRole(RuoliExt.Segreteria_Assemblea)) { return(View("RiepilogoEM_Admin", old_model)); } return(View("RiepilogoEM", old_model)); } catch (Exception e) { Session["RiepilogoEmendamenti"] = null; } } } } SetCache(page, size, ordine, view); var composeModel = await ComposeModel(id, mode, ordine, view, page, size, view_require_my_sign); Session["RiepilogoEmendamenti"] = composeModel; if (HttpContext.User.IsInRole(RuoliExt.Amministratore_PEM) || HttpContext.User.IsInRole(RuoliExt.Segreteria_Assemblea)) { return(View("RiepilogoEM_Admin", composeModel)); } return(View("RiepilogoEM", composeModel)); }
public async Task <ActionResult> RiepilogoAtti(Guid id, ClientModeEnum mode = ClientModeEnum.GRUPPI, int page = 1, int size = 50) { var sedutaInDb = await ApiGateway.GetSeduta(id); var model = new AttiViewModel { Data = await ApiGateway.GetAtti(id, mode, page, size), Seduta = sedutaInDb }; if (HttpContext.User.IsInRole(RuoliEnum.Amministratore_PEM) || HttpContext.User.IsInRole(RuoliEnum.Segreteria_Assemblea)) { return(View("RiepilogoAtti_Admin", model)); } return(View("RiepilogoAtti", model)); }
public async Task <ActionResult> RiepilogoAtti(Guid id, ClientModeEnum mode = ClientModeEnum.GRUPPI, int page = 1, int size = 50) { Session["RiepilogoEmendamenti"] = null; var apiGateway = new ApiGateway(_Token); var sedutaInDb = await apiGateway.Sedute.Get(id); var model = new AttiViewModel { Data = await apiGateway.Atti.Get(id, mode, page, size), Seduta = sedutaInDb }; if (HttpContext.User.IsInRole(RuoliExt.Amministratore_PEM) || HttpContext.User.IsInRole(RuoliExt.Segreteria_Assemblea)) { return(View("RiepilogoAtti_Admin", model)); } return(View("RiepilogoAtti", model)); }
public async Task <ActionResult> RiepilogoEmendamenti(Guid id, ClientModeEnum mode, OrdinamentoEnum ordine = OrdinamentoEnum.Presentazione, int page = 1, int size = 50) { HttpContext.Cache.Insert( "OrdinamentoEM", (int)ordine, null, DateTime.Now.AddMinutes(2), Cache.NoSlidingExpiration, CacheItemPriority.NotRemovable, (key, value, reason) => { Console.WriteLine("Cache removed"); } ); var model = await ApiGateway.GetEmendamenti(id, mode, ordine, page, size); if (HttpContext.User.IsInRole(RuoliEnum.Amministratore_PEM) || HttpContext.User.IsInRole(RuoliEnum.Segreteria_Assemblea)) { //foreach (var emendamentiDto in model.Data.Results) // emendamentiDto.BodyEM = await ApiGateway.GetBodyEM(emendamentiDto.UIDEM, TemplateTypeEnum.PDF); return(View("RiepilogoEM_Admin", model)); } //foreach (var emendamentiDto in model.Data.Results) // if (emendamentiDto.STATI_EM.IDStato <= (int) StatiEnum.Depositato) // { // if (emendamentiDto.ConteggioFirme > 0) // emendamentiDto.Firmatari = await Utility.GetFirmatariEM( // await ApiGateway.GetFirmatari(emendamentiDto.UIDEM, FirmeTipoEnum.TUTTE), // CurrentUser.UID_persona, FirmeTipoEnum.TUTTE, true); // emendamentiDto.Destinatari = // await Utility.GetDestinatariNotifica(await ApiGateway.GetInvitati(emendamentiDto.UIDEM)); // } return(View("RiepilogoEM", model)); }
public static async Task <EmendamentiViewModel> Get(Guid attoUId, ClientModeEnum mode, OrdinamentoEnum ordine, int page, int size) { try { var requestUrl = $"{apiUrl}/emendamenti/view"; var param = new Dictionary <string, object> { { "CLIENT_MODE", (int)mode } }; var model = new BaseRequest <AttiDto> { id = attoUId, page = page, size = size, ordine = ordine, param = param }; var body = JsonConvert.SerializeObject(model); var lst = JsonConvert.DeserializeObject <EmendamentiViewModel>(await Post(requestUrl, body)); return(lst); } catch (UnauthorizedAccessException ex) { Log.Error("GetEmendamenti", ex); throw ex; } catch (Exception ex) { Log.Error("GetEmendamenti", ex); throw ex; } }
public async Task <FileResponse> EsportaXLS(Guid attoUId, OrdinamentoEnum ordine, ClientModeEnum mode, bool is_report = false) { try { var requestUrl = $"{apiUrl}/emendamenti/esporta-griglia-xls?id={attoUId}&ordine={ordine}&mode={mode}&is_report={is_report}"; var lst = await GetFile(requestUrl, _token); return(lst); } catch (UnauthorizedAccessException ex) { Log.Error("EsportaXLS", ex); throw ex; } catch (Exception ex) { Log.Error("EsportaXLS", ex); throw ex; } }
public async Task <HttpResponseMessage> EsportaGrigliaExcel(Guid id, OrdinamentoEnum ordine, ClientModeEnum mode, PersonaDto persona) { try { var FilePathComplete = GetLocalPath("xlsx"); var atto = await _unitOfWork.Atti.Get(id); IWorkbook workbook = new XSSFWorkbook(); var excelSheet = workbook.CreateSheet($"{atto.TIPI_ATTO.Tipo_Atto} {atto.NAtto}"); var row = excelSheet.CreateRow(0); SetColumnValue(ref row, "Ordine"); if (persona.CurrentRole == RuoliIntEnum.Amministratore_PEM) { SetColumnValue(ref row, "IDEM"); SetColumnValue(ref row, "Atto"); } SetColumnValue(ref row, "Numero EM"); SetColumnValue(ref row, "Data Deposito"); SetColumnValue(ref row, "Stato"); SetColumnValue(ref row, "Tipo"); SetColumnValue(ref row, "Parte"); SetColumnValue(ref row, "Articolo"); SetColumnValue(ref row, "Comma"); SetColumnValue(ref row, "Lettera"); SetColumnValue(ref row, "Titolo"); SetColumnValue(ref row, "Capo"); if (atto.VIS_Mis_Prog) { SetColumnValue(ref row, "Missione"); SetColumnValue(ref row, "Programma"); SetColumnValue(ref row, "TitoloB"); } SetColumnValue(ref row, "Proponente"); SetColumnValue(ref row, "Area Politica"); SetColumnValue(ref row, "Firmatari"); SetColumnValue(ref row, "Firmatari dopo deposito"); SetColumnValue(ref row, "LinkEM"); var personeInDb = await _unitOfWork.Persone.GetAll(); var personeInDbLight = personeInDb.Select(Mapper.Map <View_UTENTI, PersonaLightDto>).ToList(); var emList = await _logicEm.ScaricaEmendamenti(id, ordine, mode, persona, personeInDbLight, false, true); var totalProcessTime = 0f; foreach (var em in emList) { var startTimer = DateTime.Now; var rowEm = excelSheet.CreateRow(excelSheet.LastRowNum + 1); if (ordine == OrdinamentoEnum.Presentazione) { SetColumnValue(ref rowEm, em.OrdinePresentazione.ToString()); } else if (ordine == OrdinamentoEnum.Votazione) { SetColumnValue(ref rowEm, em.OrdineVotazione.ToString()); } if (persona.CurrentRole == RuoliIntEnum.Amministratore_PEM) { SetColumnValue(ref rowEm, em.UIDEM.ToString()); var legislatura = await _unitOfWork.Legislature.Get(atto.SEDUTE.id_legislatura); SetColumnValue(ref rowEm, $"{atto.TIPI_ATTO.Tipo_Atto}-{atto.NAtto}-{legislatura.num_legislatura}"); } SetColumnValue(ref rowEm, em.N_EM); SetColumnValue(ref rowEm, em.DataDeposito); SetColumnValue(ref rowEm, persona.CurrentRole == RuoliIntEnum.Amministratore_PEM ? $"{em.STATI_EM.IDStato}-{em.STATI_EM.Stato}" : em.STATI_EM.Stato); SetColumnValue(ref rowEm, persona.CurrentRole == RuoliIntEnum.Amministratore_PEM ? $"{em.TIPI_EM.IDTipo_EM}-{em.TIPI_EM.Tipo_EM}" : em.TIPI_EM.Tipo_EM); SetColumnValue(ref rowEm, persona.CurrentRole == RuoliIntEnum.Amministratore_PEM ? $"{em.IDParte}-{em.PARTI_TESTO.Parte}" : em.PARTI_TESTO.Parte); SetColumnValue(ref rowEm, em.UIDArticolo.HasValue && em.UIDArticolo.Value != Guid.Empty ? em.ARTICOLI.Articolo : ""); SetColumnValue(ref rowEm, em.UIDComma.HasValue && em.UIDComma.Value != Guid.Empty ? em.COMMI.Comma : ""); SetColumnValue(ref rowEm, em.UIDLettera.HasValue && em.UIDLettera.Value != Guid.Empty ? em.LETTERE.Lettera : em.NLettera); SetColumnValue(ref rowEm, em.NTitolo); SetColumnValue(ref rowEm, em.NCapo); if (atto.VIS_Mis_Prog) { SetColumnValue(ref rowEm, em.NMissione.ToString()); SetColumnValue(ref rowEm, em.NProgramma.ToString()); SetColumnValue(ref rowEm, em.NTitoloB.ToString()); } SetColumnValue(ref rowEm, persona.CurrentRole == RuoliIntEnum.Amministratore_PEM ? $"{em.PersonaProponente.UID_persona}-{em.PersonaProponente.DisplayName}" : em.PersonaProponente.DisplayName); SetColumnValue(ref rowEm, ""); if (!string.IsNullOrEmpty(em.DataDeposito)) { var firme = await _logicFirme.GetFirme((EM)em, FirmeTipoEnum.TUTTE); var firmeDto = firme.ToList(); var firmatari_opendata_ante = "--"; try { if (firmeDto.Any(f => f.Timestamp < Convert.ToDateTime(em.DataDeposito))) { firmatari_opendata_ante = await _logicEm.GetFirmatariEM_OPENDATA(firmeDto.Where(f => f.Timestamp < Convert.ToDateTime(em.DataDeposito)), persona.CurrentRole, personeInDbLight); } } catch (Exception e) { Console.WriteLine(e); } var firmatari_opendata_post = "--"; try { if (firmeDto.Any(f => f.Timestamp > Convert.ToDateTime(em.DataDeposito))) { firmatari_opendata_post = await _logicEm.GetFirmatariEM_OPENDATA(firmeDto.Where(f => f.Timestamp > Convert.ToDateTime(em.DataDeposito)), persona.CurrentRole, personeInDbLight); } } catch (Exception e) { Console.WriteLine(e); } SetColumnValue(ref rowEm, firmatari_opendata_ante); SetColumnValue(ref rowEm, firmatari_opendata_post); } else { SetColumnValue(ref rowEm, "--"); SetColumnValue(ref rowEm, "--"); } SetColumnValue(ref rowEm, $"{AppSettingsConfiguration.urlPEM_ViewEM}{em.UID_QRCode}"); var spentTime = Math.Round((DateTime.Now - startTimer).TotalSeconds, 2); totalProcessTime += (float)spentTime; } Log.Debug($"EsportaGrigliaXLS: Compilazione XLS eseguita in {totalProcessTime} s"); Console.WriteLine($"Excel row count: {excelSheet.LastRowNum}"); return(await Response(FilePathComplete, workbook)); } catch (Exception e) { Log.Error("Logic - EsportaGrigliaXLS", e); throw e; } }
public async Task <HttpResponseMessage> EsportaGrigliaReportExcel(Guid id, OrdinamentoEnum ordine, ClientModeEnum mode, PersonaDto persona) { try { var FilePathComplete = GetLocalPath("xlsx"); IWorkbook workbook = new XSSFWorkbook(); var style = workbook.CreateCellStyle(); style.FillForegroundColor = HSSFColor.Grey25Percent.Index; style.FillPattern = FillPattern.SolidForeground; var styleReport = workbook.CreateCellStyle(); styleReport.FillForegroundColor = HSSFColor.LightGreen.Index; styleReport.FillPattern = FillPattern.SolidForeground; styleReport.Alignment = HorizontalAlignment.Center; var personeInDb = await _unitOfWork.Persone.GetAll(); var personeInDbLight = personeInDb.Select(Mapper.Map <View_UTENTI, PersonaLightDto>).ToList(); var emList = await _logicEm.ScaricaEmendamenti(id, ordine, mode, persona, personeInDbLight); var uolaSheet = await NewSheet( workbook.CreateSheet( nameof(ReportType.UOLA)), id, ReportType.UOLA, emList .OrderBy(em => em.OrdineVotazione) .ThenBy(em => em.Rif_UIDEM) .ThenBy(em => em.IDStato), style, styleReport); var pcrSheet = await NewSheet(workbook.CreateSheet(nameof(ReportType.PCR)), id, ReportType.PCR, emList .OrderBy(em => em.OrdineVotazione) .ThenBy(em => em.Rif_UIDEM) .ThenBy(em => em.IDStato), style, styleReport); var progSheet = await NewSheet(workbook.CreateSheet(nameof(ReportType.PROGRESSIVO)), id, ReportType.PROGRESSIVO, emList.OrderBy(em => em.Rif_UIDEM) .ThenBy(em => em.OrdinePresentazione), style, styleReport); return(await Response(FilePathComplete, workbook)); } catch (Exception e) { Log.Error("Logic - EsportaGrigliaReportXLS", e); throw e; } }
private async Task <string> ComposeWordTable(Guid attoUID, OrdinamentoEnum ordine, ClientModeEnum mode, PersonaDto persona) { var personeInDb = await _unitOfWork.Persone.GetAll(); var personeInDbLight = personeInDb.Select(Mapper.Map <View_UTENTI, PersonaLightDto>).ToList(); var emList = await _logicEm.ScaricaEmendamenti(attoUID, ordine, mode, persona, personeInDbLight, open_data_enabled : false, true); var body = "<html>"; body += "<body style='page-orientation: landscape'>"; body += "<table>"; body += "<thead>"; body += "<tr>"; body += ComposeHeaderColumn("Ordine"); body += ComposeHeaderColumn("EM/SUB"); body += ComposeHeaderColumn("Testo"); body += ComposeHeaderColumn("Relazione"); body += ComposeHeaderColumn("Proponente"); body += ComposeHeaderColumn("Stato"); body += "</tr>"; body += "</thead>"; body += "<tbody>"; body = emList.Aggregate(body, (current, em) => current + ComposeBodyRow(em)); body += "</tbody>"; body += "</table>"; body += "</body>"; body += "</html>"; return(body); }
public async Task <HttpResponseMessage> HTMLtoWORD(Guid attoUId, OrdinamentoEnum ordine, ClientModeEnum mode, PersonaDto persona) { try { var FilePathComplete = GetLocalPath("docx"); using (var generatedDocument = new MemoryStream()) { using (var package = WordprocessingDocument.Create(generatedDocument, WordprocessingDocumentType.Document)) { var mainPart = package.MainDocumentPart; if (mainPart == null) { mainPart = package.AddMainDocumentPart(); new Document(new Body()).Save(mainPart); } var converter = new HtmlConverter(mainPart); converter.ParseHtml(await ComposeWordTable(attoUId, ordine, mode, persona)); mainPart.Document.Save(); } File.WriteAllBytes(FilePathComplete, generatedDocument.ToArray()); var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(generatedDocument.ToArray()) }; result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = Path.GetFileName(FilePathComplete) }; result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/doc"); return(result); } } catch (Exception e) { Console.WriteLine(e); throw; } }
public async Task <IHttpActionResult> EsportaGrigliaExcel(Guid id, OrdinamentoEnum ordine, ClientModeEnum mode, bool is_report = false) { try { var session = await GetSession(); if (session._currentRole != RuoliIntEnum.Amministratore_PEM && session._currentRole != RuoliIntEnum.Segreteria_Assemblea) { if (is_report) { return(BadRequest("Operazione non eseguibile per il ruolo assegnato")); } } var persona = await _logicPersone.GetPersona(session); if (is_report) { return(ResponseMessage(await _logicEsporta.EsportaGrigliaReportExcel(id, ordine, mode, persona))); } var file = await _logicEsporta.EsportaGrigliaExcel(id, ordine, mode, persona); return(ResponseMessage(file)); } catch (Exception e) { Log.Error("EsportaGrigliaXLS", e); return(ErrorHandler(e)); } }
private async Task <EmendamentiViewModel> ComposeModel(Guid id, ClientModeEnum mode, OrdinamentoEnum ordine, ViewModeEnum view, int page, int size, bool view_require_my_sign) { try { var apiGateway = new ApiGateway(_Token); EmendamentiViewModel model; if (view_require_my_sign == false) { model = await apiGateway.Emendamento.Get(id, mode, ordine, page, size); } else { model = await apiGateway.Emendamento.Get_RichiestaPropriaFirma(id, mode, ordine, page, size); } model.ViewMode = view; if (view == ViewModeEnum.PREVIEW) { foreach (var emendamentiDto in model.Data.Results) { emendamentiDto.BodyEM = await apiGateway.Emendamento.GetBody(emendamentiDto.UIDEM, TemplateTypeEnum.HTML); } } if (HttpContext.User.IsInRole(RuoliExt.Amministratore_PEM) || HttpContext.User.IsInRole(RuoliExt.Segreteria_Assemblea)) { return(model); } if (mode == ClientModeEnum.GRUPPI) { foreach (var emendamentiDto in model.Data.Results) { if (emendamentiDto.IDStato <= (int)StatiEnum.Depositato) { if (emendamentiDto.ConteggioFirme > 0) { emendamentiDto.Firmatari = await Utility.GetFirmatariEM( await apiGateway.Emendamento.GetFirmatari(emendamentiDto.UIDEM, FirmeTipoEnum.TUTTE), _CurrentUser.UID_persona, FirmeTipoEnum.TUTTE, _Token, true); } emendamentiDto.Destinatari = await Utility.GetDestinatariNotifica( await apiGateway.Emendamento.GetInvitati(emendamentiDto.UIDEM), _Token); } } } return(model); } catch (Exception e) { Log.Error("ComposeModel", e); throw; } }
public static async Task <FileResponse> EsportaWORD(Guid attoUId, OrdinamentoEnum ordine, ClientModeEnum mode) { try { var requestUrl = $"{apiUrl}/emendamenti/esporta-griglia-doc?id={attoUId}&ordine={ordine}&mode={mode}"; var lst = await GetFile(requestUrl); return(lst); } catch (UnauthorizedAccessException ex) { Log.Error("EsportaWORD", ex); throw ex; } catch (Exception ex) { Log.Error("EsportaWORD", ex); throw ex; } }
public async Task <IHttpActionResult> EsportaGrigliaWord(Guid id, OrdinamentoEnum ordine, ClientModeEnum mode) { try { var session = await GetSession(); var persona = await _logicPersone.GetPersona(session); var response = ResponseMessage(await _logicEsporta.HTMLtoWORD(id, ordine, mode, persona)); return(response); } catch (Exception e) { Log.Error("EsportaGrigliaDOC", e); return(ErrorHandler(e)); } }