public TipoUsuariosCLS listarPaginasRecuperar(int iidTipoUsuario) { TipoUsuariosCLS oTipoUsuariosCLS = new TipoUsuariosCLS(); using (BDRestauranteContext db = new BDRestauranteContext()) { List <PaginaCLS> listaPaginas = (from tipoUsuario in db.TipoUsuario join paginasTipoUsu in db.PaginaTipoUsuario on tipoUsuario.Iidtipousuario equals paginasTipoUsu.Iidtipousuario join pagina in db.Pagina on paginasTipoUsu.Iidpagina equals pagina.Iidpagina where paginasTipoUsu.Iidtipousuario == iidTipoUsuario && paginasTipoUsu.Bhabilitado == 1 select new PaginaCLS { iidpagina = pagina.Iidpagina }).ToList(); TipoUsuario oTipoUsuario = db.TipoUsuario.Where(p => p.Iidtipousuario == iidTipoUsuario).First(); oTipoUsuariosCLS.iidtipoUsuario = oTipoUsuario.Iidtipousuario; oTipoUsuariosCLS.nombre = oTipoUsuario.Nombre; oTipoUsuariosCLS.descripcion = oTipoUsuario.Descripcion; oTipoUsuariosCLS.listaPagina = listaPaginas; return(oTipoUsuariosCLS); } }
public int guardarDatosTipoUsuario([FromBody] TipoUsuariosCLS oTipoUsuariosCLS) { int rpta = 0; try { using (BDRestauranteContext db = new BDRestauranteContext()) { using (var transaccion = new TransactionScope()) { if (oTipoUsuariosCLS.iidtipoUsuario == 0) { TipoUsuario oTipoUsuario = new TipoUsuario(); oTipoUsuario.Nombre = oTipoUsuariosCLS.nombre; oTipoUsuario.Descripcion = oTipoUsuariosCLS.descripcion; oTipoUsuario.Bhabilitado = 1; db.TipoUsuario.Add(oTipoUsuario); int idTipoUsuario = oTipoUsuario.Iidtipousuario; string[] ids = oTipoUsuariosCLS.valores.Split("$"); for (int i = 0; i < ids.Length; i++) { PaginaTipoUsuario oPaginaTipoUsuario = new PaginaTipoUsuario(); oPaginaTipoUsuario.Iidpagina = int.Parse(ids[i]); oPaginaTipoUsuario.Iidtipousuario = idTipoUsuario; oPaginaTipoUsuario.Bhabilitado = 1; db.PaginaTipoUsuario.Add(oPaginaTipoUsuario); } db.SaveChanges(); transaccion.Complete(); rpta = 1; } else { //Recuperar la informacion TipoUsuario oTipoUsuario = db.TipoUsuario.Where( p => p.Iidtipousuario == oTipoUsuariosCLS.iidtipoUsuario).First(); oTipoUsuario.Nombre = oTipoUsuariosCLS.nombre; oTipoUsuario.Descripcion = oTipoUsuariosCLS.descripcion; db.SaveChanges(); string[] ids = oTipoUsuariosCLS.valores.Split("$"); //Con el id Tipo Usuario(sacamos todas las paginas asociadas y //las vamos a desahabilitar) List <PaginaTipoUsuario> lista = db.PaginaTipoUsuario.Where(p => p.Iidtipousuario == oTipoUsuariosCLS.iidtipoUsuario).ToList(); foreach (PaginaTipoUsuario pag in lista) { pag.Bhabilitado = 0; } //Editar si el id de pagina es nuevo lo insertamos //Si es un editar cambiamos de 0 a 1 int cantidad; for (int i = 0; i < ids.Length; i++) { cantidad = lista.Where(p => p.Iidpagina == int.Parse(ids[i])).Count(); if (cantidad == 0) { PaginaTipoUsuario oPaginaTipoUsuario = new PaginaTipoUsuario(); oPaginaTipoUsuario.Iidpagina = int.Parse(ids[i]); oPaginaTipoUsuario.Iidtipousuario = oTipoUsuariosCLS.iidtipoUsuario; oPaginaTipoUsuario.Bhabilitado = 1; db.PaginaTipoUsuario.Add(oPaginaTipoUsuario); } else { PaginaTipoUsuario oP = lista.Where(p => p.Iidpagina == int.Parse(ids[i])).First(); oP.Bhabilitado = 1; } } db.SaveChanges(); transaccion.Complete(); rpta = 0; } } } } catch (Exception ex) { rpta = 0; } return(rpta); }