public async Task <ActionResult> SyncCurbsideOrders([FromBody] PostSyncCurbsideOrdersRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } else { // Save it to the DB var orderToSave = new CurbsideOrder { For = request.For, Items = request.Items, }; var numberOfItems = orderToSave.Items.Split(',').Count(); for (var t = 0; t < numberOfItems; t++) { await Task.Delay(1000); } orderToSave.PickupDate = DateTime.Now.AddHours(numberOfItems); // return 201, Location Header, Copy of the Entity _context.CurbsideOrders.Add(orderToSave); await _context.SaveChangesAsync(); var response = new GetCurbsideOrderResponse { Id = orderToSave.Id, For = orderToSave.For, Items = orderToSave.Items, PickupDate = orderToSave.PickupDate.Value }; return(Ok(response)); } }
public async Task <ActionResult> AsyncCurbsideOrders([FromBody] PostSyncCurbsideOrdersRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } else { var orderToSave = new CurbSideOrder { For = request.For, Items = request.Items, Status = CurbSideOrderStatus.Processing }; _context.CurbSide.Add(orderToSave); await _context.SaveChangesAsync(); var response = new GetCurbsideOrderResponse { Id = orderToSave.Id, For = orderToSave.For, Items = orderToSave.Items, PickupDate = null, Status = orderToSave.Status }; await _channel.AddCurbside(new CurbsideChannelRequest { ReservationId = response.Id }); return(CreatedAtRoute("curbsideorders#getbyid", new { id = response.Id }, response)); } }
public async Task <ActionResult> AsyncCurbsideOrders([FromBody] PostSyncCurbsideOrdersRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } else { // Save it to the DB var orderToSave = new CurbsideOrder { For = request.For, Items = request.Items, Status = CurbsideOrderStatus.Processing }; // return 201, Location Header, Copy of the Entity _context.CurbsideOrders.Add(orderToSave); await _context.SaveChangesAsync(); var response = new GetCurbsideOrderResponse { Id = orderToSave.Id, For = orderToSave.For, Items = orderToSave.Items, PickupDate = null, Status = orderToSave.Status }; var didWrite = await _channel.AddCurbside(new CurbsideChannelRequest { ReservationId = response.Id }); if (!didWrite) { // what to do? } return(CreatedAtRoute("curbsideorders#getbyid", new { id = response.Id }, response)); } }
public async Task <ActionResult> SyncCurbsideOrders([FromBody] PostSyncCurbsideOrdersRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } else { var orderToSave = new CurbsireOrder { WhoTheOrderIsFor = request.WhoTheOrderIsFor, Items = request.Items }; var numberOfItems = orderToSave.Items.Split(',').Count(); for (var t = 0; t < numberOfItems; t++) { await Task.Delay(1000); } orderToSave.PickupDate = DateTime.Now.AddHours(numberOfItems); _context.CurbsireOrders.Add(orderToSave); await _context.SaveChangesAsync(); var response = new GetCurbsideOrderResponse { Id = orderToSave.Id, WhoTheOrderIsForThisIsTheGETModelVariant = orderToSave.WhoTheOrderIsFor, Items = orderToSave.Items, PickupDate = orderToSave.PickupDate.Value }; return(Ok(response)); } }
public async Task PlaceOrder(PostSyncCurbsideOrdersRequest request) { var orderToSave = new CurbSideOrder { For = request.For, Items = request.Items, Status = CurbSideOrderStatus.Processing }; _context.CurbSide.Add(orderToSave); await _context.SaveChangesAsync(); var response = new GetCurbsideOrderResponse { Id = orderToSave.Id, For = orderToSave.For, Items = orderToSave.Items, PickupDate = null, Status = orderToSave.Status }; await _channel.AddCurbside(new CurbsideChannelRequest { ReservationId = response.Id, ConnectionId = Context.ConnectionId }); await Clients.Caller.SendAsync("OrderPlaced", response); }