示例#1
0
        public IHttpActionResult COUProyect(UsuarioEdit model)
        {
            DB = new SlabEntities();
            int            Id_Usuario;
            int            Id_Rol;
            TokenGenerator TG     = new TokenGenerator();
            string         result = TG.DecodeTokenAwt(Request.Headers.Authorization.ToString().Replace("Bearer ", "")).Result;

            if (!string.IsNullOrEmpty(result))
            {
                Id_Usuario = int.Parse(result.Split('|')[0]);
                Id_Rol     = int.Parse(result.Split('|')[2]);
                Rol R = DB.Rol.Where(x => x.Id == Id_Rol && x.Rol1.ToUpper().Equals("ADMINISTRADOR")).FirstOrDefault();
                if (R != null)
                {
                    return(Ok(UT.Creacion(model)));
                }
                else
                {
                    return(BadRequest("El usuario logueado no tiene permisos para realizar la acción."));
                }
            }
            else
            {
                return(BadRequest("No se pudo verficar la autenticacion del usuario."));
            }
        }
示例#2
0
        private Usuario parsearUsr(UsuarioEdit ue)
        {
            Usuario usr = new Usuario();

            usr.ID            = ue.ID;
            usr.NombreUsuario = ue.NombreUsuario;
            usr.Habilitado    = ue.Habilitado;
            usr.Clave         = ue.Clave;
            usr.IDPersona     = ue.IDPersona;
            usr.Persona       = ue.Persona;
            usr.Salt          = ue.Salt;
            return(usr);
        }
示例#3
0
        private UsuarioEdit parsearEdit(Usuario usr)
        {
            UsuarioEdit ue = new UsuarioEdit();

            ue.ID            = usr.ID;
            ue.NombreUsuario = usr.NombreUsuario;
            ue.Habilitado    = usr.Habilitado;
            ue.Clave         = usr.Clave;
            ue.IDPersona     = usr.IDPersona;
            ue.Persona       = usr.Persona;
            ue.Salt          = usr.Salt;
            return(ue);
        }
示例#4
0
        public ActionResult Edit([Bind(Include = "IdUsuario,Email,Login,Status,Admin")] UsuarioEdit model)
        {
            try
            {
                ViewBag.Message = "";

                if (ModelState.IsValid)
                {
                    usuarioService.Atualizar(model);
                    return(RedirectToAction("Index"));
                }
                return(View(model));
            }
            catch (Exception erro)
            {
                ViewBag.Message = erro.Message;
                return(View(model));
            }
        }
示例#5
0
        public Result <UsuarioEdit> GetUsuarioEditById(long id)
        {
            var result = new Result <UsuarioEdit>();

            try
            {
                using (var connection = _dapperAdapter.Open())
                {
                    // Obtiene informacion basica del usuario
                    var usuarioEdit = new UsuarioEdit();
                    usuarioEdit.Usuario = connection.Get <Usuario>(id);

                    // Obtiene lista de permisos asociados al usuario
                    var listPermisosUsuario = _permisoService.ListPermisosAsignadosUsuario(id);
                    if (!listPermisosUsuario.Success)
                    {
                        result.Message = listPermisosUsuario.Message;
                        return(result);
                    }
                    usuarioEdit.Permisos = listPermisosUsuario.Data;

                    // Obtiene lista de roles asociados al usuario
                    var listRolesUsuario = _roleService.ListRolesUsuario(id);
                    if (!listRolesUsuario.Success)
                    {
                        result.Message = listRolesUsuario.Message;
                        return(result);
                    }
                    usuarioEdit.Roles = listRolesUsuario.Data;

                    // Actualiza informacion del objeto Usuario.
                    result.Data    = usuarioEdit;
                    result.Success = true;
                }
            }
            catch (Exception ex)
            {
                result.Message   = "Error consultando usuario";
                result.Exception = ex;
            }

            return(result);
        }
