public async override Task <CommandResult> HandleCommand(InserirEditarUsuarioCommand command) { command.Telefone = command.Telefone ?? ""; var usuario = new Model.Usuario(command.Nome, command.Email, command.Telefone); if (!command.Id.HasValue) { usuario.SetId(new Guid()); await AtualizarUsuario(usuario, command.IdEmpresa.Value); await this.usuarioWriteRepository.InsertAsync(usuario); } else { var usuarioEdit = await this.usuarioReadRepository.FindByIdAsync(command.Id.Value); usuarioEdit.Atualizar(usuario.Nome, usuario.Email, usuario.Telefone); await AtualizarUsuario(usuarioEdit, command.IdEmpresa.Value); await this.usuarioWriteRepository.UpdateAsync(usuarioEdit); usuario = usuarioEdit; } var dto = mapper.Map <UsuarioDto>(usuario); HandleEntity(usuario); return(new CommandResult(true, dto, "Usuário cadastrado com sucesso.")); }
private async Task AtualizarUsuario(Model.Usuario usuario, Guid idEmpresa) { var empresa = await this.empresaReadRepository.FindByIdAsync(idEmpresa); usuario.SetEmpresa(empresa); }