Beispiel #1
0
        /// <summary>
        /// Locations the info.
        /// </summary>
        /// <returns></returns>
        public LocationInfoDto GetLocationInfo()
        {
            string sinaResult;

            using (var w = new WebClient())
            {
                sinaResult = w.DownloadString("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=xml");
            }
            ArrayList sinaInfo = new ArrayList(sinaResult.Split('\t'));

            if (sinaInfo != null && sinaInfo.Count > 7)
            {
                LocationInfoDto location = new LocationInfoDto();
                location.startIP  = sinaInfo[1].ToString();
                location.endIP    = sinaInfo[2].ToString();
                location.Country  = sinaInfo[3].ToString();
                location.Province = sinaInfo[4].ToString();
                location.City     = sinaInfo[5].ToString();
                location.ISP      = sinaInfo[7].ToString();
                return(location);
            }
            else
            {
                return(GetLocationInfo());
            }
        }
Beispiel #2
0
        /// <summary>
        /// Gets the city info by sina.
        /// 从新浪IP得到,我们数据库里面的一个城市信息
        /// </summary>
        /// <param name="li">The li.</param>
        /// <returns></returns>
        public iPow.Domain.Dto.Sys_CityInfoDto GetCityInfoBySina(LocationInfoDto li)
        {
            //edit by yjihrp 2011.8.16.13.2
            //modify:li.city == null ?"shenzhen":li.city
            var ci = cityInfoRepository.GetList().
                     Where(e => e.city == (string.IsNullOrEmpty(li.City) ? "shenzhen" : li.City) && e.province == li.Province)
                     .FirstOrDefault();

            return(ci.ToDto());
        }
Beispiel #3
0
        /// <summary>
        /// Inits the city info.
        /// 根据名字中文名字找到当前传入省的所有城市
        /// 如果省为空则按市选
        /// 如果市为空则按省选
        /// 两个为空则按当前IP地址选
        /// edit by yjihrp 2011.8.2.17.18
        /// </summary>
        /// <param name="province">The province.</param>
        /// <param name="city">The city.</param>
        public List <iPow.Domain.Dto.Sys_CityInfoDto> GetCityInfoByName(LocationInfoDto li, string province, string city)
        {
            IQueryable <iPow.Infrastructure.Data.DataSys.Sys_CityInfo> ci = null;

            //根据IP中的城市选出这个省的 其他城市哈在数据库中选哦
            if (string.IsNullOrEmpty(province) && string.IsNullOrEmpty(city))
            {
                ci = (from d in cityInfoRepository.GetList()
                      where d.province == li.Province && d.city != li.City
                      select d).AsQueryable();
            }
            //根据市选
            else if (string.IsNullOrEmpty(province) && !string.IsNullOrEmpty(city))
            {
                List <iPow.Infrastructure.Data.DataSys.Sys_CityInfo> c = (from e in cityInfoRepository.GetList()
                                                                          where e.city == city
                                                                          select e).Distinct().ToList();
                if (c != null)
                {
                    if (c.Count > 0)
                    {
                        ci = (from d in cityInfoRepository.GetList()
                              where d.city == c[0].city && c[0].province == d.province
                              select d).AsQueryable();
                    }
                }
                else
                {
                    ci = (from d in cityInfoRepository.GetList()
                          where d.city == city
                          select d).AsQueryable();
                }
            }
            //根据省选
            else if (!string.IsNullOrEmpty(province) && string.IsNullOrEmpty(city))
            {
                ci = (from d in cityInfoRepository.GetList()
                      where d.province == province
                      select d).AsQueryable();
            }
            //根据省市选
            else
            {
                ci = (from d in cityInfoRepository.GetList()
                      where d.province == province && d.city != city
                      select d).AsQueryable();
            }
            return(ci.ToDto().ToList());
        }
Beispiel #4
0
        /// <summary>
        /// Gets the sina info.
        /// Inits the localtion.得到当前访问人的地址
        /// </summary>
        /// <returns></returns>
        public LocationInfoDto GetSinaInfo()
        {
            //edit by yjihrp 2011.8.16.9.6
            string          ipAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
            LocationInfoDto li        = null;

            li = locationService.GetLocationInfo(ipAddress);
            //end edit by yjihrp 2011.8.16.9.6
            //LocationInfo li = LocationFucntion.LocationInfo();
            if (li == null || string.IsNullOrEmpty(li.City) || string.IsNullOrEmpty(li.Province))
            {
                li = locationService.GetLocationInfo("58.61.36.80");
            }
            return(li);
        }
Beispiel #5
0
 /// <summary>
 /// Locations the info.
 /// </summary>
 /// <param name="ipAddress">The ip.</param>
 /// <returns></returns>
 public LocationInfoDto GetLocationInfo(string ipAddress)
 {
     if (ipAddress.CompareTo("::1") == 0 || ipAddress.CompareTo("127.0.0.1") == 0)
     {
         return(GetLocationInfo());
     }
     else
     {
         string sinaResult;
         using (var w = new WebClient())
         {
             sinaResult = w.DownloadString("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=xml&ip=" + ipAddress);
         }
         ArrayList sinaInfo = new ArrayList(sinaResult.Split('\t'));
         if (sinaInfo.Count > 1)
         {
             if (Convert.ToInt16(sinaInfo[0]) < 1)
             {
                 return(GetLocationInfo());
             }
             else
             {
                 if (sinaInfo.Count > 7)
                 {
                     LocationInfoDto location = new LocationInfoDto();
                     location.startIP  = sinaInfo[1].ToString();
                     location.endIP    = sinaInfo[2].ToString();
                     location.Country  = sinaInfo[3].ToString();
                     location.Province = sinaInfo[4].ToString();
                     location.City     = sinaInfo[5].ToString();
                     location.ISP      = sinaInfo[7].ToString();
                     return(location);
                 }
                 else
                 {
                     return(GetLocationInfo());
                 }
             }
         }
         else
         {
             return(GetLocationInfo());
             //return LocationInfo(ip);
         }
     }
 }
