public CursoGetDto Get(int id) { var query = _repository.Get(id); var dto = query.Select(c => new CursoGetDto() { Id = c.IdCurso, DataInicio = c.DataInicio, DataTermino = c.DataTermino, Descricao = c.Descricao, NumeroAlunos = c.NumeroAlunos }).FirstOrDefault(); return(dto); }
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)); }
public async Task <IActionResult> Get() { var curso = await _cursoRepository.Get(); return(Ok(curso)); }