示例#6
0
        public Usuario Atualizar(UsuarioEdit usuario)
        {
            var request = new RestRequest(Method.PUT);
            var json    = JsonConvert.SerializeObject(usuario);

            request.AddHeader("Authorization", $"Bearer {USER_TOKEN}");
            request.AddHeader("Content-Type", "application/json");
            request.AddParameter("application/json", json, ParameterType.RequestBody);
            IRestResponse response = _RestClient.Execute(request);

            if (response.StatusCode == HttpStatusCode.OK)
            {
                var novoUsuario = JsonConvert.DeserializeObject <Usuario>(response.Content);
                return(novoUsuario);
            }
            else
            {
                throw new Exception("Não foi possível inserir");
            }
        }
示例#7
0
 public IActionResult Edit(int id, [Bind("ID, NombreUsuario, Habilitado, Clave, IDPersona")] UsuarioEdit edit)
 {
     if (id != edit.ID)
     {
         return(NotFound());
     }
     try
     {
         if (!ModelState.IsValid)
         {
             return(View(parsearEdit(_usuarioLogic.GetOne(edit.ID))));
         }
         Usuario usr = parsearUsr(edit);
         usr.State = BusinessEntity.States.Modified;
         _usuarioLogic.Save(usr);
     }catch (Exception ex)
     {
         _logger.LogError(ex, ex.Message);
         ModelState.AddModelError("", "Se produjo un error al editar el usuario.");
         return(View((edit)));
     }
     return(RedirectToAction("List"));
 }
        public ActionResult Post([FromBody] UsuarioEdit model)
        {
            #region Estados
            List <EstadoList> LstEL = new List <EstadoList>();
            EstadoList        EL    = new EstadoList();
            LstEL.Add(EL = new EstadoList()
            {
                Id = 0, Estado = "Inactivo"
            });
            LstEL.Add(EL = new EstadoList()
            {
                Id = 1, Estado = "Activo"
            });
            #endregion
            using (var transaction = Context.Database.BeginTransaction())
            {
                try
                {
                    Usuario User = Context.Usuario.Where(x => x.UserName.ToUpper().Equals(model.UserName.ToUpper()) && x.Correo.ToUpper().Equals(model.Correo.ToUpper()) && x.Rol_Id == model.Rol_Id).FirstOrDefault();
                    if (User == null && LstEL.Where(x => x.Id == model.Estado).FirstOrDefault() != null)
                    {
                        User = new Usuario()
                        {
                            Nombre     = model.Nombre,
                            Apellido   = model.Apellido,
                            Rol_Id     = Context.Rol.Where(x => x.RolName.ToUpper().Equals("OPERARIO")).Select(x => x.Id).FirstOrDefault(),
                            UserName   = model.UserName,
                            Correo     = model.Correo,
                            Contrasena = Encriptar("Slab" + model.UserName + "Code"),
                            Estado     = model.Estado == 0 ? false : true
                        };
                        Context.Usuario.Add(User);
                        Context.SaveChanges();
                        #region Email
                        var          fromAddress  = new MailAddress(_configuration["MailFromCredentials:Mail"], "Slab Code");
                        var          toAddress    = new MailAddress(model.Correo, model.Nombre + ' ' + model.Apellido);
                        string       fromPassword = _configuration["MailFromCredentials:Password"];
                        const string subject      = "Creacion de Usuario en SlabCode.";
                        string       body         = "Su usuario es: " + model.UserName + " y su contraseña es: " + "Slab" + model.UserName + "Code";

                        var smtp = new SmtpClient
                        {
                            Host                  = "smtp.gmail.com",
                            Port                  = 587,
                            EnableSsl             = true,
                            DeliveryMethod        = SmtpDeliveryMethod.Network,
                            UseDefaultCredentials = false,
                            Credentials           = new NetworkCredential(fromAddress.Address, fromPassword)
                        };
                        using (var message = new MailMessage(fromAddress, toAddress)
                        {
                            Subject = subject,
                            Body = body
                        })
                        {
                            smtp.Send(message);
                        }
                        #endregion
                        transaction.Commit();
                        return(Ok());
                    }
                    else
                    {
                        return(BadRequest("Ya existe un usuario con el nombre de usuario: " + model.UserName + ", y con el correo: " + model.Correo + ""));
                    }
                }
                catch (Exception Exc)
                {
                    transaction.Rollback();
                    return(BadRequest("Error al guardar el usuario, error: " + Exc.Message.ToString()));
                }
            }
        }
