예제 #1
0
        public ActionResult Print(int id)
        {
            var scheme       = SchemeService.Find(id);
            var schemeItems  = SchemeItemService.GetALL().Where(x => x.SchemeID == id);
            var mediaIds     = schemeItems.Select(x => x.MediaID).ToList();
            var list         = new List <LinkItem>();
            var currentPrice = schemeItems.Sum(x => x.Price);

            if (mediaIds.Any())
            {
                using (MiniProfiler.Current.Step("LuceneSearch"))
                {
                    list = OutDoorLuceneService.Search(mediaIds);
                }
            }
            var model = new SchemePrintViewModel()
            {
                ID          = scheme.ID,
                Medias      = list,
                AddTime     = scheme.AddTime,
                Description = scheme.Description,
                Name        = scheme.Name
            };

            ViewBag.currentPrice = currentPrice.ToString("F2");
            //return View(scheme);
            return(View(model));
        }
예제 #2
0
        public ActionResult GenerateScheme(GenerateSchemeViewModel model)
        {
            var totalCount   = 0;
            var list         = OutDoorLuceneService.Search(model, out totalCount);
            var maxPrice     = model.price;
            var currentPrice = 0m;
            var day          = model.day;
            var result       = new List <LinkItem>();

            foreach (var item in list)
            {
                currentPrice += ((item.Price / 365) * day);
                int privceValue = Convert.ToInt32(currentPrice);
                if (privceValue > maxPrice)
                {
                    currentPrice -= ((item.Price / 365) * day);
                    break;
                }
                else
                {
                    result.Add(item);
                }
            }
            ViewBag.currentPrice = currentPrice.ToString("F2");
            ViewBag.Dq           = Convert.ToDateTime(model.dq).ToString("yyyy-MM-dd")
                                   + " 至 " + Convert.ToDateTime(model.dq).AddDays(model.day).ToString("yyyy-MM-dd");
            //return Json(result, JsonRequestBehavior.AllowGet);
            return(View(result));
        }
예제 #3
0
        public ActionResult Download(int periodNumber, int periodCate, string mediaIds, string dq)
        {
            var idList       = Utilities.GetIdList(mediaIds);
            var list         = new List <LinkItem>();
            var currentPrice = 0m;

            if (idList.Any())
            {
                list = OutDoorLuceneService.Search(idList);
                var scheme = new Scheme()
                {
                    AddTime     = DateTime.Now,
                    Description = ConfigSetting.SiteName + "方案生成",
                    Name        = ConfigSetting.SiteName + "方案生成",
                    ID          = 0
                };
                var model = new SchemePrintViewModel()
                {
                    ID          = scheme.ID,
                    Medias      = list,
                    AddTime     = scheme.AddTime,
                    Description = scheme.Description,
                    Name        = scheme.Name
                };
                var day = periodNumber * periodCate;
                foreach (var item in list)
                {
                    currentPrice += ((item.Price / 365) * day);
                }
                model.TotalPrice = currentPrice.ToString("F2");

                model.DqDesc = Convert.ToDateTime(dq).ToString("yyyy-MM-dd")
                               + " 至 " + Convert.ToDateTime(dq).AddDays(day).ToString("yyyy-MM-dd");
                var html = Utilities.RenderPartialToString(this.ControllerContext,
                                                           "download",
                                                           new ViewDataDictionary(model),
                                                           new TempDataDictionary());
                byte[] data = System.Text.Encoding.UTF8.GetBytes(html);
                return(File(data, "text/html", Guid.NewGuid() + ".html"));
            }
            else
            {
                return(RedirectToAction("index"));
            }
        }
