コード例 #1
0
        //---------------------------------------------------------------
        //private methods

        private string GetUserId(HttpContext httpContext)
        {
            var checkoutCookie = new CheckoutCookie(httpContext.Request.Cookies, httpContext.Response.Cookies);
            var cookieService  = new CheckoutCookieService(checkoutCookie.GetValue());

            return(cookieService.UserId);
        }
コード例 #2
0
        private void ClearCheckoutCookie(HttpContext httpContext)
        {
            var checkoutCookie = new CheckoutCookie(HttpContext.Request.Cookies, HttpContext.Response.Cookies);
            var cookieService  = new CheckoutCookieService(checkoutCookie.GetValue());

            cookieService.ClearAllLineItems();
            checkoutCookie.AddOrUpdateCookie(cookieService.EncodeForCookie());
        }
コード例 #3
0
ファイル: DisplayOrdersService.cs プロジェクト: krossa/nauka
        /// <summary>
        /// This lists existing orders
        /// </summary>
        /// <returns></returns>
        public List <OrderListDto> GetUsersOrders(IRequestCookieCollection cookiesIn)
        {
            var cookie  = new CheckoutCookie(cookiesIn);
            var service = new CheckoutCookieService(cookie.GetValue());

            return(SelectQuery(_context.Orders.OrderByDescending(x => x.DateOrderedUtc)
                               .Where(x => x.CustomerName == service.UserId)).ToList());
        }
コード例 #4
0
        public IActionResult ChooseCustomer(Guid customerKey)
        {
            var cookie  = new CheckoutCookie(HttpContext.Request.Cookies, HttpContext.Response.Cookies);
            var service = new CheckoutCookieService(cookie.GetValue());

            service.AddCustomer(customerKey);
            cookie.AddOrUpdateCookie(service.EncodeForCookie());
            return(RedirectToAction("Index", "Items"));
        }
コード例 #5
0
        public IActionResult AddToCart(OrderLineItem itemToBuy)
        {
            var cookie  = new CheckoutCookie(HttpContext.Request.Cookies, HttpContext.Response.Cookies);
            var service = new CheckoutCookieService(cookie.GetValue());

            service.AddLineItem(itemToBuy);
            cookie.AddOrUpdateCookie(service.EncodeForCookie());
            return(RedirectToAction("Index"));
        }
コード例 #6
0
        public RedirectToActionResult ChooseItems(OrderLineItemDto modifiedDto)
        {
            var listService = new ListItemServices(_context);
            var cookie      = new CheckoutCookie(HttpContext.Request.Cookies, HttpContext.Response.Cookies);
            var service     = new CheckoutCookieService(cookie.GetValue());

            service.AddLineItem(modifiedDto.RetriveOrderLineItemDto());
            cookie.AddOrUpdateCookie(service.EncodeForCookie());
            return(RedirectToAction("Index"));
        }
コード例 #7
0
        public IActionResult DeleteLineItem(int lineNum)
        {
            var cookie  = new CheckoutCookie(HttpContext.Request.Cookies, HttpContext.Response.Cookies);
            var service = new CheckoutCookieService(cookie.GetValue());

            service.DeleteLineItem(lineNum);
            cookie.AddOrUpdateCookie(service.EncodeForCookie());
            SetupTraceInfo();
            return(RedirectToAction("Index"));
        }
コード例 #8
0
        public IActionResult Buy(OrderItem itemToBuy)
        {
            var cookie  = new CheckoutCookie(HttpContext.Request.Cookies, HttpContext.Response.Cookies); //create a new cookie
            var service = new CheckoutCookieService(cookie.GetValue());                                  //create a new List of OrderLineItem and add the items in the existing cookie to it

            service.AddLineItem(itemToBuy);                                                              //add itemto Buy to the List of OrderLineitems
            cookie.AddOrUpdateCookie(service.EncodeForCookie());                                         //update cookie

            return(RedirectToAction("Index"));
        }
コード例 #9
0
        public PlaceOrderServiceWithVal(
            IRequestCookieCollection cookiesIn,
            IResponseCookies cookiesOut,
            DataContext dataContext)
        {
            IPlaceOrderDbAccess dbAccess         = new PlaceOrderDbAccess(dataContext);
            IPlaceOrderAction   placeOrderAction = new PlaceOrderAction(dbAccess);

            runner         = new RunnerWriteDbWithValidation <PlaceOrderInDto, Order>(placeOrderAction, dataContext);
            checkoutCookie = new CheckoutCookie(cookiesIn, cookiesOut);
        }
コード例 #10
0
        public IActionResult Buy(OrderLineItem itemToBuy)
        {
            var cookie  = new CheckoutCookie(HttpContext.Request.Cookies, HttpContext.Response.Cookies);
            var service = new CheckoutCookieService(cookie.GetValue());

            service.AddLineItem(itemToBuy);
            cookie.AddOrUpdateCookie(service.EncodeForCookie());

            SetupTraceInfo();
            return(RedirectToAction(nameof(Index)));
        }
コード例 #11
0
 public PlaceOrderServiceWithVal(
     IRequestCookieCollection cookiesIn,
     IResponseCookies cookiesOut,
     EfCoreContext context)
 {
     _checkoutCookie = new CheckoutCookie(
         cookiesIn, cookiesOut);
     _runner = new RunnerWriteDbWithValidation <PlaceOrderInDto, Order>(
         new PlaceOrderAction(
             new PlaceOrderDbAccess(context)),
         context);
 }
コード例 #12
0
        public PlaceOrderServiceTransact(
            IRequestCookieCollection cookiesIn,
            IResponseCookies cookiesOut,
            DataContext dataContext)
        {
            IPlaceOrderDbAccess dbAccess        = new PlaceOrderDbAccess(dataContext);
            PlaceOrderPart1     placeOrderPart1 = new PlaceOrderPart1(dbAccess);
            PlaceOrderPart2     placeOrderPart2 = new PlaceOrderPart2(dbAccess);

            runner         = new RunnerTransact2WriteDb <PlaceOrderInDto, Part1ToPart2Dto, Order>(dataContext, placeOrderPart1, placeOrderPart2);
            checkoutCookie = new CheckoutCookie(cookiesIn, cookiesOut);
        }
コード例 #13
0
        Errors => _runner.Errors;                           //#C

        public PlaceOrderService(                           //#D
            IRequestCookieCollection cookiesIn,             //#D
            IResponseCookies cookiesOut,                    //#D
            EfCoreContext context)                          //#D
        {
            _checkoutCookie = new CheckoutCookie(           //#E
                cookiesIn, cookiesOut);                     //#E
            _runner =
                new RunnerWriteDb <PlaceOrderInDto, Order>( //#F
                    new PlaceOrderAction(                   //#F
                        new PlaceOrderDbAccess(context)),   //#F
                    context);                               //#F
        }
コード例 #14
0
 public PlaceOrderServiceTransact(
     IRequestCookieCollection cookiesIn,
     IResponseCookies cookiesOut,
     EfCoreContext context)
 {
     _checkoutCookie = new CheckoutCookie(
         cookiesIn, cookiesOut);
     _runner = new RunnerTransact2WriteDb                 //#B
               <PlaceOrderInDto, Part1ToPart2Dto, Order>( //#C
         context,                                         //#D
         new PlaceOrderPart1(                             //#E
             new PlaceOrderDbAccess(context)),            //#E
         new PlaceOrderPart2(                             //#F
             new PlaceOrderDbAccess(context)));           //#F
 }