Exemplo n.º 1
0
        public ActionResult SearchIp(string ipAddr)
        {
            try
            {
                SearchRecord binary_recorder;
                SearchRecord fibonacci_recorder;

                var ipRecords = _cacheManager.Get(IPRECORDS_ALL_KEY, () =>
                                                  IpRecordHelper.LoadIpRecordResult(_ipResultFilePath).ToList()
                                                  ).ToArray();

                IpRecordHelper.SearchIpRecord(ipAddr, ipRecords, out binary_recorder, out fibonacci_recorder);

                if (binary_recorder.Index == -1)
                {
                    return(Json(new
                    {
                        success = false,
                        message = string.Format("没有找到该ip: {0}", ipAddr)
                    }));
                }

                SearchResultModel model = new SearchResultModel();
                model.Binary_recorder    = binary_recorder;
                model.Fibonacci_recorder = fibonacci_recorder;
                // model.Summary = string.Format("第{0}个找到, ip 信息为\n{1}", binary_recorder.Index + 1, binary_recorder.IpRecord);
                model.Summary = string.Format("第{0}个找到, ip 信息为\n{1}", binary_recorder.IpRecord.Id, binary_recorder.IpRecord);

                return(Json(new
                {
                    success = true,
                    message = this.RenderPartialViewToString("SearchResult", model)
                }));
            }
            catch (FormatException)
            {
                return(Json(new
                {
                    success = false,
                    message = "请输入正确ip地址"
                }));
            }
            catch (Exception ex)
            {
                return(Json(new
                {
                    success = false,
                    message = ex.Message
                }));
            }
        }
Exemplo n.º 2
0
        public object Get([FromUri] IpInfo.Web.Models.Kendoui.DataSourceRequest command)
        {
            var ipRecords_All = _cacheManager.Get(IPRECORDS_ALL_KEY, () =>
                                                  IpRecordHelper.LoadIpRecordResult(_ipResultFilePath).ToList()
                                                  );

            var gridModel = new IpInfo.Web.Models.Kendoui.DataSourceResult
            {
                Data  = ipRecords_All.Skip((command.Page - 1) * command.PageSize).Take(command.PageSize),
                Total = ipRecords_All.Count
            };

            return(gridModel);
        }
Exemplo n.º 3
0
        public ActionResult Index(string sortOrder, string currentFilter, string searchString, int?page)
        {
            if (_cacheManager.IsSet(IPRECORDS_ALL_KEY))
            {
                ViewBag.LoadFromCache = true;
            }
            else
            {
                ViewBag.LoadFromCache = false;
            }

            Stopwatch sw = Stopwatch.StartNew();

            var ipRecords_All = _cacheManager.Get(IPRECORDS_ALL_KEY, () =>
                                                  IpRecordHelper.LoadIpRecordResult(_ipResultFilePath).ToList()
                                                  );

            sw.Stop();

            ViewBag.LoadTime = sw.Elapsed.TotalMilliseconds;

            var ipRecords = from ip in ipRecords_All
                            select ip;

            ViewBag.CurrentSort     = sortOrder;
            ViewBag.StartIpSortParm = String.IsNullOrEmpty(sortOrder) ? "StartIp_desc" : "";
            ViewBag.EndIpSortParm   = sortOrder == "EndIp" ? "EndIp_desc" : "EndIp";

            if (searchString != null)
            {
                page = 1;
            }
            else
            {
                searchString = currentFilter;
            }

            ViewBag.CurrentFilter = searchString;

            switch (sortOrder)
            {
            case "EndIp_desc":
                ipRecords = ipRecords.OrderByDescending(stu => stu.EndIpNumber);
                break;

            case "EndIp":
                ipRecords = ipRecords.OrderBy(stu => stu.EndIpNumber);
                break;

            case "StartIp_desc":
                ipRecords = ipRecords.OrderByDescending(stu => stu.StartIpNumber);
                break;

            default:
                ipRecords = ipRecords.OrderBy(stu => stu.StartIpNumber);
                break;
            }

            int pageNumber = (page ?? 1);

            return(View(ipRecords.ToPagedList(pageNumber, PAGE_SIZE)));
        }