Пример #1
0
        MessageCollection <GridEgaliPasswords> IEGALI_PASSWORDS.GetEgaliPasswordsByFilter(EgaliPasswords filtroPesquisa)
        {
            var msg = new MessageCollection <Dominio.Mensagens.GridEgaliPasswords>();

            try
            {
                using (var context = new HostelEntities())
                {
                    int idEgaliPasswords = (from eph in context.EGALI_PASSWORDS_HISTORY where eph.ID == filtroPesquisa.ID select eph.ID_EGALI_PASSWORDS).FirstOrDefault();


                    var query = (from ep in context.EGALI_PASSWORDS
                                 join eph in context.EGALI_PASSWORDS_HISTORY on ep.ID equals eph.ID_EGALI_PASSWORDS
                                 where eph.ID_EGALI_PASSWORDS == idEgaliPasswords
                                 select new Dominio.Mensagens.GridEgaliPasswords()
                    {
                        ID = ep.ID,
                        DT_Reg = eph.DT_Reg,
                        LogLogin = eph.LogLogin,
                        Item = ep.Item,
                        Login = ep.Login,
                        Password = eph.Password
                    });

                    query         = query.OrderByDescending(q => q.DT_Reg);
                    msg.Code      = query.Count();
                    msg.Instances = query.ToList();
                }
            }
            catch (Exception ex)
            {
                msg.Exception = ex;
            }
            return(msg);
        }
Пример #2
0
        MessageCollection <GridEgaliPasswords> IEGALI_PASSWORDS.GetAllEgaliPasswordsByFilter(EgaliPasswords filtroPesquisa)
        {
            var msg = new MessageCollection <Dominio.Mensagens.GridEgaliPasswords>();

            try
            {
                using (var context = new HostelEntities())
                {
                    var subquery = from eph in context.EGALI_PASSWORDS_HISTORY
                                   group eph by eph.ID_EGALI_PASSWORDS into g
                                   select new
                    {
                        ID_EGALI_PASSWORDS = g.Key,
                        DT_Reg             = g.Max(a => a.DT_Reg)
                    };

                    var query = from ep in context.EGALI_PASSWORDS
                                join eph in context.EGALI_PASSWORDS_HISTORY on ep.ID equals eph.ID_EGALI_PASSWORDS
                                join s in subquery on eph.DT_Reg equals s.DT_Reg
                                where !ep.DT_Delete.HasValue
                                select new Dominio.Mensagens.GridEgaliPasswords()
                    {
                        ID       = eph.ID,
                        DT_Reg   = eph.DT_Reg,
                        LogLogin = eph.LogLogin,
                        Item     = ep.Item,
                        Login    = ep.Login,
                        Password = eph.Password
                    };

                    if (!string.IsNullOrEmpty(filtroPesquisa.item))
                    {
                        query = query.Where(q => q.Item.Contains(filtroPesquisa.item));
                    }
                    if (!string.IsNullOrEmpty(filtroPesquisa.login))
                    {
                        query = query.Where(q => q.Login.Contains(filtroPesquisa.login));
                    }

                    query         = query.OrderByDescending(q => q.DT_Reg);
                    msg.Code      = query.Count();
                    msg.Instances = query.ToList();
                }
            }
            catch (Exception ex)
            {
                msg.Exception = ex;
            }
            return(msg);
        }