Example #1
0
        public ActionResult Editar(UsuarioEditModel usuario, HttpPostedFileBase upload)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    logger.Debug("El modelo de usuario es invalido");
                    ModelState.AddModelError("", "Hubo un Error");
                    return(View(usuario));
                }
                var usuarioDto = Mapper.Map <UsuarioEditModel, UsuarioDto>(usuario);
                if (upload != null && upload.ContentLength > 0)
                {
                    using (var reader = new System.IO.BinaryReader(upload.InputStream))
                    {
                        usuarioDto.Avatar = new FileContent()
                        {
                            NombreArchivo = upload.FileName,
                            Content       = reader.ReadBytes(upload.ContentLength)
                        };
                    }
                }
                servicioUsuario.Actualizar(usuarioDto);
                logger.InfoFormat("Se Actualizo correctamente el Usuario: {0}", usuario.Nombre);
            }
            catch (Exception ex)
            {
                // si tuvieras un logger configuradoc log4net
                logger.Error("Error Actualizando Usuario", ex);
                ModelState.AddModelError("", "Hubo un Error");
                return(View(usuario));
            }

            return(RedirectToAction("Index", "Home"));
        }
        public async Task <IHttpActionResult> EditUser(UsuarioEditModel userModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Usuario user = await this.AppUserManager.FindByIdAsync(userModel.Id.ToString());

            if (user != null)
            {
                user.FirstName = userModel.FirstName;
                user.LastName  = userModel.LastName;
                user.Email     = userModel.Email;

                IdentityResult editResult = await this.AppUserManager.UpdateAsync(user);

                if (!editResult.Succeeded)
                {
                    return(GetErrorResult(editResult));
                }

                List <string> removeRoles = new List <string>()
                {
                    "Administrador", "Gerente", "Atendente", "Responsavel"
                };

                removeRoles.Remove(userModel.RoleName);

                await this.AppUserManager.RemoveFromRolesAsync(user.Id, removeRoles.ToArray());

                await this.AppUserManager.AddToRoleAsync(user.Id, userModel.RoleName);

                Uri locationHeader = new Uri(Url.Link("user", new { id = user.Id }));

                return(Created(locationHeader, TheModelFactory.Create(user)));
            }
            else
            {
                throw new Exception("Usuário não encontrado.");
            }
        }