Esempio n. 1
0
        public BasketsModule(BasketManager basketManager)
        {
            //var basketManager = new BasketManager(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\DOM\AzureTopicPOC\Abt.Result.WebApi\BasketSagaData.mdf;Integrated Security=True", "RootManageSharedAccessKey", "rj5Ga/C65/QltcYxBOIJrKdT26JgX91NnjixGW1hsyw=", "dominosbasket");

            Post["/create"] = _ =>
            {
                var data = this.Request.Body.ReadJson <DynamicDictionary>();
                basketManager.CreateOrder(data["Email"]);

                return(new Response()
                {
                    StatusCode = HttpStatusCode.Accepted
                });
            };

            Put["/add"] = args =>
            {
                var data = this.Request.Body.ReadJson <DynamicDictionary>();
                basketManager.CreateOrder(data["Email"]);
                return(new Response()
                {
                    StatusCode = HttpStatusCode.Accepted
                });
            };


            Delete["/complete"] = args =>
            {
                var data = this.Request.Body.ReadJson <DynamicDictionary>();
                basketManager.CompleteOrder(data["Email"]);
                return(new Response()
                {
                    StatusCode = HttpStatusCode.Accepted
                });
            };

            Get["/list"] = _ => Response.AsJson(basketManager.GetCurrentBaskets());
        }
        public async Task <ActionResult> Pay(Order orderDetails)
        {
            if (ModelState.IsValid)
            {
                var userId   = User.Identity.GetUserId();
                var newOrder = basketManager.CreateOrder(orderDetails, userId);
                var user     = await UserManager.FindByIdAsync(userId);

                TryUpdateModel(user.UsersData);
                await UserManager.UpdateAsync(user);

                basketManager.EmptyBucket();

                mailService.OrderConfirmaitonMessage(newOrder);

                return(RedirectToAction("OrderConfirmation"));
            }
            else
            {
                return(View(orderDetails));
            }
        }