Example #1
0
        public _TmgrupUsua listarPaginasRecuperar(string coGrupoUsua)
        {
            _TmgrupUsua _m = new _TmgrupUsua();

            using (NorthwindContext _BD = new NorthwindContext())
            {
                List <Pagina> lsPaginas = (from t1 in _BD.TmgrupUsua
                                           join t2 in _BD.PaginaGrupoUsuario
                                           on t1.Co_grup equals t2.CoGrup
                                           join t3 in _BD.Pagina
                                           on t2.IdPagina equals t3.IdPagina
                                           where t2.CoGrup == coGrupoUsua
                                           select new Pagina
                {
                    IdPagina = t3.IdPagina
                }).Distinct().ToList();

                TmgrupUsua m = _BD.TmgrupUsua.Where(p => p.Co_grup == coGrupoUsua).First();

                _m.Co_grup     = m.Co_grup;
                _m.No_grup     = m.No_grup;
                _m.ListaPagina = lsPaginas;

                return(_m);
            }
        }
Example #2
0
        public int eliminarGrupoUsuario(string codGrupoUsuario)
        {
            int sDELETE = 0;

            using (NorthwindContext _BD = new NorthwindContext())
            {
                try
                {
                    TmgrupUsua m = _BD.TmgrupUsua.Where(p => p.Co_grup == codGrupoUsuario).First();
                    m.Co_grup = codGrupoUsuario;
                    _BD.TmgrupUsua.Remove(m);
                    _BD.SaveChanges();

                    sDELETE = 1;
                }
                catch (Exception)
                {
                    sDELETE = 0;
                }

                return(sDELETE);
            }
        }
Example #3
0
        public int guardarDatosGrupoUsuario(_TmgrupUsua m)
        {
            int sINSERT = 0;

            //3$4$5$6
            using (NorthwindContext _BD = new NorthwindContext())
            {
                // Cuando se realiza varias operaciones en un mismo proceso se utiliza TransactionScope
                using (var transaccion = new TransactionScope())
                {
                    try
                    {
                        int sEXISTE = 0;

                        sEXISTE = _BD.TmgrupUsua.Where(p => p.Co_grup == m.Co_grup).Count();
                        // Para nuevos registros
                        if (sEXISTE == 0)
                        {
                            TmgrupUsua _m = new TmgrupUsua();
                            _m.Co_grup = m.Co_grup;
                            _m.No_grup = m.No_grup;

                            _BD.Add(_m);
                            _BD.SaveChanges();

                            string[] ids = m.valores.Split("$");
                            for (int i = 0; i < ids.Length; i++)
                            {
                                PaginaGrupoUsuario mPaginaUsuario = new PaginaGrupoUsuario();
                                mPaginaUsuario.IdPagina = int.Parse(ids[i]);
                                mPaginaUsuario.CoGrup   = m.Co_grup;

                                _BD.PaginaGrupoUsuario.Add(mPaginaUsuario);
                                _BD.SaveChanges();
                            }

                            transaccion.Complete();
                            sINSERT = 1;
                        }
                        // Para editar
                        else
                        {
                            TmgrupUsua sGrupoUsuario = new TmgrupUsua();
                            sGrupoUsuario         = _BD.TmgrupUsua.Where(p => p.Co_grup == m.Co_grup).First();
                            sGrupoUsuario.No_grup = m.No_grup;
                            _BD.SaveChanges();

                            //Convertimos los valores recibidos en un array separados por el Split '$'
                            string[] ids = m.valores.Split("$");

                            // Sacamos todas las páginas asociadas
                            List <PaginaGrupoUsuario> lsPGrupoUsuario = _BD.PaginaGrupoUsuario.Where(p => p.CoGrup == m.Co_grup).ToList();
                            foreach (PaginaGrupoUsuario pag in lsPGrupoUsuario)
                            {
                                PaginaGrupoUsuario dPUsua = _BD.PaginaGrupoUsuario.Where(p => p.CoGrup == m.Co_grup).First();
                            }

                            if (ids.Length < lsPGrupoUsuario.Count())
                            {
                                // Si la cantidad es menos es porque se elimina
                                for (int t = 0; t < lsPGrupoUsuario.Count(); t++)
                                {
                                    int sIdPagina = lsPGrupoUsuario[t].IdPagina;

                                    for (int i = 0; i < ids.Length; i++)
                                    {
                                        //cantidad = lsPGrupoUsuario.Where(p => p.IdPagina == int.Parse(ids[i])).Count();
                                        int _sIdPagina = int.Parse(ids[i]);

                                        if (sIdPagina != _sIdPagina)
                                        {
                                            PaginaGrupoUsuario sEliminar = _BD.PaginaGrupoUsuario.Where(p => p.CoGrup == m.Co_grup && p.IdPagina == sIdPagina).First();
                                            sEliminar.IdPaginaGrupoUsuario = sEliminar.IdPaginaGrupoUsuario;
                                            _BD.PaginaGrupoUsuario.Remove(sEliminar);
                                            _BD.SaveChanges();
                                            break;
                                        }
                                    }
                                }
                            }

                            if (ids.Length > lsPGrupoUsuario.Count())
                            {
                                if (lsPGrupoUsuario.Count() == 0)
                                {
                                    for (int i = 0; i < ids.Length; i++)
                                    {
                                        //cantidad = lsPGrupoUsuario.Where(p => p.IdPagina == int.Parse(ids[i])).Count();
                                        int _sIdPagina = int.Parse(ids[i]);

                                        PaginaGrupoUsuario sGuardarNew = new PaginaGrupoUsuario();
                                        sGuardarNew.CoGrup   = m.Co_grup;
                                        sGuardarNew.IdPagina = _sIdPagina;
                                        _BD.PaginaGrupoUsuario.Add(sGuardarNew);
                                        _BD.SaveChanges();
                                    }
                                }
                                else
                                {
                                    // Si la cantidad es mayor es porque se agrega
                                    for (int t = 0; t < lsPGrupoUsuario.Count(); t++)
                                    {
                                        int sIdPagina = lsPGrupoUsuario[t].IdPagina;

                                        for (int i = 0; i < ids.Length; i++)
                                        {
                                            //cantidad = lsPGrupoUsuario.Where(p => p.IdPagina == int.Parse(ids[i])).Count();
                                            int _sIdPagina = int.Parse(ids[i]);

                                            if (sIdPagina != _sIdPagina)
                                            {
                                                PaginaGrupoUsuario sGuardarNew = new PaginaGrupoUsuario();
                                                sGuardarNew.CoGrup   = m.Co_grup;
                                                sGuardarNew.IdPagina = _sIdPagina;
                                                _BD.PaginaGrupoUsuario.Add(sGuardarNew);
                                                _BD.SaveChanges();
                                            }
                                        }
                                    }
                                }
                            }

                            transaccion.Complete();
                            sINSERT = 1;
                        }
                    }
                    catch (Exception)
                    {
                        sINSERT = 0;
                    }

                    return(sINSERT);
                }
            }
        }