Exemplo n.º 1
0
        public IActionResult PostOrder(int id, [FromBody] AddOrderInputModel model)
        {
            var extraItems = model.ExtraItems
                             .Select(e => new ExtraOrderItem(e.Description, e.Price))
                             .ToList();

            var car = _dbcontext.Cars.SingleOrDefault(c => c.Id == model.IdCar);

            var order = new Order(model.IdCar, model.IdCustomer, car.Price, extraItems);

            var listOrder = _dbcontext.Orders.Select(o => o.Id);
            var orderid   = _dbcontext.Orders.SingleOrDefault(o => o.Id == id);

            if (orderid == null)
            {
                car.SetAsSold();

                _dbcontext.Add(order);

                _dbcontext.SaveChanges();

                return(CreatedAtAction(
                           nameof(GetOrder),
                           new { id = order.IdCustomer, orderid = order.Id },
                           model
                           ));
            }

            return(BadRequest($"Já existe um Pedido Registado com o Id= {id}"));

            //var customer = _dbcontext.Customers.SingleOrDefault(c => c.Id ==model.IdCustomer);
            //customer.Purchase(order);
        }
Exemplo n.º 2
0
        public async Task AddOrderShouldCreateNewOrder()
        {
            var options = new DbContextOptionsBuilder <WHMSDbContext>().UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options;

            using var context = new WHMSDbContext(options);
            var warehouse = new Warehouse
            {
                Address = new Address {
                },
                Name    = "Test",
            };

            context.Warehouses.Add(warehouse);

            await context.SaveChangesAsync();

            var mockInventoryService = new Mock <IInventoryService>();
            var mockCustomersService = new Mock <ICustomersService>();

            var service = new OrdersService(context, mockInventoryService.Object, mockCustomersService.Object);

            var model = new AddOrderInputModel {
                Channel = 0, Customer = new CustomerViewModel {
                }, SourceOrderId = "test",
            };
            await service.AddOrderAsync(model);

            var dbOrder = context.Orders.FirstOrDefault();

            Assert.NotNull(dbOrder);
        }
        public IActionResult PostOrder(int id, [FromBody] AddOrderInputModel model)
        {
            var registeredOrder = _customerServices.RegisterOrder(id, model);


            return(CreatedAtAction(
                       nameof(GetOrder),
                       new { id = registeredOrder.IdCustomer, orderid = registeredOrder.Id },
                       model
                       ));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> AddOrder(AddOrderInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View());
            }

            input.CreatedById = this.userManager.GetUserId(this.User);
            var orderId = await this.ordersService.AddOrderAsync(input);

            return(this.RedirectToAction(nameof(this.OrderDetails), new { id = orderId }));
        }
Exemplo n.º 5
0
        public IActionResult PostOrder(int id, [FromBody] AddOrderInputModel orderInputModel)
        {
            var extraItems = orderInputModel.ExtraItems
                             .Select(e => new ExtraOrderItem(e.Description, e.Price)).ToList();

            var car = Context.Cars.SingleOrDefault(x => x.Id.Equals(orderInputModel.CarId));

            var order = new Order(orderInputModel.CarId, orderInputModel.CustomerId, car.Price, extraItems);

            Context.Orders.Add(order);
            Context.SaveChanges();

            return(CreatedAtAction(nameof(GetOrder), new { id = order.CustomerId, orderId = order.Id }, orderInputModel));
        }
Exemplo n.º 6
0
        public IActionResult Post(int id, [FromBody] AddOrderInputModel model)
        {
            var extraItems = model.ExtraItems.Select(e => new ExtraOrderItem(e.Description, e.Price)).ToList();
            var car        = _dbContext.Cars.SingleOrDefault(c => c.Id == model.IdCar);
            var order      = new Order(model.IdCar, model.IdCustomer, car.Price, extraItems);

            _dbContext.Orders.Add(order);
            _dbContext.SaveChanges();
            return(CreatedAtAction(
                       nameof(GetOrder),
                       new { id = order.IdCustomer, orderId = order.Id },
                       model
                       ));
        }