예제 #4
0
        private QuerySource GetResult(QueryTerm queryTerm)
        {
            const int PageSize = 15;
            var       model    = new QuerySource();
            var       query    = new List <LinkItem>();
            int       totalHits;
            Dictionary <string, string> cacheDic = CreateSearchDic("ResultList", queryTerm);
            Dictionary <string, string> countDic = CreateSearchDic("ResultCount", queryTerm);

            if (string.IsNullOrWhiteSpace(queryTerm.Dq))
            {
                if (string.IsNullOrWhiteSpace(queryTerm.Query) &&
                    CacheService.Exists(cacheDic) &&
                    CacheService.Exists(countDic))
                {
                    query     = CacheService.Get <List <LinkItem> >(cacheDic);
                    totalHits = CacheService.GetInt32Value(countDic);
                }
                else
                {
                    var searchFilter = GetSearchFilter(queryTerm.Query, queryTerm.Order, queryTerm.Descending, queryTerm.Page, PageSize);
                    query = OutDoorLuceneService.Search(queryTerm, searchFilter, out totalHits);
                    //query = OutDoorLuceneService.Search(out totalHits);

                    if (string.IsNullOrWhiteSpace(queryTerm.Query))
                    {
                        CacheService.Add <List <LinkItem> >(query, cacheDic, 10);
                        CacheService.AddInt32Value(totalHits, countDic, 10);
                    }
                }
            }
            else
            {
                var searchFilter = GetSearchFilter(queryTerm.Query, queryTerm.Order, queryTerm.Descending, queryTerm.Page, PageSize);
                query = OutDoorLuceneService.Search(queryTerm, searchFilter, out totalHits);
            }
            model.Items       = query;
            model.TotalCount  = totalHits;
            model.CurrentPage = queryTerm.Page;
            model.PageSize    = PageSize;
            model.Querywords  = string.IsNullOrEmpty(queryTerm.Query) ? "" : queryTerm.Query;
            return(model);
        }
예제 #5
0
        public ActionResult show(int ID)
        {
            var outdoor = OutDoorLuceneService.Search(ID);

            if (outdoor.Status < (int)OutDoorStatus.ShowOnline)
            {
                return(HttpNotFound());
            }
            var company = CompanyService.Find(outdoor.MemberID);

            if (company == null || outdoor == null)
            {
                return(HttpNotFound());
            }
            CompanyIndexViewModel model = new CompanyIndexViewModel();

            model.BannerImg = company.BannerImg;
            model.LogoImg   = company.LogoImg;
            model.ID        = company.MemberID;
            model.Name      = company.Name;
            var cityIds  = Utilities.GetIdList(company.CityCodeValue);
            var cityName = string.Join(" - ",
                                       CityCateService.GetALL()
                                       .Where(x => cityIds.Contains(x.ID))
                                       .ToList().Select(x => x.CateName));

            model.CityName    = cityName;
            model.Description = company.Description;
            model.LinkMan     = company.LinkMan;
            model.Sex         = company.Sex;
            model.Lat         = company.Lat;
            model.Lng         = company.Lng;
            model.Mobile      = company.Mobile;
            model.Phone       = company.Phone;
            model.QQ          = company.QQ;
            model.Address     = company.Address;
            model.Categories  = GetCompanyCategorise(outdoor.MemberID);
            model.Links       = outdoor;
            return(View(model));
        }
예제 #6
0
        public ActionResult Index(string id)
        {
            var reg = new Regex("(\\d+)(,(\\d+)){0,4}");

            if (!reg.IsMatch(id))
            {
                return(Content("<script>alert('您输入的地址有误!');window.histroy.go(-1);</script>"));
            }
            var IdArr = Utilities.GetIdList(id).Distinct();
            var model = OutDoorLuceneService.Search(IdArr);

            return(View(model));
        }
예제 #7
0
        public ActionResult GetSearchArea(float minX, float minY, float maxX, float maxY, int page = 1, int category = 0, int price = 0)
        {
            var model = new QuerySource();

            var result = new List <LinkItem>();

            QueryTerm query = new QueryTerm();

            query.MinX = minX;
            query.MinY = minY;
            query.MaxX = maxX;
            query.MaxY = maxY;
            if (category != 0)
            {
                query.MediaCode    = category;
                query.MediaMaxCode = Utilities.GetMaxCode(category);
            }
            if (price != 0)
            {
                query.Price = price;
            }


            var pageSize = 10;

            int totalHits = 0;

            SearchFilter sf = new SearchFilter();

            sf.PageSize = pageSize;

            sf.Skip = (page - 1) * pageSize;

            sf.Take = pageSize;

            sf.SortProperty = SortProperty.Published;

            sf.SortDirection = SortDirection.Descending;

            result = OutDoorLuceneService.Search(query, sf, out totalHits);

            model.Items = result;

            model.TotalCount = totalHits;

            model.CurrentPage = page;

            model.PageSize = pageSize;

            return(Json(model, JsonRequestBehavior.AllowGet));
        }