public async Task PlaceOrder(CreateCurbsideOrder orderToBePlaced)
        {
            var response = await CurbsideMapper.PlaceOrder(orderToBePlaced);

            await TheChannel.AddCurbsideOrder(new CurbsideChannelRequest { OrderId = response.Id, ClientId = Context.ConnectionId });

            await Clients.Caller.SendAsync("OrderPlaced", Mapper.Map <CurbsideOrder>(response));
        }
        async Task <CurbsideOrder> IMapCurbsideOrders.PlaceOrder(CreateCurbsideOrder orderToPlace)
        {
            var order = Mapper.Map <OrderForCurbside>(orderToPlace);

            DataContext.CurbsideOrders.Add(order);
            await DataContext.SaveChangesAsync();

            var response = Mapper.Map <CurbsideOrder>(order);

            return(response);
        }
Example #3
0
        public async Task <ActionResult> PlaceOrder([FromBody] CreateCurbsideOrder orderToPlace)
        {
            // 1. Validate It (bad? return 400)
            // 2. Save it to the database - (e.g. do domain stuff)
            // 3. Return
            //      201 Created
            //      Location Header with the location of the new resource
            //      A copy of the entity they would get if they did a GET to the location
            CurbsideOrder response = await CurbsideMapper.PlaceOrder(orderToPlace);

            return(Ok(response));
        }
Example #4
0
        public async Task <ActionResult> PlaceOrderSynchronously([FromBody] CreateCurbsideOrder orderToPlace)
        {
            var temp = await CurbsideMapper.PlaceOrder(orderToPlace);

            for (var t = 0; t < temp.Items.Count; t++)
            {
                Thread.Sleep(1000);
            }
            temp.Status = CurbsideOrderStatus.Processed;
            var order = await Context.SaveChangesAsync();

            return(Ok(temp)); // not going to map it... just want you to see.
        }
Example #5
0
        public async Task <ActionResult> PlaceOrder([FromBody] CreateCurbsideOrder orderToPlace)
        {
            // 1. Validate It (bad? return 400)
            // 2. Save it to the database - (e.g. do domain stuff)
            // 3. Return
            //      201 Created
            //      Location Header with the location of the new resource
            //      A copy of the entity they would get if they did a GET to the location
            CurbsideOrder response = await CurbsideMapper.PlaceOrder(orderToPlace);

            await TheChannel.AddCurbsideOrder(new CurbsideChannelRequest { OrderId = response.Id });

            // this could possibly throw..
            await TheHub.Clients.All.SendAsync("ApiOrderPlaced", response);

            return(Ok(response));
        }
Example #6
0
        async Task <CurbsideOrder> IMapCurbsideOrders.PlaceOrder(CreateCurbsideOrder orderToPlace)
        {
            var order = Mapper.Map <OrderForCurbside>(orderToPlace);

            DataContext.CurbsideOrders.Add(order);
            await DataContext.SaveChangesAsync();

            var response = Mapper.Map <CurbsideOrder>(order);

            response.Items = order.Items.Split(",").ToList();
            // Process each of the items.
            foreach (var item in response.Items)
            {
                Thread.Sleep(1000);
            }
            return(response);
        }