//[OutputCache(Duration = 600, VaryByParam = "id")]
        public ActionResult City(string id, ShoppingCart cart, BrowseHistory bh)
        {
            ViewBag.bagitems = GetCartItems(cart);
            ViewBag.delivery = bh.IsDelivery;
            string    ct = string.IsNullOrEmpty(id) ? string.Empty : DecodeString(id);
            CityModel cm = new CityModel();

            cm.CityName = ct;
            cm.YelpTops = new List <TopYelpModel>();
            if ((HttpContext.Cache["CityTops_" + id] != null))
            {
                cm.YelpTops = (List <TopYelpModel>)HttpContext.Cache["CityTops_" + id];
            }
            else
            {
                List <BizInfo>  lbi = BizInfoRepository.GetBizInfoByCity(ct, true);
                YelpReviewModel yrm = new YelpReviewModel();
                foreach (var b in lbi)
                {
                    yrm = YelpBizDetails.GetYelpBiz(b);
                    if (string.IsNullOrEmpty(b.YelpBizId) == false)
                    {
                        cm.YelpTops.Add(new TopYelpModel()
                        {
                            Biz = b, Yelp = yrm
                        });
                    }
                }
                cm.YelpTops = cm.YelpTops.OrderByDescending(e => e.Yelp.Biz.rating).Take(3).ToList();
                HttpContext.Cache.Insert("CityTops_" + id, cm.YelpTops);
            }
            //cm.BizInfos = BizInfoRepository.GetTopnTopRatedBizInfosInCity(3, ct, true);
            cm.NewBiz = BizInfoRepository.GetLastnNewBizInfosByCity(4, ct, true);
            StringBuilder sb = new StringBuilder();

            sb.Append("[");
            foreach (var b in cm.YelpTops)
            {
                sb.Append("[");
                sb.Append("'" + b.Biz.BizTitle + "',");
                sb.Append("'" + b.Biz.Address.AddressLine + "',");
                sb.Append("'" + b.Biz.Address.City + "',");
                sb.Append("'" + b.Biz.Address.State + "',");
                sb.Append("'" + b.Biz.Address.ZipCode + "',");
                sb.Append("'" + b.Biz.Latitude + "',");
                sb.Append("'" + b.Biz.Longitude + "',");
                sb.Append("'" + b.Biz.BizInfoId + "',");
                sb.Append("'" + b.Biz.ImageUrl + "'],");
            }
            if (cm.YelpTops.Count > 0)
            {
                sb.Remove(sb.Length - 1, 1);
            }
            sb.Append("]");
            cm.MapMarkers     = sb.ToString();
            cm.BizInfo        = BizInfoRepository.GetBizInfoByCity(ct, true).FirstOrDefault();
            cm.ShowCuisines   = AllCuisinesView.ShowCuisinesView_Bootatrap(BizCuisineRepository.GetBizCuisinesByCity(true, ct), ct, null);
            cm.ShowZipcodes   = AllZopCodesView.ShowZipCodesView_Bootstarp(BizInfoRepository.GetBizInfoByCity(ct, true), ct, null);
            cm.CuisinesInCity = BizInfoRepository.GetCuisinesInCity(ct);
            cm.ZipsInCity     = BizInfoRepository.GetZipsInCity(ct);
            return(View(cm));
        }
