public async Task <ApiCallResult> ActivarPerfil(int rolId) { Col_Roles rol = await context.Col_Roles.Where(w => w.RolId.Equals(rolId)).FirstOrDefaultAsync(); rol.Estado = "A"; rol.FechaActualizacion = DateTime.Now; context.Col_Roles.Update(rol); await context.SaveChangesAsync(); return(new ApiCallResult { Status = true, Title = "Exitos", Message = $"El Perfil {rol.NombreRol} se habitlitó exitosamente" }); }
public async Task <ApiCallResult> EliminarPerfiles(int rolId, bool op) { try { bool status = false; string title = "Error"; string message = "Error al eliminar el perfil"; int query = await context.Col_Roles .Join(context.Col_Usuarios, r => r.RolId, u => u.RolId, (r, u) => new { Col_Roles = r, Col_Usuarios = u }) .Where(w => w.Col_Roles.RolId.Equals(rolId)).CountAsync(); List <Col_Usuarios> usuario = await context.Col_Usuarios.Where(w => w.RolId.Equals(rolId)).ToListAsync(); Col_Roles rol = await context.Col_Roles.Where(w => w.RolId.Equals(rolId)).FirstOrDefaultAsync(); if (op) { List <Col_SubModuloModulo> subModulo = await context.Col_SubModuloModulo.Where(w => w.RolId.Equals(rolId)).ToListAsync(); List <Col_RolModulos> modulo = await context.Col_RolModulos.Where(w => w.RolId.Equals(rolId)).ToListAsync(); if (query > 0) { context.Col_Usuarios.RemoveRange(usuario); } if (subModulo.Count() > 0) { context.Col_SubModuloModulo.RemoveRange(subModulo); } context.Col_RolModulos.RemoveRange(modulo); context.Col_Roles.Remove(rol); status = true; title = "Éxito"; message = "El perfil se ha eliminado exitosamente"; } else { if (query > 0) { foreach (Col_Usuarios item in usuario) { item.FechaActualizacion = DateTime.Now; item.Estado = "I"; context.Col_Usuarios.Update(item); } } rol.Estado = "I"; rol.FechaActualizacion = DateTime.Now; context.Col_Roles.Update(rol); status = true; title = "Éxito"; message = $"El perfil {rol.NombreRol} se ha inhabilitado exitosamente"; } await context.SaveChangesAsync(); return(new ApiCallResult { Status = status, Title = title, Message = message }); } #region catch catch (DbEntityValidationException e) { string err = ""; foreach (DbEntityValidationResult eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (DbValidationError ve in eve.ValidationErrors) { err += ve.ErrorMessage; Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } return(new ApiCallResult { Status = false, Title = "Error al eliminar", Message = "Favor contacte éste con el administrador" }); } catch (Exception e) { string err = ""; if (e.InnerException != null) { if (e.InnerException.Message != null) { err = (e.InnerException.Message); if (e.InnerException.InnerException != null) { err += e.InnerException.InnerException.Message; } } } else { err = (e.Message); } return(new ApiCallResult { Status = false, Title = "Error al eliminar", Message = "Favor contacte éste con el administrador" }); } #endregion }
public async Task <ApiCallResult> ActualizarAutorizaciones(List <Col_RolModulos> modulos, List <Col_SubModuloModulo> subModulos, string rolNombre, string descripcion, int idRol) { try { bool status = false; string title = "Error"; string message = "Ya existe un rol con este nombre"; bool existeNombre = await context.Col_Roles.Where(w => w.NombreRol.Equals(rolNombre.ToUpper()) && w.RolId != idRol).AnyAsync(); if (!existeNombre) { status = true; title = "Proceso exitoso"; message = "Los datos fueron actualizados correctamente en la plataforma"; #region Roles Col_Roles _rol = await context.Col_Roles.Where(w => w.RolId.Equals(idRol)).FirstOrDefaultAsync(); _rol.NombreRol = rolNombre.ToUpper(); _rol.Restringir = subModulos.Count() > 0 ? true : false; _rol.FechaActualizacion = DateTime.Now; _rol.Descripcion = descripcion; context.Col_Roles.Update(_rol); #endregion #region Modulos List <Col_RolModulos> _rolModulos = await context.Col_RolModulos.Where(w => w.RolId.Equals(idRol)).ToListAsync(); context.Col_RolModulos.RemoveRange(_rolModulos); int?maxId = await context.Col_RolModulos.MaxAsync(m => (int?)m.Id); int?id = maxId == null ? 1 : maxId + 1; List <Col_RolModulos> rolModulos = new List <Col_RolModulos>(); foreach (Col_RolModulos item in modulos) { Col_RolModulos _rolModulo = new Col_RolModulos(); _rolModulo.Id = Convert.ToInt32(id); _rolModulo.RolId = _rol.RolId; _rolModulo.ModuloId = item.ModuloId; _rolModulo.PermisosCrud = item.PermisosCrud?.Trim(); rolModulos.Add(_rolModulo); id++; } await context.AddRangeAsync(rolModulos); #endregion #region SubModulos List <Col_SubModuloModulo> _subModulos = await context.Col_SubModuloModulo.Where(w => w.RolId.Equals(idRol)).ToListAsync(); context.Col_SubModuloModulo.RemoveRange(_subModulos); if (subModulos.Count() > 0) { maxId = await context.Col_SubModuloModulo.MaxAsync(m => (int?)m.Id); id = maxId == null ? 1 : maxId + 1; List <Col_RolModulos> queryModulo = modulos.Where(w => !subModulos.Where(s => s.ModuloId == w.ModuloId).Any()).ToList(); List <Col_SubModuloModulo> subModuloModulos = new List <Col_SubModuloModulo>(); foreach (Col_RolModulos item in queryModulo) { Col_SubModuloModulo _subModulo = new Col_SubModuloModulo(); _subModulo.Id = Convert.ToInt32(id); _subModulo.ModuloId = item.ModuloId; _subModulo.SubModuloId = null; _subModulo.RolId = _rol.RolId; _subModulo.PermisosCrud = item.PermisosCrud.Trim(); subModuloModulos.Add(_subModulo); id++; } foreach (Col_SubModuloModulo item in subModulos) { Col_SubModuloModulo _subModulo = new Col_SubModuloModulo(); _subModulo.Id = Convert.ToInt32(id); _subModulo.ModuloId = item.ModuloId; _subModulo.SubModuloId = item.SubModuloId; _subModulo.RolId = _rol.RolId; _subModulo.PermisosCrud = item.PermisosCrud.Trim(); subModuloModulos.Add(_subModulo); id++; } await context.AddRangeAsync(subModuloModulos); } #endregion await context.SaveChangesAsync(); } return(new ApiCallResult { Status = status, Title = title, Message = message }); } #region catch catch (DbEntityValidationException e) { string err = ""; foreach (DbEntityValidationResult eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (DbValidationError ve in eve.ValidationErrors) { err += ve.ErrorMessage; Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } return(new ApiCallResult { Status = false, Title = "Error al guardar", Message = "Favor contacte éste con el administrador" }); } catch (Exception e) { string err = ""; if (e.InnerException != null) { if (e.InnerException.Message != null) { err = (e.InnerException.Message); if (e.InnerException.InnerException != null) { err += e.InnerException.InnerException.Message; } } } else { err = (e.Message); } return(new ApiCallResult { Status = false, Title = "Error al guardar", Message = "Favor contacte éste con el administrador" }); } #endregion }
private async Task <Col_Roles> VerDetalleRol(int idRol) { try { Col_Roles query = await context.Col_Roles .Where(w => w.RolId.Equals(idRol)) .Select(s => new Col_Roles { NombreRol = s.NombreRol, FechaActualizacion = s.FechaActualizacion, FechaCreacion = s.FechaCreacion, Estado = s.Estado == "A" ? "ACTIVO" : "INACTIVO", Descripcion = s.Descripcion ?? "", UltimoLogin = context.Col_Usuarios .Where(w => w.Estado.Equals("A") && w.RolId.Equals(s.RolId)) .OrderByDescending(o => o.UltimoLogin) .Select(s => s.UltimoLogin).FirstOrDefault() }).FirstOrDefaultAsync(); return(query); } #region catch catch (DbEntityValidationException e) { string err = ""; foreach (DbEntityValidationResult eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (DbValidationError ve in eve.ValidationErrors) { err += ve.ErrorMessage; Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } return(null); } catch (Exception e) { string err = ""; if (e.InnerException != null) { if (e.InnerException.Message != null) { err = (e.InnerException.Message); if (e.InnerException.InnerException != null) { err += e.InnerException.InnerException.Message; } } } else { err = (e.Message); } return(null); } #endregion }