/// <summary> /// 定时任务,自动对比主机数据,每天2:00启动一次 /// </summary> public async Task <List <DVRCheckInfoDto> > GetDVRInfoCheck() { var configuration = BuildConfiguration(); var dvrurl = configuration.GetSection("DVRInfourl:url").Value; var dvrdata = await _dVRrepository.GetListAsync(); List <DVRCheckInfoDto> listdVRCheckInfo = new List <DVRCheckInfoDto>(); foreach (var item in dvrdata) { string url = $"{dvrurl}/api/DVRInfo/Get?IP={item.DVR_IP}&name={item.DVR_usre}&password={item.DVR_possword}"; var handler = new HttpClientHandler(); var response = _httpClient.GetAsync(url).Result; var dt = response.Content.ReadAsStringAsync().Result; var data = Newtonsoft.Json.JsonConvert.DeserializeObject <DVRInfoDto>(dt); DVRCheckInfo dVRCheckInfo = new DVRCheckInfo(); //硬盘检查 int dvrhard = (int)(item.Hard_drive * 0.91 / 1000); if (dvrhard == data.HardDrive) { dVRCheckInfo.DiskTotal = data.HardDrive; dVRCheckInfo.DiskChenk = true; } else { dVRCheckInfo.DiskTotal = 0; dVRCheckInfo.DiskChenk = false; } //在线及sn检查 if (item.DVR_SN != null) { dVRCheckInfo.DVR_SN = data.DVR_SN; dVRCheckInfo.DVR_ID = item.DVR_ID; dVRCheckInfo.DVR_Channel = data.ChannelTotal; dVRCheckInfo.DVR_Online = true; if (item.DVR_SN == data.DVR_SN) { dVRCheckInfo.SNChenk = true; } else { dVRCheckInfo.SNChenk = false; } } else { dVRCheckInfo.DVR_Online = false; } dVRCheckInfo.LastModificationTime = DateTime.Now; //时间检查验证 var servertime = DateTime.Now; DateTime dvrtime = Convert.ToDateTime(data.DVR_DateTine); if (servertime.Second + 5 >= dvrtime.Second && dvrtime.Second >= servertime.Second - 5) { dVRCheckInfo.DVRTime = data.DVR_DateTine; dVRCheckInfo.TimeInfoChenk = true; } else { dVRCheckInfo.TimeInfoChenk = false; dVRCheckInfo.DVRTime = data.DVR_DateTine; } var dvrcheckdata = _dVRCheckInforepository.GetListAsync().Result; int nuber = dvrcheckdata.Where(u => u.DVR_ID == item.DVR_ID).Count(); if (nuber == 0) { var DD = await _dVRCheckInforepository.InsertAsync(dVRCheckInfo); } else { var id = dvrcheckdata.Where(u => u.DVR_ID == item.DVR_ID).FirstOrDefault().Id; await _dVRCheckInforepository.DeleteAsync(id); var DD = await _dVRCheckInforepository.InsertAsync(dVRCheckInfo); } Console.WriteLine($"{item.DVR_ID}+{DateTime.Now}+写入成功"); } return(listdVRCheckInfo); }
/// <summary> /// 定时任务,自动对比主机数据,每天2:00启动一次 /// </summary> public async Task <List <DVRCheckInfoDto> > GetDVRInfoCheck() { var configuration = BuildConfiguration(); var dvrurl = configuration.GetSection("DVRInfourl:url").Value; var dvrdata = await _dVRrepository.GetListAsync();; List <DVRCheckInfoDto> listdVRCheckInfo = new List <DVRCheckInfoDto>(); foreach (var item in dvrdata) { string url = $"{dvrurl}/api/DVRInfo/Get?IP={item.DVR_IP}&name={item.DVR_usre}&password={item.DVR_possword}"; var handler = new HttpClientHandler(); var response = _httpClient.GetAsync(url).Result; var dt = response.Content.ReadAsStringAsync().Result; var data = Newtonsoft.Json.JsonConvert.DeserializeObject <DVRInfoDto>(dt); DVRCheckInfo dVRCheckInfo = new DVRCheckInfo(); dVRCheckInfo.DVR_ID = item.DVR_ID; dVRCheckInfo.LastModificationTime = DateTime.Now; //硬盘检查 int dvrhard = (int)(item.Hard_drive * 0.91 / 1000); if (dvrhard == data.HardDrive) { dVRCheckInfo.DiskTotal = data.HardDrive; dVRCheckInfo.DiskChenk = true; } else { dVRCheckInfo.DiskTotal = data.HardDrive; dVRCheckInfo.DiskChenk = false; } //在线及sn检查 if (!string.IsNullOrEmpty(data.DVR_SN)) { dVRCheckInfo.DVR_SN = data.DVR_SN; dVRCheckInfo.DVR_Channel = data.ChannelTotal; dVRCheckInfo.DVR_Online = true; if (item.DVR_SN == data.DVR_SN) { dVRCheckInfo.SNChenk = true; } else { dVRCheckInfo.SNChenk = false; } } else { dVRCheckInfo.DVR_Online = false; } //时间检查验证 var servertime = DateTime.Now; DateTime dvrtime = Convert.ToDateTime(data.DVR_DateTine); dVRCheckInfo.DVRTime = data.DVR_DateTine; if (servertime.Second + 5 >= dvrtime.Second && dvrtime.Second >= servertime.Second - 5) { dVRCheckInfo.TimeInfoChenk = true; } else { dVRCheckInfo.TimeInfoChenk = false; } //90天存储检查 String startTime = DateTime.Now.AddDays(-90).ToString("yyyy-MM-dd hh:mm:ss"); String endTime = DateTime.Now.AddDays(-90).AddHours(1).ToString("yyyy-MM-dd hh:mm:ss");; string url2 = $"{dvrurl}/api/DVRInfo/QueryVideoFileByTime?IP={item.DVR_IP}&name={item.DVR_usre}&password={item.DVR_possword}&startTimestr={startTime}&endTimestr={endTime}"; var handler2 = new HttpClientHandler(); var response2 = _httpClient.GetAsync(url2).Result; var dt2 = response2.Content.ReadAsStringAsync().Result; var data2 = Newtonsoft.Json.JsonConvert.DeserializeObject <int>(dt2); if (data2 == -1) { response2 = _httpClient.GetAsync(url2).Result; dt2 = response2.Content.ReadAsStringAsync().Result; data2 = Newtonsoft.Json.JsonConvert.DeserializeObject <int>(dt2); } if (data2 > 0) { dVRCheckInfo.VideoCheck90Day = true; } if (data2 == 0) { dVRCheckInfo.VideoCheck90Day = false; } int nuber = _dVRCheckInforepository.Where(u => u.DVR_ID == item.DVR_ID).Count(); if (nuber == 0) { var DD = await _dVRCheckInforepository.InsertAsync(dVRCheckInfo, true); } else { var id = _dVRCheckInforepository.Where(u => u.DVR_ID == item.DVR_ID).FirstOrDefault().Id; await _dVRCheckInforepository.DeleteAsync(id); var DD = await _dVRCheckInforepository.InsertAsync(dVRCheckInfo, true); } Console.WriteLine($"{item.DVR_ID}+{DateTime.Now}+写入成功"); } return(listdVRCheckInfo); }