public async Task <ISaida> AlterarLancamento(AlterarLancamentoEntrada alterarEntrada) { // Verifica se as informações para alteração foram informadas corretamente if (alterarEntrada.Invalido) { return(new Saida(false, alterarEntrada.Mensagens, null)); } var lancamento = await _lancamentoRepositorio.ObterPorId(alterarEntrada.IdLancamento, true); // Verifica se o lançamento existe this.NotificarSeNulo(lancamento, LancamentoMensagem.Id_Lancamento_Nao_Existe); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } // Verifica se o lançamento pertece ao usuário informado. this.NotificarSeDiferentes(lancamento.IdUsuario, alterarEntrada.IdUsuario, LancamentoMensagem.Lancamento_Alterar_Nao_Pertence_Usuario); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } // Verifica se a categoria existe a partir do ID informado. if (lancamento.IdCategoria != alterarEntrada.IdCategoria) { this.NotificarSeFalso(await _categoriaRepositorio.VerificarExistenciaPorId(alterarEntrada.IdUsuario, alterarEntrada.IdCategoria), CategoriaMensagem.Id_Categoria_Nao_Existe); } // Verifica se a conta existe a partir do ID informado. if (lancamento.IdConta != alterarEntrada.IdConta) { this.NotificarSeFalso(await _contaRepositorio.VerificarExistenciaPorId(alterarEntrada.IdUsuario, alterarEntrada.IdConta), ContaMensagem.Id_Conta_Nao_Existe); } // Verifica se a pessoa existe a partir do ID informado. if (lancamento.IdPessoa != alterarEntrada.IdPessoa && alterarEntrada.IdPessoa.HasValue) { this.NotificarSeFalso(await _pessoaRepositorio.VerificarExistenciaPorId(alterarEntrada.IdUsuario, alterarEntrada.IdPessoa.Value), PessoaMensagem.Id_Pessoa_Nao_Existe); } if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } lancamento.Alterar(alterarEntrada); _lancamentoRepositorio.Atualizar(lancamento); await _uow.Commit(); return(_uow.Invalido ? new Saida(false, _uow.Mensagens, null) : new Saida(true, new[] { LancamentoMensagem.Lancamento_Alterado_Com_Sucesso }, new LancamentoSaida(lancamento))); }
public void Alterar(AlterarLancamentoEntrada alterarEntrada) { if (alterarEntrada.Invalido || alterarEntrada.IdLancamento != this.Id) { return; } this.IdConta = alterarEntrada.IdConta; this.IdCategoria = alterarEntrada.IdCategoria; this.Data = alterarEntrada.Data; this.Valor = alterarEntrada.Valor; this.IdPessoa = alterarEntrada.IdPessoa; this.Observacao = alterarEntrada.Observacao; }
public async Task <ISaida> AlterarLancamento([FromBody, SwaggerParameter("Informações para alteração de um lançamento.", Required = true)] AlterarLancamentoViewModel model) { var alterarEntrada = new AlterarLancamentoEntrada( model.IdLancamento.Value, model.IdConta.Value, model.IdCategoria.Value, model.Data.Value, model.Valor.Value, base.ObterIdUsuarioClaim(), model.IdPessoa, model.Observacao); return(await _lancamentoServico.AlterarLancamento(alterarEntrada)); }