Example #2
0
        public ActionResult Index(string city, string zip, ShoppingCart cart, BrowseHistory bh)
        {
            if (string.IsNullOrEmpty(city) && string.IsNullOrEmpty(zip))
            {
                return(RedirectToAction("Index", "AllCities"));
            }

            ViewBag.delivery = bh.IsDelivery;
            BizInfoModel bim = new BizInfoModel();
            string       ct  = string.IsNullOrEmpty(city)?string.Empty : DecodeString(city);

            bim.CityName = ct;
            bim.ZipCode  = zip;
            bim.BizInfos = BizInfoRepository.GetBizInfoByZip(zip, true);
            bim.YelpTops = new List <TopYelpModel>();
            if ((HttpContext.Cache["CityZip" + ct + zip] != null))
            {
                bim.YelpTops = (List <TopYelpModel>)HttpContext.Cache["CityZip" + ct + zip];
            }
            else
            {
                YelpReviewModel yrm = new YelpReviewModel();
                foreach (var b in bim.BizInfos)
                {
                    yrm = YelpBizDetails.GetYelpBiz(b);
                    if (string.IsNullOrEmpty(b.YelpBizId) == false)
                    {
                        bim.YelpTops.Add(new TopYelpModel()
                        {
                            Biz = b, Yelp = yrm
                        });
                    }
                }
                bim.YelpTops = bim.YelpTops.OrderByDescending(e => e.Yelp.Biz.rating).Take(3).ToList();
                HttpContext.Cache.Insert("CityZip" + ct + zip, bim.YelpTops);
            }
            // bim.TopRatedBizInfos = BizInfoRepository.GetTopnTopRatedBizInfosInzip(3, zip, true);
            bim.BizInfo      = bim.BizInfos.FirstOrDefault();
            bim.NewBiz       = BizInfoRepository.GetLastnNewBizInfosByZip(4, zip, true);
            bim.ShowCuisines = AllCuisinesView.ShowCuisinesView_Bootatrap(BizCuisineRepository.GetBizCuisinesByZip(true, zip), ct, zip);
            StringBuilder sb = new StringBuilder();

            sb.Append("[");
            foreach (var b in bim.YelpTops)
            {
                sb.Append("[");
                sb.Append("'" + b.Biz.BizTitle + "',");
                sb.Append("'" + b.Biz.Address.AddressLine + "',");
                sb.Append("'" + b.Biz.Address.City + "',");
                sb.Append("'" + b.Biz.Address.State + "',");
                sb.Append("'" + b.Biz.Address.ZipCode + "',");
                sb.Append("'" + b.Biz.Latitude + "',");
                sb.Append("'" + b.Biz.Longitude + "',");
                sb.Append("'" + b.Biz.BizInfoId + "',");
                sb.Append("'" + b.Biz.ImageUrl + "'],");
            }
            if (bim.YelpTops.Count > 0)
            {
                sb.Remove(sb.Length - 1, 1);
            }
            sb.Append("]");
            bim.MapMarkers    = sb.ToString();
            bim.CuisinesInZip = BizInfoRepository.GetCuisinesInZip(zip);
            ViewBag.bagitems  = GetCartItems(cart);
            return(View(bim));
        }
        public ActionResult FilterUpdate(string schedule, string time, string cuisine, string min, string dist, string rating, string freeDelivery, string breakfast, string lunchSpecial, string coupons, string freeItems, BrowseHistory bh)
        {
            string timeout = "timein";

            if (bh.FilterSet == null)
            {
                timeout = "timeout";
                return(Json(new
                {
                    timeexp = timeout
                }));
            }
            List <BizInfo> openset   = new List <BizInfo>();
            List <BizInfo> closeset  = new List <BizInfo>();
            List <BizInfo> hiddenset = new List <BizInfo>();

            int[]           filterOn    = { };
            int[]           filterOff   = { };
            int[]           filterOpen  = { };
            string[]        localOn     = { };
            string[]        localOff    = { };
            string[]        localOpen   = { };
            List <int>      ltOn        = new List <int>();
            List <int>      ltOpen      = new List <int>();
            List <int>      ltOff       = new List <int>();
            List <string>   ltLocalOn   = new List <string>();
            List <string>   ltLocalOpen = new List <string>();
            List <string>   ltLocalOff  = new List <string>();
            int             closeCount  = 0;
            YelpReviewModel yrm         = new YelpReviewModel();

            foreach (var p in bh.FilterSet)
            {
                string tm = SearchFilter.ConvertLocalToMyTime(p.BizHour.BizTimeZoneName).ToString();
                yrm = YelpBizDetails.GetYelpBiz(p);
                bool yrating = string.IsNullOrEmpty(rating)?true: int.Parse(rating) <= 0 ? true : yrm.Biz == null?p.AverageRating >= decimal.Parse(rating):yrm.Biz.rating >= double.Parse(rating);
                if (SearchFilter.ItemFilter(p, schedule, time, cuisine, min, dist, yrating, freeDelivery, breakfast, lunchSpecial, coupons, freeItems, bh))
                {
                    ltOn.Add(p.BizInfoId);
                    ltLocalOn.Add(tm);
                    if (p.IsOpenNow)
                    {
                        openset.Add(p);
                        ltOpen.Add(p.BizInfoId);
                        ltLocalOpen.Add(tm);
                    }
                    else
                    {
                        closeset.Add(p);
                        closeCount++;
                    }
                }
                else
                {
                    hiddenset.Add(p);
                    ltOff.Add(p.BizInfoId);
                    ltLocalOff.Add(tm);
                }
            }
            bh.FilterOpenSet   = openset;
            bh.FilterCloseSet  = closeset;
            bh.FilterHiddenSet = hiddenset;
            filterOn           = ltOn.ToArray();
            filterOpen         = ltOpen.ToArray();
            filterOff          = ltOff.ToArray();
            localOn            = ltLocalOn.ToArray();
            localOff           = ltLocalOff.ToArray();
            localOpen          = ltLocalOpen.ToArray();
            return(Json(new
            {
                timeexp = timeout,
                featherOn = filterOn,
                featherOnCount = filterOn.Count().ToString(),
                featherCloseCount = closeCount,
                featherOpen = filterOpen,
                featherOpenCount = filterOpen.Count().ToString(),
                featherOff = filterOff,
                featherOffCount = filterOff.Count().ToString(),
                localOn = localOn,
                localOff = localOff,
                localOpen = localOpen
            }));

            // return Json(new { sch = schedule, dlvtime = time, mini = min, distc = dist, rate = rating, re1 = freeDelivery, re2 = breakfast, re3 = lunchSpecial, re4 = coupons, re5 = freeItems });
        }