コード例 #1
0
        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"
            });
        }
コード例 #2
0
        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
        }
コード例 #3
0
        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
        }
コード例 #4
0
        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
        }