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 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); }