public async Task Editar(long id, string nome, string documento, string novaSenha, string telefone, IFormFile foto, bool status) { var user = await userManager.FindByIdAsync(id.ToString()); if (user == null) { throw new CustomException("Usuário não encontrado."); } user.Nome = nome; user.Documento = documento; user.Telefone = telefone; user.Ativo = status; if (foto != null) { var uploadService = new UploadService(env); user.Foto = await uploadService.UploadArquivo(foto, Usuario.CaminhoArquivo); } await userManager.UpdateAsync(user); if (!string.IsNullOrEmpty(novaSenha)) { await userManager.RemovePasswordAsync(user); await userManager.AddPasswordAsync(user, novaSenha); } await AtualizaClaims(user); }
public async Task <long> Cadastrar(string email, string nome, string documento, string telefone, IFormFile foto, PerfilUsuario perfil, string senha, bool ativo = true) { var user = new Usuario { DataCadastro = DateTime.Now, Email = email.ToLower(), UserName = email.ToLower(), EmailConfirmed = true, Nome = nome, NormalizedEmail = email.ToUpper(), NormalizedUserName = email.ToUpper(), Ativo = ativo, Perfil = perfil, Documento = documento, Telefone = telefone }; if (foto != null) { var uploadService = new UploadService(env); user.Foto = await uploadService.UploadArquivo(foto, Usuario.CaminhoArquivo); } var result = await userManager.CreateAsync(user, senha); if (result.Errors.Any() && result.Errors.FirstOrDefault().Code == "DuplicateUserName") { throw new CustomException("E-mail já cadastrado no sistema."); } if (!result.Succeeded) { throw new CustomException(result.Errors.Select(e => e.Description).FirstOrDefault()); } await AdicionaRole(user, perfil); await EnviarEmail(user.Email, nome); await CriarClaims(user); return(user.Id); }