public ActionResult Index(ShoppingCart cart, BrowseHistory bh) { HandleCart(cart); GroupCheckoutModel gcm = new GroupCheckoutModel(); SharedShoppingCart ssc = new SharedShoppingCart(); if (string.IsNullOrEmpty(cart.CartKey) == false) { ssc = GetGroupShoppingCart(cart.CartKey); } bool isBoss = (string.IsNullOrEmpty(cart.PersonName) == false && cart.PersonName == GroupCart.GroupCarts[cart.CartKey].PartyBossName); if (!isBoss || GroupCart.GroupCarts[cart.CartKey].PartyTotalItems == 0 || (GroupCart.GroupCarts[cart.CartKey].PartyOrderMinimum() > GroupCart.GroupCarts[cart.CartKey].PartySubTotal() && GroupCart.GroupCarts[cart.CartKey].IsPartyDelivery) || (GroupCart.GroupCarts[cart.CartKey].PartyCart[cart.BossName].IsBizDelivery == false && GroupCart.GroupCarts[cart.CartKey].IsPartyDelivery)) { return(Redirect("~/Group"));; } gcm.AddressLine = bh.Address; gcm.City = bh.City; gcm.State = string.IsNullOrEmpty(bh.State) ? "CA" : bh.State; gcm.ZipCode = bh.Zip; if (User.Identity.IsAuthenticated) { UserDetail ud = UserDetailRepository.GetUserDetailByUserId(CurrentUserID); if (ud != null) { gcm.FirstName = ud.FirstName; gcm.LastName = ud.LastName; gcm.AddressLine = string.IsNullOrEmpty(bh.Address)? ud.Address.AddressLine:bh.Address; gcm.City = string.IsNullOrEmpty(bh.City) ? ud.Address.City : bh.City; gcm.State = string.IsNullOrEmpty(bh.State) ? ud.Address.State : bh.State; gcm.ZipCode = string.IsNullOrEmpty(bh.Zip) ? ud.Address.ZipCode : bh.Zip; gcm.Phone = ud.ContactInfo.Phone; gcm.Email = ud.ContactInfo.Email; } } ssc.PartyScheduleDate = GroupCart.GroupCarts[cart.CartKey].PartyScheduleDate; ssc.PartyScheduleTime = GroupCart.GroupCarts[cart.CartKey].PartyScheduleTime; gcm.GroupCheckoutCart = ssc; return(View(gcm)); }
public ActionResult GroupCheckoutConfirmation(GroupCheckoutModel gcm, ShoppingCart cart) { HandleCart(cart); TempData["valid"] = ""; ViewBag.ValidateAddress = string.Empty; ViewBag.ScheduleOK = "OK"; ViewBag.Restaurant = string.Empty; ViewBag.LabelName = string.Empty; gcm.GroupCheckoutCart = GroupCart.GroupCarts[cart.CartKey]; List <BizInfo> lb = new List <BizInfo>(); if (ModelState.IsValid) { string mysAddress = gcm.AddressLine + ", " + gcm.City + ", " + gcm.State + " " + gcm.ZipCode; Dictionary <int, string> l = new Dictionary <int, string>(); foreach (var g in GroupCart.GroupCarts[cart.CartKey].PartyCart.Keys) { int i = GroupCart.GroupCarts[cart.CartKey].PartyCart[g].BizId; if (l.ContainsKey(i) == false) { l.Add(i, g); BizInfo biz = BizInfoRepository.GetBizInfoById(i); lb.Add(biz); } } foreach (var b in l.Keys) { BizInfo bi = BizInfoRepository.GetBizInfoById(b); if (SearchFilter.IsOpenAt(bi, cart.ScheduleDate == "Tomorrow" ? 2 : 1, cart.ScheduleTime) == false) { ViewBag.ScheduleOK = "NO"; ViewBag.Restaurant = bi.BizTitle; ViewBag.LabelName = l[b]; break; } string approxtime = string.Empty; if (string.IsNullOrEmpty(gcm.AddressLine) || string.IsNullOrEmpty(gcm.City) || string.IsNullOrEmpty(gcm.State) || string.IsNullOrEmpty(gcm.ZipCode)) { ViewBag.ValidateAddress = "Oops, feel like something wrong with you address. Please check it and try again."; break; } else { decimal st = SearchFilter.GetDistance(mysAddress, bi.BizAddressString, out approxtime); string nouse = approxtime; if (st < 0.0m) { ViewBag.ValidateAddress = "Oops, feel like something wrong with you address. Please check it and try again."; break; } else if (st > bi.DeliveryRadius && bi.Delivery) { ViewBag.ValidateAddress = "Sorry, your address is beyond the area the restaurant deliveries. Please try other restaurants. ( Order person: " + l[b] + " | Order restaurant: " + bi.BizTitle + " )"; break; } } } if (string.IsNullOrEmpty(ViewBag.ValidateAddress) && ViewBag.ScheduleOK == "OK") { base.CurrentCreditCard = new CreditCard(); base.CurrentCreditCard.CreditCardId = 0; // base.CurrentCreditCard.CreditCardID=any base.CurrentCreditCard.UserName = string.IsNullOrEmpty(UserName) ? gcm.BillFirstName + " " + gcm.BillLastName : UserName; base.CurrentCreditCard.CreditCardTypeId = int.Parse(gcm.CardType); base.CurrentCreditCard.FirstName = gcm.BillFirstName; base.CurrentCreditCard.LastName = gcm.BillLastName; /* * base.CurrentCreditCard.AddressLine = cm.BillAddressLine; * base.CurrentCreditCard.AddressLine2 = ""; * base.CurrentCreditCard.City = cm.BillCity; * * base.CurrentCreditCard.State = cm.BillState; * base.CurrentCreditCard.ZipCode = cm.BillZipCode; * base.CurrentCreditCard.Country = "US"; */ base.CurrentCreditCard.Phone = gcm.Phone; base.CurrentCreditCard.Email = gcm.Email; base.CurrentCreditCard.CreditCardNumber = gcm.CardNumber; base.CurrentCreditCard.ExpirationMonth = int.Parse(gcm.ExpirationMonth); base.CurrentCreditCard.ExpirationYear = int.Parse(gcm.ExpirationYear); base.CurrentCreditCard.SecurityCode = int.Parse(gcm.SecurityCode); base.CurrentCreditCard.AddedDate = DateTime.Now; base.CurrentCreditCard.AddedBy = string.IsNullOrEmpty(UserName) ? gcm.BillFirstName + " " + gcm.BillLastName : UserName;; base.CurrentCreditCard.UpdatedDate = DateTime.Now; base.CurrentCreditCard.UpdatedBy = string.IsNullOrEmpty(UserName) ? gcm.BillFirstName + " " + gcm.BillLastName : UserName;; base.CurrentCreditCard.Active = true; base.CurrentOrder = new Order(); base.CurrentOrder.FirstName = gcm.FirstName; base.CurrentOrder.LastName = gcm.LastName; base.CurrentOrder.RoomNumber = gcm.RoomNumber; base.CurrentOrder.Street = gcm.AddressLine; base.CurrentOrder.City = gcm.City; base.CurrentOrder.State = gcm.State; base.CurrentOrder.ZipCode = gcm.ZipCode; base.CurrentOrder.LogonName = UserName; base.CurrentOrder.IsLoggedUser = User.Identity.IsAuthenticated; base.CurrentOrder.CustomerMessage = gcm.Instructions; base.CurrentOrder.IsDelivery = gcm.GroupCheckoutCart.IsPartyDelivery; base.CurrentOrder.ServiceCharge = gcm.GroupCheckoutCart.PartyServiceCharge; base.CurrentOrder.DeliveryCharge = gcm.GroupCheckoutCart.PartyDeliveryFee(); base.CurrentOrder.DriverTip = gcm.GroupCheckoutCart.PartyDriverTip(); base.CurrentOrder.IpAddress = base.CurrentUserIP; base.CurrentOrder.Phone = gcm.Phone; base.CurrentOrder.Email = gcm.Email; base.CurrentOrder.ScheduleDate = gcm.GroupCheckoutCart.PartyScheduleDate; base.CurrentOrder.ScheduleTime = gcm.GroupCheckoutCart.PartyScheduleTime; base.CurrentOrder.CouponChoice = gcm.GroupCheckoutCart.PartyCouponChoice; base.CurrentOrder.OrderTax = gcm.GroupCheckoutCart.PartyTax(); base.CurrentOrder.SubTotal = gcm.GroupCheckoutCart.PartySubTotal(); base.CurrentOrder.OrderTotal = gcm.GroupCheckoutCart.PartyTotal(); base.CurrentOrder.BizInfoId = cart.BizId; } } else { ViewBag.ValidateAddress = "Oops, feel like something wrong with you address. Please check it and try again."; TempData["valid"] = "check input and try again."; } gcm.LBizForGoogleMap = lb; ViewBag.servicephone = ServicePhone; //ViewBag.maplink = GoogleMapLink(cm.BizInfo); return(PartialView(gcm)); }