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); }
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 )); }
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 })); }
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)); }
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 )); }
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 )); }
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 )); }
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); }
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)); }
public IActionResult PostOrder(int id, [FromBody] AddOrderInputModel model) { return(Ok()); }