예제 #1
0
        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."));
        }
예제 #2
0
        private async Task AtualizarUsuario(Model.Usuario usuario, Guid idEmpresa)
        {
            var empresa = await this.empresaReadRepository.FindByIdAsync(idEmpresa);

            usuario.SetEmpresa(empresa);
        }