Beispiel #6
0
        /// <summary>
        /// Inits the sight info. 根据城市得到景区
        /// 并分页
        /// 中文的省和名哦
        /// 数据库里面存的中文的名字,不是拼音
        /// </summary>
        /// <param name="li">The li.</param>
        /// <param name="currentClassId">The current class id.</param>
        /// <param name="province">The province.</param>
        /// <param name="city">The city or province.</param>
        /// <param name="type">The type.</param>
        /// <param name="pi">Index of the page.</param>
        /// <param name="take">Size of the page.</param>
        /// <param name="total">The total.</param>
        /// <param name="sortCount">The sort count.</param>
        /// <param name="topList">The top list.</param>
        /// <returns></returns>
        public List <DefaultSightInfoDto> GetSightListByProvinceOrCity(
            LocationInfoDto li, ref int currentClassId, string province, string city,
            int?type, int?pi, int?take, ref int total, ref int sortCount,
            ref List <iPow.Application.jq.Dto.TopClassDto> topList)
        {
            var typeList = sightClassRepository.GetList().Distinct().Select(d => d.ClassID);
            int index    = (pi == null || pi < 0) ? 1 : (int)pi;
            int size     = (take == null || pi < 0) ? 10 : (int)take;

            List <DefaultSightInfoDto> sightList = new List <DefaultSightInfoDto>();
            IEnumerable <iPow.Infrastructure.Data.DataSys.Sys_SightInfo> temp = null;

            //根据传入城市
            if (string.IsNullOrEmpty(province) && !string.IsNullOrEmpty(city))
            {
                #region
                if (typeList != null && typeList.Contains((int)type))
                {
                    temp = (from d in sightInfoRepository.GetList()
                            where d.City == city && d.ClassID == type && d.IsDelete == 0
                            orderby d.ViCount descending
                            select d);
                    currentClassId = (int)type;
                }
                else
                {
                    temp = (from d in sightInfoRepository.GetList()
                            where d.City == city && d.IsDelete == 0
                            orderby d.ViCount descending
                            select d);
                    currentClassId = 0;
                }
                topList   = topClassService.GetTopClassBySight(temp);
                sightList = ToPageList(addSortService.SelectSightInfo(temp), index, size);
                sortCount = addSortService.AddSortSightInfoByCity(sightList, city, index, size);
                #endregion
                total = temp.Count();
            }
            //根据当前IP中的市选择
            else if (string.IsNullOrEmpty(province) && string.IsNullOrEmpty(city))
            {
                #region

                if (typeList != null && typeList.Contains((int)type))
                {
                    temp = (from d in sightInfoRepository.GetList()
                            where d.City == li.City && d.ClassID == type && d.IsDelete == 0
                            orderby d.ViCount descending
                            select d);
                    currentClassId = (int)type;
                }
                else
                {
                    temp = (from d in sightInfoRepository.GetList()
                            where d.City == li.City && d.IsDelete == 0
                            orderby d.ViCount descending
                            select d);
                    currentClassId = 0;
                }
                topList   = topClassService.GetTopClassBySight(temp);
                sightList = ToPageList(addSortService.SelectSightInfo(temp), index, size);
                sortCount = addSortService.AddSortSightInfoByCity(sightList, city, index, size);
                #endregion
                total = temp.Count();
            }
            //根据传入省
            else if (!string.IsNullOrEmpty(province) && string.IsNullOrEmpty(city))
            {
                #region

                if (typeList != null && typeList.Contains((int)type))
                {
                    temp = (from d in sightInfoRepository.GetList()
                            where d.Province == province && d.ClassID == type && d.IsDelete == 0
                            orderby d.ViCount descending
                            select d).ToList();
                    currentClassId = (int)type;
                }
                else
                {
                    temp = (from d in sightInfoRepository.GetList()
                            where d.Province == province && d.IsDelete == 0
                            orderby d.ViCount descending
                            select d).ToList();
                    currentClassId = 0;
                }
                topList   = topClassService.GetTopClassBySight(temp);
                sightList = ToPageList(addSortService.SelectSightInfo(temp), index, size);
                sortCount = addSortService.AddSortSightInfoByProvince(sightList, province, (int)pi, (int)take);
                #endregion
                total = temp.Count();
            }
            //根据传入省和市选
            else
            {
                #region

                if (typeList != null && typeList.Contains((int)type))
                {
                    temp = (from d in sightInfoRepository.GetList()
                            where d.City == city && d.Province == province && d.ClassID == type && d.IsDelete == 0
                            orderby d.ViCount descending
                            select d);
                    currentClassId = (int)type;
                }
                else
                {
                    temp = (from d in sightInfoRepository.GetList()
                            where d.City == city && d.Province == province && d.IsDelete == 0
                            orderby d.ViCount descending
                            select d);
                    currentClassId = 0;
                }
                topList   = topClassService.GetTopClassBySight(temp);
                sightList = ToPageList(addSortService.SelectSightInfo(temp), index, size);
                sortCount = addSortService.AddSortSightInfoByCity(sightList, city, (int)pi, (int)take);
                #endregion
                total = temp.Count();
            }
            //添加全局排序的景区
            int global = addSortService.AddSortSightInfoByGlobal(sightList, (int)pi, (int)take);
            sortCount += global;
            total     += global;
            return(sightList);
        }