public async Task <JsonResult> Update_Shopping_Cart([FromBody] Cart_DTO obj)
        {
            if (obj != null)
            {
                var new_list = new List <CartItem>();
                foreach (var x in obj.ShopingCart)
                {
                    if (x.Product_Type == Constant.GAME)
                    {
                        var product = await _game_repo.Get_Details_By_SKU(x.SKU);

                        x.Product_TypeName = product.PlatformName;
                        x.Product_Name     = product.Name;
                        x.ImageUrl         = product.ImageUrl;
                        x.PageUrl          = product.PageUrl;
                    }

                    if (x.Product_Type == Constant.ACCESSORIES || x.Product_Type == Constant.CONSOLE)
                    {
                        var product = await _prod_repo.Get_Details_By_SKU(x.SKU);

                        x.Product_TypeName = product.ProductType;
                        x.Product_Name     = product.Name;
                        x.ImageUrl         = product.ImageUrl;
                        x.PageUrl          = product.PageUrl;
                    }

                    new_list.Add(x);
                }
                obj.ShopingCart = new_list;
                string tracking_id = string.Empty;
                if (string.IsNullOrEmpty(obj.Id))
                {
                    tracking_id = await _shop_repo.Add_New_Shopping_Cart_Tracking(obj);
                }
                else
                {
                    tracking_id = await _shop_repo.Shopping_Cart_Tracking_Update_By_Id(obj);
                }
                if (!string.IsNullOrEmpty(tracking_id))
                {
                    foreach (var item in new_list)
                    {
                        item.Tracking_Id = tracking_id;
                    }
                    var result = await _shop_repo.Add_New_Shopping_Cart_Items(new_list);
                }
                obj.Id = tracking_id;
            }
            return(Json(obj));
        }
Beispiel #2
0
        public async Task <PartialViewResult> Guest_Checkout_Step_Two(GuestViewModel model)
        {
            if (ModelState.IsValid)
            {
                var g_user = new Guest_User {
                    Cart_Id = model.CartId, Email = model.Email, OTP = model.OTP
                };
                var result = await _guest_repo.Check_Async(g_user);

                if (result)
                {
                    //await _guest_repo.Delete_Async(g_user);
                    string name = model.Email.Substring(0, model.Email.IndexOf("@"));
                    var    user = new User {
                        Email = model.Email, FirstName = name, EmailVerified = true, Password = model.OTP.ToString()
                    };
                    var user_result = await _userRepository.RegisterUserAsync(user);

                    var cart = await _shop_repo.Shopping_Cart_Tracking_Get_By_Id(model.CartId);

                    if (user_result.Success)
                    {
                        user = user_result.Data as User;
                        await SignInAsync(user);

                        cart.UserId = user.Id;
                        user_result = await _userRepository.GenerateEmailConfirmationTokenAsync(user.Id);

                        if (user_result.Success)
                        {
                            user = user_result.Data as User;
                            await _userRepository.Email_ConfirmationAsync(user.UserKey, user.SecurityCode);
                        }
                        await _shop_repo.Shopping_Cart_Tracking_Update_By_Id(cart);

                        return(PartialView("_Guest_Checkout_2", model));
                    }
                }
                else
                {
                    return(PartialView("Info", "Unable to verify your email."));
                }
            }
            return(PartialView("Info", "Something went wrong. Please try again."));
        }