Exemplo n.º 1
0
        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);
        }