Exemplo n.º 1
0
        public async Task <IActionResult> Index()
        {
            detailsCard = new OrderDetailsCard()
            {
                OrderHeader = new Models.OrderHeader()
            };
            detailsCard.OrderHeader.OrderTotal = 0;
            var claimsIdentity = (ClaimsIdentity)User.Identity;
            var claim          = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier);

            var cart = _db.ShoppingCart.Where(c => c.ApplicationUserId == claim.Value);

            if (cart != null)
            {
                detailsCard.listCart = cart.ToList();
            }

            foreach (var list in detailsCard.listCart)
            {
                list.Flower = await _db.Flower.FirstOrDefaultAsync(m => m.Id == list.FlowerId);

                detailsCard.OrderHeader.OrderTotal = detailsCard.OrderHeader.OrderTotal + (list.Flower.Price * list.Count);
            }
            detailsCard.OrderHeader.OrderTotalOriginal = detailsCard.OrderHeader.OrderTotal;

            if (HttpContext.Session.GetString(SD.ssCouponCode) != null)
            {
                detailsCard.OrderHeader.CouponCode = HttpContext.Session.GetString(SD.ssCouponCode);
                var couponFromDb = await _db.Coupon.Where(c => c.Name.ToLower() == detailsCard.OrderHeader.CouponCode.ToLower()).FirstOrDefaultAsync();

                detailsCard.OrderHeader.OrderTotal = SD.DiscountedPrice(couponFromDb, detailsCard.OrderHeader.OrderTotalOriginal);
            }
            return(View(detailsCard));
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Summary()
        {
            detailCard = new OrderDetailsCard()
            {
                OrderHeader = new OrderHeader()
            };

            detailCard.OrderHeader.OrderTotal = 0;

            var             claimIdentity   = (ClaimsIdentity)User.Identity;
            var             claim           = claimIdentity.FindFirst(ClaimTypes.NameIdentifier);
            ApplicationUser applicationUser =
                await _db.ApplicationUsers.Where(c => c.Id == claim.Value).FirstOrDefaultAsync();

            var card = _db.ShoppingCard.Where(c => c.ApplicationUserId == claim.Value);

            if (card != null)
            {
                detailCard.ListCard = card.ToList();
            }

            foreach (var list in detailCard.ListCard)
            {
                list.MenuItem = await _db.MenuItem.FirstOrDefaultAsync(m => m.Id == list.MenuItemId);

                detailCard.OrderHeader.OrderTotal =
                    detailCard.OrderHeader.OrderTotal + (list.MenuItem.Price * list.Count);
            }
            detailCard.OrderHeader.OrderTotalOriginal = detailCard.OrderHeader.OrderTotal;

            detailCard.OrderHeader.Pickupname  = applicationUser.Name;
            detailCard.OrderHeader.PhoneNumber = applicationUser.PhoneNumber;
            detailCard.OrderHeader.PickUpTime  = DateTime.Now;

            if (HttpContext.Session.GetString(SD.ssCouponCode) != null)
            {
                detailCard.OrderHeader.CouponCode = HttpContext.Session.GetString(SD.ssCouponCode);
                var couponFromDb = await _db.Coupon
                                   .Where(c => c.Name.ToLower() == detailCard.OrderHeader.CouponCode.ToLower()).FirstOrDefaultAsync();

                detailCard.OrderHeader.OrderTotal =
                    SD.DiscountedPrice(couponFromDb, detailCard.OrderHeader.OrderTotalOriginal);
            }
            return(View(detailCard));
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Index()
        {
            detailCard = new OrderDetailsCard()
            {
                OrderHeader = new OrderHeader()
            };

            detailCard.OrderHeader.OrderTotal = 0;

            var claimIdentity = (ClaimsIdentity)User.Identity;
            var claim         = claimIdentity.FindFirst(ClaimTypes.NameIdentifier);

            var card = _db.ShoppingCard.Where(c => c.ApplicationUserId == claim.Value);

            if (card != null)
            {
                detailCard.ListCard = card.ToList();
            }

            foreach (var list in detailCard.ListCard)
            {
                list.MenuItem = await _db.MenuItem.FirstOrDefaultAsync(m => m.Id == list.MenuItemId);

                detailCard.OrderHeader.OrderTotal =
                    detailCard.OrderHeader.OrderTotal + (list.MenuItem.Price * list.Count);
                list.MenuItem.Description = SD.ConvertToRawHtml(list.MenuItem.Description);
                if (list.MenuItem.Description.Length > 100)
                {
                    list.MenuItem.Description = list.MenuItem.Description.Substring(0, 99) + "...";
                }
            }
            detailCard.OrderHeader.OrderTotalOriginal = detailCard.OrderHeader.OrderTotal;

            if (HttpContext.Session.GetString(SD.ssCouponCode) != null)
            {
                detailCard.OrderHeader.CouponCode = HttpContext.Session.GetString(SD.ssCouponCode);
                var couponFromDb = await _db.Coupon
                                   .Where(c => c.Name.ToLower() == detailCard.OrderHeader.CouponCode.ToLower()).FirstOrDefaultAsync();

                detailCard.OrderHeader.OrderTotal =
                    SD.DiscountedPrice(couponFromDb, detailCard.OrderHeader.OrderTotalOriginal);
            }
            return(View(detailCard));
        }
Exemplo n.º 4
0
        public static async Task <string> CreateNewOrder(string accessToken, string tokenType, OrderDetailsCard detailsCard, string ip)
        {
            StringBuilder sb = new StringBuilder();

            foreach (var item in detailsCard.listCart)
            {
                sb.Append("{\"name\":");
                sb.Append("\"" + item.Flower.Name + "\",  ");
                sb.Append("\"unitPrice\":");
                sb.Append("\"" + item.Flower.Price * 100 + "\",  ");
                sb.Append("\"quantity\":");
                sb.Append("\"" + item.Count + "\"  },");
            }
            sb.Length--;
            string products = sb.ToString();

            var baseAddress = new Uri("https://secure.snd.payu.com/");

            using (var httpClient = new HttpClient {
                BaseAddress = baseAddress
            })
            {
                httpClient.DefaultRequestHeaders.TryAddWithoutValidation("authorization", tokenType + " " + accessToken);

                using (var content = new StringContent(
                           "{  \"notifyUrl\": \"https://kwiaciarniajaworski.azurewebsites.net/Customer/Order/Confirm/" + detailsCard.OrderHeader.Id + "\", " +
                           " \"customerIp\": \"" + ip + "\",  " +
                           "\"merchantPosId\": \"395609\",  " +
                           "\"description\": \"Florist shop\",  " +
                           "\"currencyCode\": \"PLN\",  " +
                           "\"totalAmount\": \"" + (detailsCard.OrderHeader.OrderTotal * 100).ToString() + "\",  " +
                           " \"continueUrl\": \"https://kwiaciarniajaworski.azurewebsites.net/Customer/Order/Confirm/" + detailsCard.OrderHeader.Id + "\",  " +
                           "\"buyer\": " +
                           "{" +
                           "\"email\": \"" + detailsCard.OrderHeader.ApplicationUser.Email + "\"," +
                           "\"phone\": \"" + detailsCard.OrderHeader.PhoneNumber + "\"," +
                           "\"firstName\": \"" + detailsCard.OrderHeader.ApplicationUser.FirstName + "\"," +
                           "\"lastName\": \"" + detailsCard.OrderHeader.ApplicationUser.LastName + "\"" +
                           "}," +
                           "\"products\": " +
                           "[" + products + "]}", System.Text.Encoding.Default, "application/json"))
                {
                    using (var response = await httpClient.PostAsync("api/v2_1/orders/", content))
                    {
                        string Url = response.RequestMessage.RequestUri.ToString();
                        return(Url);
                    }
                }
            }
        }