Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        public void Descartar(DescartarParcelaEntrada descartarEntrada)
        {
            if (descartarEntrada.Invalido || descartarEntrada.IdParcela != this.Id)
            {
                return;
            }

            this.Descartada     = true;
            this.MotivoDescarte = descartarEntrada.MotivoDescarte;
        }
Ejemplo n.º 3
0
        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)));
        }
Ejemplo n.º 4
0
        public void Descartar(DescartarParcelaEntrada entrada)
        {
            if (entrada.Invalido)
            {
                return;
            }

            this.Descartada     = true;
            this.MotivoDescarte = entrada.MotivoDescarte;

            this.Agendamento?.AjustarNumeroParcelas();
        }
Ejemplo n.º 5
0
        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)));
        }