示例#9
0
        public dynamic Creacion(UsuarioEdit model)
        {
            #region Estados
            List <EstadoList> LstEL = new List <EstadoList>();
            EstadoList        EL    = new EstadoList();
            LstEL.Add(EL = new EstadoList()
            {
                Id = 0, Estado = "Inactivo"
            });
            LstEL.Add(EL = new EstadoList()
            {
                Id = 1, Estado = "Activo"
            });
            #endregion
            DB       = new SlabEntities();
            response = new Response();
            using (var transaction = DB.Database.BeginTransaction())
            {
                try
                {
                    Usuario User = DB.Usuario.Where(x => x.Usuario1.ToUpper().Equals(model.Usuario.ToUpper()) && x.Correo.ToUpper().Equals(model.Correo.ToUpper()) && x.Rol_Id == model.Rol_Id).FirstOrDefault();
                    if (User == null && LstEL.Where(x => x.Id == model.Estado).FirstOrDefault() != null)
                    {
                        User = new Usuario()
                        {
                            Nombre     = model.Nombre,
                            Apellido   = model.Apellido,
                            Rol_Id     = DB.Rol.Where(x => x.Rol1.ToUpper().Equals("OPERARIO")).Select(x => x.Id).FirstOrDefault(),
                            Usuario1   = model.Usuario,
                            Correo     = model.Correo,
                            Contrasena = response.Encriptar("Slab" + model.Usuario + "Code"),
                            Estado     = model.Estado == 0 ? false : true
                        };
                        DB.Usuario.Add(User);
                        DB.SaveChanges();
                        #region Email
                        var          fromAddress  = new MailAddress(ConfigurationManager.AppSettings["MailFrom"], "Slab Code");
                        var          toAddress    = new MailAddress(model.Correo, model.Nombre + ' ' + model.Apellido);
                        string       fromPassword = ConfigurationManager.AppSettings["MailPassword"];
                        const string subject      = "Creacion de Usuario en SlabCode.";
                        string       body         = "Su usuario es: " + model.Usuario + " y su contraseña es: " + "Slab" + model.Usuario + "Code";

                        var smtp = new SmtpClient
                        {
                            Host                  = "smtp.gmail.com",
                            Port                  = 587,
                            EnableSsl             = true,
                            DeliveryMethod        = SmtpDeliveryMethod.Network,
                            UseDefaultCredentials = false,
                            Credentials           = new NetworkCredential(fromAddress.Address, fromPassword)
                        };
                        using (var message = new MailMessage(fromAddress, toAddress)
                        {
                            Subject = subject,
                            Body = body
                        })
                        {
                            smtp.Send(message);
                        }
                        #endregion
                        response.Successfully = true;
                        response.Code         = 201;
                        response.Message      = "Usuario Insertado con éxito.";
                        response.Result       = "Successfully";
                        transaction.Commit();
                    }
                    else
                    {
                        response.Successfully = false;
                        response.Code         = 200;
                        response.Message      = string.Format("Ya existe un Usuario con ese usuario {0}, con ese correo {1} o la informacion enviada es incorrecta.", model.Usuario, model.Correo);
                        response.Result       = null;
                    }
                }
                catch (Exception Exc)
                {
                    transaction.Rollback();
                    response.Successfully = false;
                    response.Code         = 400;
                    response.Message      = "Error In the Method, Error: " + Exc.Message.ToString();
                    response.Result       = "Error in the Method";
                }
            }
            return(response);
        }