Пример #1
0
        public ActionResult <Aluno> GetAluno(int id)
        {
            try
            {
                var aluno = _alunoRepository.Get(id);

                if (aluno == null)
                {
                    throw new Exception("Não foi encontrado nenhum aluno para o código informado.");
                }

                return(aluno);
            }
            catch (Exception ex)
            {
                return(this.StatusCode(StatusCodes.Status500InternalServerError, $"Ops! Houve um erro: { ex.Message }."));
            }
        }
        public async Task <bool> ValidarDeletarResponsavel(int responsavelId)
        {
            var alunos = await _alunoRepository.Get(x => x.IdResponsavel == responsavelId);

            if (!alunos.Any())
            {
                return(true);
            }
            return(false);
        }
        public async Task <bool> ValidarExcluirSala(int idSala)
        {
            var alunos = await _alunoRepository.Get(x => x.IdSala == idSala);

            if (!alunos.Any())
            {
                return(true);
            }
            return(false);
        }
Пример #4
0
        public ICommandResult Handle(CreatePedidoCommand command)
        {
            // Fail Fast Validation
            command.validate();
            if (command.Invalid)
            {
                return(new GenericCommandResult(false, "Pedido inválido", null));
            }

            // 1. Recupera o cliente
            var aluno = _alunoRepository.Get(command.Aluno);

            // 2. Calcula a taxa de entrega
            var delivery = _deliveryRepository.Get(command.ZipCode);

            // 3. Obtém o cupom de desconto
            var desconto = _descontoRepository.Get(command.PromoCode);

            // 4. Gera o pedido
            var cursos = _cursoRepository.Get(ExtractGuids.Extract(command.Items)).ToList();
            var pedido = new Pedido(aluno, delivery, desconto);

            foreach (var item in command.Items)
            {
                var curso = cursos.Where(x => x.Id == item.Curso).FirstOrDefault();
                pedido.AddItem(curso, item.Quantidade);
            }

            // 5. Agrupa as notificações
            AddNotifications(pedido.Notifications);

            // 6. Verifica se deu tudo certo
            if (Invalid)
            {
                return(new GenericCommandResult(false, "Falha ao gerar o pedido", Notifications));
            }

            // 7. Retorna o resultado
            _pedidoRepository.Save(pedido);
            return(new GenericCommandResult(true, $"Pedido {pedido.Numero} gerado com sucesso", pedido));
        }