예제 #1
0
        public async Task <ActionResult> GetListaDestinatari(Guid atto, TipoDestinatarioNotificaEnum tipo)
        {
            var apiGateway  = new ApiGateway(_Token);
            var destinatari = await apiGateway.Notifiche.GetListaDestinatari(atto, tipo);

            return(Json(destinatari, JsonRequestBehavior.AllowGet));
        }
예제 #2
0
        public async Task <IHttpActionResult> GetListaDestinatari(Guid atto, TipoDestinatarioNotificaEnum tipo)
        {
            try
            {
                var session = await GetSession();

                var persona = await _logicPersone.GetPersona(session);

                return(Ok(await _logic.GetListaDestinatari(atto, tipo, persona)));
            }
            catch (Exception e)
            {
                Log.Error("GetListaDestinatari", e);
                return(ErrorHandler(e));
            }
        }
예제 #3
0
        public static async Task <Dictionary <string, string> > GetListaDestinatari(Guid atto,
                                                                                    TipoDestinatarioNotificaEnum tipo)
        {
            try
            {
                var requestUrl = $"{apiUrl}/notifiche/destinatari?atto={atto}&tipo={(int) tipo}";
                var lst        = JsonConvert.DeserializeObject <Dictionary <string, string> >(await Get(requestUrl));

                return(lst);
            }
            catch (UnauthorizedAccessException ex)
            {
                Log.Error("GetListaDestinatari", ex);
                throw ex;
            }
            catch (Exception ex)
            {
                Log.Error("GetListaDestinatari", ex);
                throw ex;
            }
        }
예제 #4
0
        public async Task <Dictionary <string, string> > GetListaDestinatari(Guid atto, TipoDestinatarioNotificaEnum tipo,
                                                                             PersonaDto persona)
        {
            try
            {
                var result = new Dictionary <string, string>();

                if (persona.CurrentRole == RuoliIntEnum.Amministratore_PEM)
                {
                    tipo = TipoDestinatarioNotificaEnum.TUTTI;
                }

                switch (tipo)
                {
                case TipoDestinatarioNotificaEnum.TUTTI:
                    result = (await _logicPersone.GetProponenti())
                             .ToDictionary(p => p.UID_persona.ToString(), s => s.DisplayName);
                    break;

                case TipoDestinatarioNotificaEnum.CONSIGLIERI:
                    if (persona.CurrentRole == RuoliIntEnum.Responsabile_Segreteria_Giunta ||
                        persona.CurrentRole == RuoliIntEnum.Segreteria_Giunta_Regionale)
                    {
                        result = (await _logicPersone.GetAssessoriRiferimento())
                                 .ToDictionary(p => p.UID_persona.ToString(), s => s.DisplayName);
                    }
                    else if (persona.CurrentRole == RuoliIntEnum.Responsabile_Segreteria_Politica ||
                             persona.CurrentRole == RuoliIntEnum.Segreteria_Politica)
                    {
                        result = (await _logicPersone.GetConsiglieriGruppo(persona.Gruppo.id_gruppo))
                                 .ToDictionary(p => p.UID_persona.ToString(), s => s.DisplayName);
                    }
                    else
                    {
                        var consiglieri_In_Db = (await _logicPersone.GetConsiglieri())
                                                .ToDictionary(p => p.UID_persona.ToString(), s => s.DisplayName_GruppoCode);
                        foreach (var consigliere in consiglieri_In_Db)
                        {
                            result.Add(consigliere.Key, consigliere.Value);
                        }
                    }

                    break;

                case TipoDestinatarioNotificaEnum.ASSESSORI:
                    if (persona.CurrentRole == RuoliIntEnum.Responsabile_Segreteria_Giunta ||
                        persona.CurrentRole == RuoliIntEnum.Segreteria_Giunta_Regionale)
                    {
                        result = (await _logicPersone.GetAssessoriRiferimento())
                                 .ToDictionary(p => p.UID_persona.ToString(), s => s.DisplayName);
                    }
                    else if (persona.CurrentRole == RuoliIntEnum.Responsabile_Segreteria_Politica ||
                             persona.CurrentRole == RuoliIntEnum.Segreteria_Politica)
                    {
                        result = (await _logicPersone.GetConsiglieriGruppo(persona.Gruppo.id_gruppo))
                                 .ToDictionary(p => p.UID_persona.ToString(), s => s.DisplayName);
                    }
                    else
                    {
                        var assessori_In_Db = (await _logicPersone.GetAssessoriRiferimento())
                                              .ToDictionary(p => p.UID_persona.ToString(), s => s.DisplayName);
                        foreach (var assessori in assessori_In_Db)
                        {
                            result.Add(assessori.Key, assessori.Value);
                        }
                    }

                    break;

                case TipoDestinatarioNotificaEnum.GRUPPI:
                    result = (await _logicPersone.GetGruppiAttivi())
                             .ToDictionary(k => k.id.ToString(), z => z.descr);
                    break;

                case TipoDestinatarioNotificaEnum.RELATORI:
                    result = (await _logicPersone.GetRelatori(atto))
                             .ToDictionary(k => k.UID_persona.ToString(), z => z.DisplayName);
                    break;

                default:
                    throw new ArgumentOutOfRangeException(nameof(tipo), tipo, null);
                }

                return(result);
            }
            catch (Exception e)
            {
                Log.Error("Logic - GetListaDestinatari", e);
                throw;
            }
        }