Exemple #1
0
        public async Task <ObterComandaResponse> Handle(ObterComandaRequest request)
        {
            var comanda = await _comandaRepository.ConsultarPorId(request.ComandaId);

            return(new ObterComandaResponse
            {
                Comanda = new ComandaResponse
                {
                    Id = comanda.Id,
                    DataAbertura = comanda.DataAbertura,
                    DataFechamento = comanda.DataFechamento,
                    Mesa = comanda.Mesa,
                    Pedidos = comanda.Pedidos.Select(p => new PedidoResponse
                    {
                        Id = p.Id,
                        ComandaId = p.ComandaId,
                        Cozinha = p.Cozinha,
                        DataCancelamento = p.DataCancelamento,
                        DataCriacao = p.DataCriacao,
                        DataInicioPreparo = p.DataInicioPreparo,
                        DataPronto = p.DataPronto,
                        ItemId = p.ItemId,
                        Quantidade = p.Quantidade,
                        Status = p.Status,
                        Valor = p.Valor
                    }).ToList()
                }
            });
        }
        public async Task <FecharComandaResponse> Handler(FecharComandaCommand command)
        {
            var comanda = await _comandaRepository.ConsultarPorId(command.Id);

            if (comanda == null)
            {
                return(new FecharComandaResponse {
                    Erro = new Notification(nameof(command.Id), "Essa comanda não existe")
                });
            }

            comanda.Fechar(DateTime.Now);

            if (comanda.Notifications.Any())
            {
                return(new FecharComandaResponse {
                    Erro = comanda.Notifications
                });
            }

            return(new FecharComandaResponse {
                ComandaId = comanda.Id, TotalPagar = comanda.TotalPagar
            });
        }