Exemplo n.º 1
0
        public async Task <ActionResult> EseguiAzioneMassive(ComandiAzioneModel model)
        {
            try
            {
                var apiGateway = new ApiGateway(_Token);
                if (model.ListaEmendamenti == null || !model.ListaEmendamenti.Any())
                {
                    var listaEM = new EmendamentiViewModel();
                    var limit   = Convert.ToInt32(ConfigurationManager.AppSettings["LimiteDocumentiDaProcessare"]);
                    if (model.Richiesta_Firma)
                    {
                        listaEM = await apiGateway.Emendamento.Get_RichiestaPropriaFirma(model.AttoUId,
                                                                                         (ClientModeEnum)model.ClientMode,
                                                                                         OrdinamentoEnum.Default, 1, limit);
                    }
                    else
                    {
                        listaEM = await apiGateway.Emendamento.Get(model.AttoUId, (ClientModeEnum)model.ClientMode,
                                                                   OrdinamentoEnum.Default, 1, limit);
                    }
                    model.ListaEmendamenti = listaEM.Data.Results.Select(em => em.UIDEM).ToList();
                }

                switch (model.Azione)
                {
                case ActionEnum.FIRMA:
                    var resultFirma = await apiGateway.Emendamento.Firma(model);

                    var listaErroriFirma = new List <string>();
                    foreach (var itemFirma in resultFirma)
                    {
                        listaErroriFirma.Add($"{itemFirma.Value}");
                    }
                    if (listaErroriFirma.Count > 0)
                    {
                        return(Json(
                                   new
                        {
                            message =
                                $"{listaErroriFirma.Aggregate((i, j) => i + ", " + j)}"
                        }, JsonRequestBehavior.AllowGet));
                    }

                    return(Json(
                               new
                    {
                        message =
                            $"Nessuna firma effettuata"
                    }, JsonRequestBehavior.AllowGet));

                case ActionEnum.DEPOSITA:
                    var resultDeposita = await apiGateway.Emendamento.Deposita(model);

                    var listaErroriDeposito = new List <string>();
                    foreach (var itemDeposito in resultDeposita)
                    {
                        listaErroriDeposito.Add(
                            $"{itemDeposito.Value}");
                    }
                    if (listaErroriDeposito.Count > 0)
                    {
                        return(Json(
                                   new
                        {
                            message =
                                $"{listaErroriDeposito.Aggregate((i, j) => i + ", " + j)}"
                        }, JsonRequestBehavior.AllowGet));
                    }


                    return(Json(
                               new
                    {
                        message =
                            $"Nessuna deposito effettuato"
                    }, JsonRequestBehavior.AllowGet));

                case ActionEnum.INVITA:
                    var resultInvita = await apiGateway.Notifiche.NotificaEM(model);

                    var listaErroriInvita = new List <string>();
                    foreach (var itemInvito in resultInvita)
                    {
                        listaErroriInvita.Add(
                            $"{itemInvito.Value}");
                    }
                    if (listaErroriInvita.Count > 0)
                    {
                        return(Json(
                                   new
                        {
                            message =
                                $"{listaErroriInvita.Aggregate((i, j) => i + ", " + j)}"
                        }, JsonRequestBehavior.AllowGet));
                    }


                    return(Json(
                               new
                    {
                        message =
                            $"Nessuna invito effettuato"
                    }, JsonRequestBehavior.AllowGet));

                default:
                    throw new ArgumentOutOfRangeException(nameof(model.Azione), model.Azione, null);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                return(Json(JsonConvert.DeserializeObject <ErrorResponse>(e.Message), JsonRequestBehavior.AllowGet));
            }
        }
Exemplo n.º 2
0
        public async Task <ActionResult> Filtri_RiepilogoEM()
        {
            int.TryParse(Request.Form["page"], out var filtro_page);
            int.TryParse(Request.Form["size"], out var filtro_size);
            int.TryParse(Request.Form["mode"], out var mode);
            int.TryParse(Request.Form["ordine"], out var ordine);
            var atto = Request.Form["atto"];

            var filtro_text1            = Request.Form["filtro_text1"];
            var filtro_n_em             = Request.Form["filtro_n_em"];
            var filtro_stato            = Request.Form["filtro_stato"];
            var filtro_tipo             = Request.Form["filtro_tipo"];
            var filtro_parte            = Request.Form["filtro_parte"];
            var filtro_parte_articolo   = Request.Form["filtro_parte_articolo"];
            var filtro_parte_comma      = Request.Form["filtro_parte_comma"];
            var filtro_parte_lettera    = Request.Form["filtro_parte_lettera"];
            var filtro_parte_letteraOLD = Request.Form["filtro_parte_letteraOLD"];
            var filtro_parte_titolo     = Request.Form["filtro_parte_titolo"];
            var filtro_parte_capo       = Request.Form["filtro_parte_capo"];
            var filtro_parte_missione   = Request.Form["filtro_parte_missione"];
            var filtro_parte_programma  = Request.Form["filtro_parte_programma"];

            var model = new BaseRequest <EmendamentiDto>
            {
                page = filtro_page,
                size = filtro_size
            };

            if (!string.IsNullOrEmpty(filtro_text1))
            {
                model.filtro.Add(new FilterStatement <EmendamentiDto>
                {
                    PropertyId = nameof(EmendamentiDto.TestoEM_originale),
                    Operation  = Operation.Contains,
                    Value      = filtro_text1
                });
            }

            if (!string.IsNullOrEmpty(filtro_n_em))
            {
                model.filtro.Add(new FilterStatement <EmendamentiDto>
                {
                    PropertyId = nameof(EmendamentiDto.N_EM),
                    Operation  = Operation.EqualTo,
                    Value      = filtro_n_em
                });
            }

            if (!string.IsNullOrEmpty(filtro_stato) && filtro_stato != "0")
            {
                model.filtro.Add(new FilterStatement <EmendamentiDto>
                {
                    PropertyId = nameof(EmendamentiDto.IDStato),
                    Operation  = Operation.EqualTo,
                    Value      = filtro_stato
                });
            }

            if (!string.IsNullOrEmpty(filtro_parte) && filtro_parte != "0")
            {
                model.filtro.Add(new FilterStatement <EmendamentiDto>
                {
                    PropertyId = nameof(EmendamentiDto.IDParte),
                    Operation  = Operation.EqualTo,
                    Value      = filtro_parte
                });
            }

            if (!string.IsNullOrEmpty(filtro_tipo) && filtro_tipo != "0")
            {
                model.filtro.Add(new FilterStatement <EmendamentiDto>
                {
                    PropertyId = nameof(EmendamentiDto.IDTipo_EM),
                    Operation  = Operation.EqualTo,
                    Value      = filtro_tipo
                });
            }

            if (!string.IsNullOrEmpty(filtro_parte_articolo) && filtro_parte_articolo != "0")
            {
                model.filtro.Add(new FilterStatement <EmendamentiDto>
                {
                    PropertyId = nameof(EmendamentiDto.UIDArticolo),
                    Operation  = Operation.EqualTo,
                    Value      = filtro_parte_articolo
                });
            }

            if (!string.IsNullOrEmpty(filtro_parte_comma) && filtro_parte_comma != "0")
            {
                model.filtro.Add(new FilterStatement <EmendamentiDto>
                {
                    PropertyId = nameof(EmendamentiDto.UIDComma),
                    Operation  = Operation.EqualTo,
                    Value      = filtro_parte_comma
                });
            }

            if (!string.IsNullOrEmpty(filtro_parte_lettera) && filtro_parte_lettera != "0")
            {
                model.filtro.Add(new FilterStatement <EmendamentiDto>
                {
                    PropertyId = nameof(EmendamentiDto.UIDLettera),
                    Operation  = Operation.EqualTo,
                    Value      = filtro_parte_lettera
                });
            }

            if (!string.IsNullOrEmpty(filtro_parte_letteraOLD))
            {
                model.filtro.Add(new FilterStatement <EmendamentiDto>
                {
                    PropertyId = nameof(EmendamentiDto.NLettera),
                    Operation  = Operation.EqualTo,
                    Value      = filtro_parte_letteraOLD
                });
            }

            if (!string.IsNullOrEmpty(filtro_parte_titolo))
            {
                model.filtro.Add(new FilterStatement <EmendamentiDto>
                {
                    PropertyId = nameof(EmendamentiDto.NTitolo),
                    Operation  = Operation.EqualTo,
                    Value      = filtro_parte_titolo
                });
            }

            if (!string.IsNullOrEmpty(filtro_parte_capo))
            {
                model.filtro.Add(new FilterStatement <EmendamentiDto>
                {
                    PropertyId = nameof(EmendamentiDto.NCapo),
                    Operation  = Operation.EqualTo,
                    Value      = filtro_parte_capo
                });
            }

            if (!string.IsNullOrEmpty(filtro_parte_missione) && filtro_parte_missione != "0")
            {
                model.filtro.Add(new FilterStatement <EmendamentiDto>
                {
                    PropertyId = nameof(EmendamentiDto.NMissione),
                    Operation  = Operation.EqualTo,
                    Value      = filtro_parte_missione
                });
            }

            if (!string.IsNullOrEmpty(filtro_parte_programma))
            {
                model.filtro.Add(new FilterStatement <EmendamentiDto>
                {
                    PropertyId = nameof(EmendamentiDto.NProgramma),
                    Operation  = Operation.EqualTo,
                    Value      = filtro_parte_programma
                });
            }

            if (!model.filtro.Any())
            {
                return(RedirectToAction("RiepilogoEmendamenti", "Emendamenti", new { id = atto, mode, ordine }));
            }

            model.param = new Dictionary <string, object> {
                { "CLIENT_MODE", mode }
            };
            model.ordine = (OrdinamentoEnum)ordine;
            model.id     = new Guid(atto);
            var modelResult = new EmendamentiViewModel
            {
                Atto        = await ApiGateway.GetAtto(model.id),
                Data        = await ApiGateway.GetEmendamenti(model),
                CurrentUser = CurrentUser,
                Mode        = (ClientModeEnum)mode
            };

            if (HttpContext.User.IsInRole(RuoliEnum.Amministratore_PEM) ||
                HttpContext.User.IsInRole(RuoliEnum.Segreteria_Assemblea))
            {
                foreach (var emendamentiDto in modelResult.Data.Results)
                {
                    emendamentiDto.BodyEM = await ApiGateway.GetBodyEM(emendamentiDto.UIDEM, TemplateTypeEnum.PDF);
                }

                return(View("RiepilogoEM_Admin", modelResult));
            }

            foreach (var emendamentiDto in modelResult.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", modelResult));
        }