public Agendamento(CadastrarAgendamentoEntrada cadastrarEntrada)
            : this()
        {
            if (cadastrarEntrada.Invalido)
            {
                return;
            }

            this.IdUsuario           = cadastrarEntrada.IdUsuario;
            this.IdCategoria         = cadastrarEntrada.IdCategoria;
            this.IdConta             = cadastrarEntrada.IdConta;
            this.IdCartaoCredito     = cadastrarEntrada.IdCartaoCredito;
            this.IdPessoa            = cadastrarEntrada.IdPessoa;
            this.TipoMetodoPagamento = cadastrarEntrada.TipoMetodoPagamento;
            this.Observacao          = cadastrarEntrada.Observacao;
            this.Parcelas            = this.CriarParcelas(cadastrarEntrada.QuantidadeParcelas, cadastrarEntrada.DataPrimeiraParcela, cadastrarEntrada.ValorParcela, cadastrarEntrada.PeriodicidadeParcelas, cadastrarEntrada.Observacao);
        }
Exemple #2
0
        public async Task <ISaida> CadastrarAgendamento([FromBody, SwaggerParameter("Informações de cadastro do agendamento.", Required = true)] CadastrarAgendamentoViewModel model)
        {
            var cadastrarEntrada = new CadastrarAgendamentoEntrada(
                base.ObterIdUsuarioClaim(),
                model.IdCategoria.Value,
                model.IdConta,
                model.IdCartaoCredito,
                model.TipoMetodoPagamento.Value,
                model.ValorParcela.Value,
                model.DataPrimeiraParcela.Value,
                model.QuantidadeParcelas.Value,
                model.PeriodicidadeParcelas.Value,
                model.IdPessoa,
                model.Observacao);

            return(await _agendamentoServico.CadastrarAgendamento(cadastrarEntrada));
        }
Exemple #3
0
        public async Task <ISaida> CadastrarAgendamento(CadastrarAgendamentoEntrada cadastroEntrada)
        {
            // Verifica se as informações para cadastro foram informadas corretamente
            if (cadastroEntrada.Invalido)
            {
                return(new Saida(false, cadastroEntrada.Mensagens, null));
            }

            // Verifica se a categoria existe a partir do ID informado.
            this.NotificarSeFalso(await _categoriaRepositorio.VerificarExistenciaPorId(cadastroEntrada.IdUsuario, cadastroEntrada.IdCategoria), CategoriaMensagem.Id_Categoria_Nao_Existe);

            // Verifica se a conta ou cartão de crédito existem a partir do ID informado.
            if (cadastroEntrada.IdConta.HasValue)
            {
                this.NotificarSeFalso(await _contaRepositorio.VerificarExistenciaPorId(cadastroEntrada.IdUsuario, cadastroEntrada.IdConta.Value), ContaMensagem.Id_Conta_Nao_Existe);
            }
            else
            {
                this.NotificarSeFalso(await _cartaoCreditoRepositorio.VerificarExistenciaPorId(cadastroEntrada.IdUsuario, cadastroEntrada.IdCartaoCredito.Value), CartaoCreditoMensagem.Id_Cartao_Nao_Existe);
            }

            // Verifica se a pessoa existe a partir do ID informado.
            if (cadastroEntrada.IdPessoa.HasValue)
            {
                this.NotificarSeFalso(await _pessoaRepositorio.VerificarExistenciaPorId(cadastroEntrada.IdUsuario, cadastroEntrada.IdPessoa.Value), PessoaMensagem.Id_Pessoa_Nao_Existe);
            }

            if (this.Invalido)
            {
                return(new Saida(false, this.Mensagens, null));
            }

            var agendamento = new Agendamento(cadastroEntrada);

            await _agendamentoRepositorio.Inserir(agendamento);

            await _uow.Commit();

            return(_uow.Invalido
                ? new Saida(false, _uow.Mensagens, null)
                : new Saida(true, new[] { AgendamentoMensagem.Agendamento_Cadastrado_Com_Sucesso }, new AgendamentoSaida(await _agendamentoRepositorio.ObterPorId(agendamento.Id))));
        }