コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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));
            }
        }
コード例 #3
0
        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));
            }
        }
コード例 #4
0
        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));
            }
        }
コード例 #5
0
        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);
        }