Exemplo n.º 7
0
        public IActionResult PostOrder(int id, [FromBody] AddOrderInputModel model)
        {
            var itensExtras = model.itensExtras.Select(e => new ItensPedidoExtra(e.Descricao, e.Preco)).ToList();
            var carro       = _dbContext.Carros.SingleOrDefault(c => c.Id == model.idCar);
            var pedido      = new Pedido(model.idCar, model.idCustomer, carro.Preco, itensExtras);

            _dbContext.Pedido.Add(pedido);
            _dbContext.SaveChanges();

            return(CreatedAtAction(
                       nameof(GetOrders),
                       new { id = pedido.idCustomer, orderId = pedido.Id },
                       model
                       ));
        }
Exemplo n.º 8
0
        public Order RegisterOrder(int id, AddOrderInputModel model)
        {
            var extraItems = model.ExtraItems
                             .Select(e => new ExtraOrderItem(e.Description, e.Price))
                             .ToList();

            var car = _dbContext.Cars
                      .SingleOrDefault(c => c.Id == model.IdCar);

            Order order = new Order(model.IdCar, model.IdCustormer, car.Price, extraItems);

            _dbContext.Orders.Add(order);
            _dbContext.SaveChanges();

            return(order);
        }
        public IActionResult PostOrder(int id, [FromBody] AddOrderInputModel model)
        {
            var extraItems = model.ExtraItems
                             .Select(e => new ExtraOrderItem(e.Description, e.Price))
                             .ToList(); //Pra cada item e, converta ele para uma lista com os 2 parâmetros

            //Busca o carro pelo ID
            var car = _dbContext.Cars.SingleOrDefault(c => c.Id == model.IdCar);

            //Busca o cliente atrelando o pedido a ele
            var order = new Order(model.IdCar, model.IdCustomer, car.Price, extraItems);

            //var customer = _dbContext.Customers.SingleOrDefault(c => c.Id == model.IdCustomer);
            //customer.Purchase(order);
            _dbContext.Orders.Add(order);
            _dbContext.SaveChanges();

            return(CreatedAtAction(
                       nameof(GetOrder),
                       new { id = order.IdCustomer, orderid = order.Id },
                       model
                       ));
        }
Exemplo n.º 10
0
        public async Task <int> AddOrderAsync(AddOrderInputModel input)
        {
            var customer = this.customersService.GetCustomer <Customer>(input.Customer.Email);

            customer = await this.customersService.CreateOrUpdateCustomerAsync(input.Customer);

            var order = this.mapper.Map <Order>(input);

            order.Customer       = customer;
            order.PaymentStatus  = PaymentStatus.NoPayment;
            order.ShippingStatus = ShippingStatus.Unshipped;
            order.OrderStatus    = OrderStatus.Processing;
            if (order.WarehouseId == 0)
            {
                order.WarehouseId = this.context.Warehouses.Select(x => x.Id).FirstOrDefault();
            }

            this.context.Orders.Add(order);

            await this.context.SaveChangesAsync();

            return(order.Id);
        }
Exemplo n.º 11
0
        public IActionResult CreateOrder(int id, [FromBody] AddOrderInputModel model)
        {
            var extraItems = model.ExtraItems.Select(e => new ExtraOrderItem(e.Description, e.Price)).ToList();

            var car = _dbContext.Cars.SingleOrDefault(c => c.Id == model.IdCar);

            if (car == null)
            {
                return(NotFound("car not founded"));
            }

            var order = new Order(1, model.IdCar, model.IdCustomer, car.Price, extraItems);

            var customer = _dbContext.Customers.SingleOrDefault(c => c.Id == model.IdCustomer);

            if (customer == null)
            {
                return(NotFound("customer not founded"));
            }

            customer.Purchase(order);

            return(CreatedAtAction(nameof(GetOrder), new { id = customer.Id, orderId = order.Id }, model));
        }
Exemplo n.º 12
0
 public IActionResult PostOrder(int id, [FromBody] AddOrderInputModel model)
 {
     return(Ok());
 }