コード例 #1
0
ファイル: IPQueryBiz.cs プロジェクト: Jackie2014/W1-IPS
        public int CountTotalRows(string region, string userName, DateTime start, DateTime end, int status)
        {
            MonitorDataRepository mr = new MonitorDataRepository();
            int result = mr.GetRowCount(region, userName, start, end, status);

            return result;
        }
コード例 #2
0
ファイル: IPQueryBiz.cs プロジェクト: Jackie2014/W1-IPS
        public List<GroupByRegionModel> GroupByRegion(string region, DateTime start, DateTime end, int pageIndex = 0, int pageSize = 20)
        {
            List<GroupByRegionModel> result = new List<GroupByRegionModel>();
            if (region != null)
                region = region.Trim();

            MonitorDataRepository mr = new MonitorDataRepository();
            var dbResult = mr.GroupByRegion(region, start, end);

            if (dbResult != null && dbResult.Count > 0)
            {
                GroupByRegionModel tmp = new GroupByRegionModel();
                foreach (var item in dbResult)
                {
                    if (item.Region != tmp.Region)
                    {
                        tmp = new GroupByRegionModel();
                        tmp.Region = item.Region;
                        result.Add(tmp);
                    }

                    if (item.Status == 1)
                    {
                        tmp.StatusNormalCount = item.Count;
                    }
                    else if (item.Status == 2)
                    {
                        tmp.StatusUnknownCount = item.Count;
                    }
                    else if (item.Status == 3)
                    {
                        tmp.StatusExceptionCount = item.Count;
                    }
                }
            }

            result = result.OrderByDescending(r => r.Total).ToList();
            result = result.Skip(pageSize * pageIndex).Take(pageSize).ToList();
            return result;
        }
コード例 #3
0
ファイル: IPQueryBiz.cs プロジェクト: Jackie2014/W1-IPS
        public List<ClientIPModel> Query(string selectedRegion, string userName, DateTime start, DateTime end, int pageIndex = 1, int pageSize = 20, int status = -1)
        {
            List<ClientIPModel> result = new List<ClientIPModel>();
            MonitorDataRepository mr = new MonitorDataRepository();

            var dbResult = mr.GetMonitorDatas(selectedRegion, userName, start, end, pageIndex, pageSize, status);
            foreach (var t in dbResult)
            {
                ClientIPModel clientIP = new ClientIPModel
                {
                    ID = t.ID,
                    ClientIP = t.ClientPublicIP,
                    ClientPrivateIP = t.ClientPrivateIP,
                    ClientProvince = t.ClientProvince,
                    ClientCity = t.ClientCity,
                    ClientDistinct = t.ClientDistinct,
                    ClientAddress = t.ClientDetailAddr,
                    ClientRecordor = t.ClientRecordor,
                    ExpectedISP = t.ExpectedOperator,
                    ExpectedISPProvince = t.ExpectedOperatorProvince,
                    ExpectedISPCity = t.ExpectedOperatorCity,
                    RealISP = t.RealOperator,
                    RealISPProvince = t.RealOperatorProvince,
                    RealISPCity = t.RealOperatorCity,
                    CreatedDate = t.CreatedDate,
                    UserName = t.UserName,
                    Status = (IPMonitorStatus)t.Status
                };

                result.Add(clientIP);
            }
            return result;
        }
コード例 #4
0
        public MonitorDataResponse MoniterServerSubmitToCenterrServer([FromBody]MonitorDataRequest monitorData)
        {
            if (monitorData == null)
            {
                throw new BadRequestException();
            }

            // 查询客户端IP所属的运营商
            IPRepository ipRep = new IPRepository();
            var ipEntity = ipRep.RetriveIP(monitorData.ClientPublicIP);

            string realOperator = ipEntity == null ? null : ipEntity.IPBelongTo;

            string realOperatorProvince = null;
            string realOperatorCity = null;
            if (ipEntity != null)
            {
                realOperatorProvince = ipEntity.Province;
                realOperatorCity = ipEntity.City;
            }

            bool isSameProvice = false;

            if(String.IsNullOrWhiteSpace(realOperatorProvince) && String.IsNullOrWhiteSpace(monitorData.ExpectedOperatorProvice))
            {
                isSameProvice = true;
            }
            else if(monitorData.ExpectedOperatorProvice.Equals(realOperatorProvince))
            {
                isSameProvice = true;
            }

            var status = IPMonitorStatus.Pending;

            if (!String.IsNullOrEmpty(realOperator))
            {
                realOperator = realOperator.Trim();
            }

            if (String.IsNullOrEmpty(realOperator))
            {
                if (ipEntity != null)
                {
                    realOperator = ipEntity.IPBelongTo = ipEntity.Country;
                }
                status = IPMonitorStatus.Unknown;
            }
            else if (isSameProvice && isISPMatched(monitorData.ExpectedOperator,realOperator))
            {
                status = IPMonitorStatus.Normal;
            }
            else
            {
                status = IPMonitorStatus.Exception;
            }

            ClientIP clientIP = new ClientIP
            {
                ClientProvince = monitorData.ClientProvince,
                ClientCity = monitorData.ClientCity,
                ClientDistinct = monitorData.ClientDistinct,
                ClientDetailAddr = monitorData.ClientDetailAddress,
                ClientRecordor = monitorData.ClientRecordor,
                ClientPublicIP = monitorData.ClientPublicIP,
                ClientPrivateIP = monitorData.ClientPrivateIP,
                SubmitFromServerIP = Context.ClientIP,
                Status = (int)status,
                ExpectedOperatorProvince = monitorData.ExpectedOperatorProvice,
                ExpectedOperatorCity = monitorData.ExpectedOperatorCity,
                ExpectedOperator = monitorData.ExpectedOperator,
                RealOperator = realOperator,
                RealOperatorProvince = realOperatorProvince,
                RealOperatorCity = realOperatorCity,
                UserName = Context.LoginName
            };

            MonitorDataRepository mdr = new MonitorDataRepository();
            clientIP = mdr.Add(clientIP);

            MonitorDataResponse response = new MonitorDataResponse();
            response.UID = clientIP.ID;
            response.RealOperator = realOperator;
            response.RealOperatorProvince = realOperatorProvince;
            response.RealOperatorCity = realOperatorCity;

            return response;
        }