/// <summary> /// Add data to cache. /// </summary> private List <Report114Entity> AddDataToCache() { var userData = UserData; var cacheKey1 = WebUtility.GetCacheKeyName(userData, "kpi-report-114"); var cacheKey2 = WebUtility.GetCacheKeyName(userData, "kpi-report-114-02"); HttpRuntime.Cache.Remove(cacheKey1); HttpRuntime.Cache.Remove(cacheKey2); var lscs = new List <LscUserInfo>(); if (LscsComboBox.SelectedIndex > 0) { var ids = WebUtility.ItemSplit(LscsComboBox.SelectedItem.Value); if (ids.Length == 2) { var lscId = Int32.Parse(ids[0]); var groupId = Int32.Parse(ids[1]); var lscUser = userData.LscUsers.Find(lu => { return(lu.LscID == lscId); }); if (lscUser != null) { lscs.Add(lscUser); } } } else { lscs.AddRange(userData.LscUsers); } if (lscs.Count == 0) { return(null); } var staTypes = new Dictionary <Int32, String>(); foreach (var dt in StaTypeMultiCombo.SelectedItems) { staTypes[Int32.Parse(dt.Value)] = dt.Text; } if (staTypes.Count == 0) { return(null); } var devTypes = new Dictionary <Int32, String>(); foreach (var dt in DevTypeMultiCombo.SelectedItems) { devTypes[Int32.Parse(dt.Value)] = dt.Text; } if (devTypes.Count == 0) { return(null); } var fromTime = DateTime.Parse(BeginDate.Text); var toTime = DateTime.Parse(EndDate.Text); var otherEntity = new BOther(); var source1 = new List <Report114Entity>(); var source2 = new Dictionary <String, List <DeviceInfo> >(); foreach (var lsc in lscs) { var devices1 = otherEntity.GetDevices(lsc.LscID).FindAll(d => staTypes.ContainsKey(d.StaTypeID) && devTypes.ContainsKey(d.DevTypeID)); var dscRecords = otherEntity.GetHisDsc(lsc.LscID, fromTime, toTime).FindAll(d => d.ModuleNum > 0 && d.RatedCurrent > 0 && d.LoadCurrent >= 0 && d.LoadCurrent / (d.ModuleNum * d.RatedCurrent) < 0.65); var temp = from dr in dscRecords group dr by dr.DevID into g select g.Key; var devices2 = (from dev in devices1 join tp in temp on dev.DevID equals tp select dev).ToList(); source1.Add(new Report114Entity { LscID = lsc.LscID, LscName = lsc.LscName, ThisCount = devices2.Count, LastCount = devices1.Count }); source2[String.Format("{0}-ThisCount", lsc.LscID)] = devices2; source2[String.Format("{0}-LastCount", lsc.LscID)] = devices1; } if (source1.Count > 0) { source1.Add(new Report114Entity { LscID = -100, LscName = "汇总", ThisCount = (Int32)source1.Sum(r => r.ThisCount), LastCount = (Int32)source1.Sum(r => r.LastCount) }); } int cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]); HttpRuntime.Cache.Insert(cacheKey1, source1, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); HttpRuntime.Cache.Insert(cacheKey2, source2, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); return(source1); }
/// <summary> /// Add data to cache. /// </summary> private List <Report008Entity> AddDataToCache() { var userData = UserData; var cacheKey = WebUtility.GetCacheKeyName(userData, "kpi-report-008"); HttpRuntime.Cache.Remove(cacheKey); var lscs = new List <LscUserInfo>(); if (LscsComboBox.SelectedIndex > 0) { var ids = WebUtility.ItemSplit(LscsComboBox.SelectedItem.Value); if (ids.Length == 2) { var lscId = Int32.Parse(ids[0]); var groupId = Int32.Parse(ids[1]); var lscUser = userData.LscUsers.Find(lu => { return(lu.LscID == lscId); }); if (lscUser != null) { lscs.Add(lscUser); } } } else { lscs.AddRange(userData.LscUsers); } if (lscs.Count == 0) { return(null); } var devTypes = new Dictionary <Int32, String>(); foreach (var dt in DevTypeMultiCombo.SelectedItems) { devTypes[Int32.Parse(dt.Value)] = dt.Text; } if (devTypes.Count == 0) { return(null); } var fromTime = DateTime.Parse(BeginFromDate.Text); var toTime = DateTime.Parse(BeginToDate.Text); var otherEntity = new BOther(); var result = new List <Report008Entity>(); foreach (var lsc in lscs) { var devs = otherEntity.GetDevices(lsc.LscID).FindAll(d => devTypes.ContainsKey(d.DevTypeID)); var dscs = otherEntity.GetHisDsc(lsc.LscID, fromTime, toTime).FindAll(d => d.ModuleNum != 0 && d.RatedCurrent != 0 && (d.LoadCurrent / (d.ModuleNum * d.RatedCurrent)) < 0.65); var hgdv = (from dev in devs join ds in dscs on dev.DevID equals ds.DevID select dev).ToList(); result.Add(new Report008Entity { LscID = lsc.LscID, LscName = lsc.LscName, ThisCount = hgdv.Count, LastCount = devs.Count }); } if (result.Count > 0) { result.Add(new Report008Entity { LscID = -100, LscName = "汇总(平均值)", ThisCount = (Int32)result.Average(r => r.ThisCount), LastCount = (Int32)result.Average(r => r.LastCount) }); } int cacheDuration = Int32.Parse(WebConfigurationManager.AppSettings["DefaultCacheDuration"]); HttpRuntime.Cache.Insert(cacheKey, result, null, Cache.NoAbsoluteExpiration, TimeSpan.FromSeconds(cacheDuration), CacheItemPriority.Default, null); return(result); }