Esempio n. 1
0
        public async Task <long> Create(PedidoInput pedidoInput, CancellationToken cancellationToken)
        {
            return(await Task.Run(() =>
            {
                pedidoInput.Validar();

                Pedido pedido = new Pedido();
                pedido.DataCriacao = DateTime.Now;
                //pedido.UsuarioCriacao = Thread.CurrentPrincipal.Identity;
                foreach (var itemInput in pedidoInput.Itens)
                {
                    ItemPedido item = new ItemPedido();
                    Produto produto = ProdutoRepository.GetById(itemInput.ProdutoId);
                    if (produto == null)
                    {
                        throw new Exception("Produto não encontrado");
                    }

                    item.Produto = produto;
                    item.Quantidade = itemInput.Qtd;
                    pedido.Itens.Add(item);
                }

                PedidoRepository.Add(pedido);
                return pedido.Id;
            }, cancellationToken));
        }
Esempio n. 2
0
        public async Task <IActionResult> Post([FromBody] PedidoInput input)
        {
            var id = await _pedidoApplicationService.AddAsync(input);

            if (id <= 0)
            {
                return(BadRequest());
            }

            return(Created(Request.Path, input));
        }
Esempio n. 3
0
        public async Task <IActionResult> Post([FromBody] PedidoInput pedido)
        {
            var login   = User.Identity.Name;
            var usuario = await _usuarioRepository.Get(login);

            var result = await _mediator.Send(new NewPedidoCommand(pedido.Pizzas, usuario.Id, null));

            if (result.Ok)
            {
                return(Ok(result.Data));
            }
            return(BadRequest(result.Errors));
        }
Esempio n. 4
0
        public async Task <IActionResult> Put(int id, [FromBody] PedidoInput input)
        {
            try
            {
                await _pedidoApplicationService.UpdateAsync(id, input);

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
        }
Esempio n. 5
0
        public async Task Edit(long pedidoId, PedidoInput pedidoInput, CancellationToken cancellationToken)
        {
            await Task.Run(() =>
            {
                pedidoInput.Validar();
                Pedido pedido      = PedidoRepository.GetById(pedidoId);
                var itensRemovidos = pedido.Itens.Where(i => !pedidoInput.Itens.Any(ii => ii.ProdutoId == i.Produto.Id));

                foreach (var item in itensRemovidos)
                {
                    pedido.Itens.Remove(item);
                }

                foreach (var itemInput in pedidoInput.Itens)
                {
                    var item = pedido.Itens.FirstOrDefault(i => i.Produto.Id == itemInput.ProdutoId);
                    if (item == null)
                    {
                        Produto produto = ProdutoRepository.GetById(itemInput.ProdutoId);
                        if (produto == null)
                        {
                            throw new Exception("Produto não encontrado");
                        }

                        item.Produto    = produto;
                        item.Quantidade = itemInput.Qtd;
                        pedido.Itens.Add(item);
                    }
                    else
                    {
                        item.Quantidade = itemInput.Qtd;
                    }
                }

                PedidoRepository.Update(pedido);
            }, cancellationToken);
        }
Esempio n. 6
0
        public async Task <IActionResult> Create(PedidoInput peditoInput, CancellationToken cancellationToken)
        {
            long pedidoId = await PedidoService.Create(peditoInput, cancellationToken);

            return(Ok(pedidoId));
        }
        public async Task <IHttpActionResult> Post([FromBody] PedidoInput input)
        {
            await _serviceBase.AddAsync(input);

            return(Created(Request.RequestUri + "/", input));
        }
        public async Task <IActionResult> Post([FromBody] PedidoInput obj)
        {
            await _appService.AdicionarPedido(obj.IdCliente, obj.Itens);

            return(StatusCode(201));
        }