public override async Task <GetCurbsideResponse> PlaceOrder(PostCurbsideRequest request) { var order = new CurbsideOrder { For = request.For, Items = String.Join(",", request.Items), PickupReadyAt = null }; _context.CurbsideOrders.Add(order); await _context.SaveChangesAsync(); if (await _channel.AddCurbside(new CurbsideChannelRequest { OrderId = order.Id })) { // it was able to write it } else { // it didnt write it } return(new GetCurbsideResponse { Id = order.Id, For = order.For, Items = order.Items.Split(',').Select(int.Parse).ToArray(), PickupReadyAt = null }); }
//public async Task<CurbsideOrder> AddOrder(PostCurbsideOrderRequest orderToPlace) async Task <CurbsideOrder> IDoCurbsideCommands.AddOrder(PostCurbsideOrderRequest orderToPlace) { // place the order... //await Task.Delay(3000); var order = _mapper.Map <CurbsideOrder>(orderToPlace); _context.CurbsideOrders.Add(order); await _context.SaveChangesAsync(); try { await _channel.AddCurbside(new CurbsideChannelRequest { OrderId = order.Id }); } catch (OperationCanceledException ex) { throw; } return(order); }