public async Task <ISaida> DescartarParcela([FromBody, SwaggerParameter("Informações de descarte da parcela.", Required = true)] DescartarParcelaViewModel model) { var descartarEntrada = new DescartarParcelaEntrada( model.IdParcela.Value, base.ObterIdUsuarioClaim(), model.MotivoDescarte); return(await _agendamentoServico.DescartarParcela(descartarEntrada)); }
public void Descartar(DescartarParcelaEntrada descartarEntrada) { if (descartarEntrada.Invalido || descartarEntrada.IdParcela != this.Id) { return; } this.Descartada = true; this.MotivoDescarte = descartarEntrada.MotivoDescarte; }
public async Task <IActionResult> DescartarParcela( [FromQuery, SwaggerParameter("ID da parcela.", Required = true)] int idParcela, [FromBody, SwaggerParameter("Informações de descarte da parcela.", Required = true)] DescartarParcelaViewModel model) { var entrada = new DescartarParcelaEntrada( base.ObterIdUsuarioClaim(), model.MotivoDescarte); return(new ApiResult(await _agendamentoServico.DescartarParcela(idParcela, entrada))); }
public void Descartar(DescartarParcelaEntrada entrada) { if (entrada.Invalido) { return; } this.Descartada = true; this.MotivoDescarte = entrada.MotivoDescarte; this.Agendamento?.AjustarNumeroParcelas(); }
public async Task <ISaida> DescartarParcela(int idParcela, DescartarParcelaEntrada entrada) { // Verifica se as informações para descartar foram informadas corretamente if (entrada.Invalido) { return(new Saida(false, entrada.Mensagens, null)); } var parcela = await _parcelaRepositorio.ObterPorId(idParcela); // Verifica se a parcela existe this.NotificarSeNulo(parcela, string.Format(ParcelaMensagem.Id_Parcela_Nao_Existe, idParcela)); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } // Verifica se a parcela já foi lançada ou descartada this .NotificarSeVerdadeiro(parcela.Lancada, ParcelaMensagem.Parcela_Lancar_Ja_Lancada) .NotificarSeVerdadeiro(parcela.Descartada, ParcelaMensagem.Parcela_Lancar_Ja_Descartada); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } // Verifica se a parcela pertece a um agendamento do usuário informado. this.NotificarSeDiferentes(parcela.Agendamento.IdUsuario, entrada.IdUsuario, ParcelaMensagem.Agendamento_Parcela_Nao_Pertence_Usuario); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } parcela.Descartar(entrada); _parcelaRepositorio.Atualizar(parcela); await _uow.Commit(); return(new Saida(true, new[] { ParcelaMensagem.Parcela_Descartada_Com_Sucesso }, new ParcelaSaida(parcela))); }