private Utente EseguiRecupero(SqlDataReader dr)
        {
            Utente utente = null;

            if (dr.Read())
            {
                utente = RiempiIstanzaUtente(dr);
            }

            if (utente != null)
            {
                if (dr.NextResult())
                {
                    while (dr.Read())
                    {
                        int         ruoloUtenteID = dr.GetInt32(0);
                        RuoloUtente ruolo         = RuoliUtenteRepository.Instance.RecuperaRuoloUtente(ruoloUtenteID);
                        if (ruolo != null)
                        {
                            utente.ListaRuoli.Add(ruolo);
                        }
                    }
                }
            }

            if (dr != null)
            {
                dr.Close();
                dr.Dispose();
            }
            return(utente);
        }
        public List <RuoloUtente> RecuperaTuttiRuoliUtente()
        {
            List <RuoloUtente>     listaRuoli = null;
            SqlServerExecuteObject sseo       = null;
            SqlDataReader          dr         = null;

            MemoryCache cache    = MemoryCache.Default;
            String      cacheKey = "ruoliUtente";

            listaRuoli = cache[cacheKey] as List <RuoloUtente>;

            if (listaRuoli == null)
            {
                sseo             = new SqlServerExecuteObject();
                sseo.CommandText = @"SELECT RuoloUtenteID, Codice, Nome FROM TBL_RuoliUtente";
                dr = SqlProvider.ExecuteReaderObject(sseo);

                listaRuoli = new List <RuoloUtente>();

                while (dr.Read())
                {
                    RuoloUtente ruolo = RiempiIstanzaRuoloUtente(dr);
                    listaRuoli.Add(ruolo);
                }

                if (dr != null)
                {
                    dr.Close();
                    dr.Dispose();
                }
            }
            return(listaRuoli);
        }
        private RuoloUtente RiempiIstanzaRuoloUtente(SqlDataReader dr)
        {
            if (dr == null)
            {
                throw new ArgumentNullException("dr");
            }

            RuoloUtente ruoloUtente = new RuoloUtente();

            ruoloUtente.RuoloUtenteID = dr.GetInt32(0);
            ruoloUtente.Codice        = dr.GetString(1);
            ruoloUtente.Nome          = dr.GetString(2);

            return(ruoloUtente);
        }
        public List <Utente> RecuperaUtenti()
        {
            List <Utente>            listaUtenti       = null;
            List <Tuple <int, int> > utenteRuoloUtente = null;

            SqlServerExecuteObject sseo = null;
            SqlDataReader          dr   = null;

            MemoryCache cache    = MemoryCache.Default;
            String      cacheKey = "listaUtenti";

            listaUtenti = cache[cacheKey] as List <Utente>;

            if (listaUtenti == null)
            {
                listaUtenti = new List <Utente>();
                sseo        = new SqlServerExecuteObject();

                sseo.CommandText = @"SELECT UtenteID, Ruolo, NomeUtente, Abilitato, DataUltimoCambioPassword,
                                            DataUltimoLogin, Email, Nome, Cognome from TBL_Utenti;
                                     SELECT UtenteID, RuoloUtenteID FROM STG_UtentiRuoliUtente";

                dr = SqlProvider.ExecuteReaderObject(sseo);

                while (dr.Read())
                {
                    Utente utente = RiempiIstanzaUtente(dr);
                    listaUtenti.Add(utente);
                }

                if (listaUtenti.Count > 0)
                {
                    utenteRuoloUtente = new List <Tuple <int, int> >();
                    if (dr.NextResult())
                    {
                        while (dr.Read())
                        {
                            int utenteID      = dr.GetInt32(0);
                            int ruoloUtenteID = dr.GetInt32(1);
                            utenteRuoloUtente.Add(new Tuple <int, int>(utenteID, ruoloUtenteID));
                        }
                    }
                }

                if (dr != null)
                {
                    dr.Close();
                    dr.Dispose();
                }
            }

            foreach (Utente u in listaUtenti)
            {
                List <Tuple <int, int> > listaTuple = utenteRuoloUtente.FindAll(x => x.Item1 == u.ID);

                foreach (Tuple <int, int> tupla in listaTuple)
                {
                    RuoloUtente ruolo = RuoliUtenteRepository.Instance.RecuperaRuoloUtente(tupla.Item2);
                    u.ListaRuoli.Add(ruolo);
                }
            }

            return(listaUtenti);
        }
        public RuoloUtente RecuperaRuoloUtente(int ruoloID)
        {
            RuoloUtente ruoloUtente = RecuperaTuttiRuoliUtente().SingleOrDefault(x => x.RuoloUtenteID == ruoloID);

            return(ruoloUtente);
        }