Example #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try {
                if (!Page.IsPostBack && !X.IsAjaxRequest)
                {
                    var parms = new BUser().GetSysParams(30000001);
                    if (parms.Count > 0)
                    {
                        var param1 = parms.Find(p => p.ParaData == 0);
                        if (param1 != null && !String.IsNullOrEmpty(param1.ParaDisplay))
                        {
                            var ip = param1.ParaDisplay;
                            if (!ip.ToLower().StartsWith("http://"))
                            {
                                ip = String.Format("http://{0}", ip);
                            }

                            var param2 = parms.Find(p => p.ParaData == 1);
                            if (param2 != null && !String.IsNullOrEmpty(param2.ParaDisplay))
                            {
                                ip = String.Format("{0}:{1}", ip, param2.ParaDisplay);
                            }

                            Response.Redirect(ip, true);
                        }
                    }
                }
            } catch (Exception err) {
                WebUtility.WriteLog(EnmSysLogLevel.Error, EnmSysLogType.Exception, err.ToString(), Page.User.Identity.Name);
                WebUtility.ShowMessage(EnmErrType.Error, err.Message);
            }
        }
Example #2
0
        /// <summary>
        /// Show Group Nodes Display Window
        /// </summary>
        protected void ShowGroupNodeDisplayWindow(object sender, DirectEventArgs e)
        {
            try {
                GroupNodeDisplayFormPanel.Reset();
                var parms = new BUser().GetSysParams(50000001);
                if (parms.Count > 0)
                {
                    var param1 = parms.Find(p => p.ParaData == 0);
                    if (param1 != null && param1.ParaDisplay != null && !string.IsNullOrEmpty(param1.ParaDisplay.Trim()))
                    {
                        var displays = Newtonsoft.Json.JsonConvert.DeserializeObject <List <IDValuePair <string, int> > >(param1.ParaDisplay);
                        if (displays != null && displays.Count > 0)
                        {
                            var current = displays.Find(d => d.ID.Equals(Page.User.Identity.Name, StringComparison.CurrentCultureIgnoreCase));
                            if (current != null)
                            {
                                middisplay.Checked         = (current.Value & 1) > 0;
                                stafeaturesdisplay.Checked = (current.Value & 2) > 0;
                                statypedisplay.Checked     = (current.Value & 4) > 0;
                                productordisplay.Checked   = (current.Value & 8) > 0;
                            }
                        }
                    }
                }

                GroupNodeDisplayWindow.Show();
            } catch (Exception err) {
                WebUtility.WriteLog(EnmSysLogLevel.Error, EnmSysLogType.Exception, err.ToString(), Page.User.Identity.Name);
                WebUtility.ShowMessage(EnmErrType.Error, err.Message);
            }
        }
Example #3
0
        public void ShowVideoWindow()
        {
            try {
                VideoIPField.Clear();
                VideoPortField.Clear();
                VideoUIDField.Clear();
                VideoPwdField.Clear();
                VideoStatusBar.ClearStatus();
                VideoWindow.Title = "云视讯设置";

                var parms = new BUser().GetSysParams(30000001);
                if (parms.Count > 0)
                {
                    var param1 = parms.Find(p => p.ParaData == 0);
                    if (param1 != null)
                    {
                        VideoIPField.Text = param1.ParaDisplay;
                    }

                    var param2 = parms.Find(p => p.ParaData == 1);
                    if (param2 != null)
                    {
                        VideoPortField.Text = param2.ParaDisplay;
                    }

                    var param3 = parms.Find(p => p.ParaData == 2);
                    if (param3 != null)
                    {
                        VideoUIDField.Text = param3.ParaDisplay;
                    }

                    var param4 = parms.Find(p => p.ParaData == 3);
                    if (param4 != null)
                    {
                        VideoPwdField.Text = param4.ParaDisplay;
                    }
                }
                VideoWindow.Show();
            } catch (Exception err) {
                WebUtility.WriteLog(EnmSysLogLevel.Error, EnmSysLogType.Exception, err.ToString(), Page.User.Identity.Name);
                WebUtility.ShowMessage(EnmErrType.Error, err.Message);
            }
        }
Example #4
0
        /// <summary>
        /// Show Alarm Exception Setting Window
        /// </summary>
        protected void ShowAlmExceptionSettingWindow(object sender, DirectEventArgs e)
        {
            try {
                var parms = new BUser().GetSysParams(40000001);
                if (parms.Count > 0)
                {
                    var param1 = parms.Find(p => p.ParaData == 0);
                    if (param1 != null)
                    {
                        AlmExSpinnerField1.Text = param1.ParaDisplay;
                    }

                    var param2 = parms.Find(p => p.ParaData == 1);
                    if (param2 != null)
                    {
                        AlmExSpinnerField2.Text = param2.ParaDisplay;
                    }

                    var param3 = parms.Find(p => p.ParaData == 2);
                    if (param3 != null)
                    {
                        AlmExSpinnerField3.Text = param3.ParaDisplay;
                    }

                    var param4 = parms.Find(p => p.ParaData == 3);
                    if (param4 != null)
                    {
                        AlmExSpinnerField4.Text = param4.ParaDisplay;
                    }

                    var param5 = parms.Find(p => p.ParaData == 4);
                    if (param5 != null)
                    {
                        AlmExSpinnerField5.Text = param5.ParaDisplay;
                    }

                    var param6 = parms.Find(p => p.ParaData == 5);
                    if (param6 != null)
                    {
                        AlmExTextField1.Text = param6.ParaDisplay;
                    }
                }

                AlmExceptionParamWindow.Show();
            } catch (Exception err) {
                WebUtility.WriteLog(EnmSysLogLevel.Error, EnmSysLogType.Exception, err.ToString(), Page.User.Identity.Name);
                WebUtility.ShowMessage(EnmErrType.Error, err.Message);
            }
        }
        /// <summary>
        /// Add Data To Cache
        /// </summary>
        private DataTable AddDataToCache()
        {
            var userData  = UserData;
            var cacheKey1 = WebUtility.GetCacheKeyName(userData, "important-alarm-source1");
            var cacheKey2 = WebUtility.GetCacheKeyName(userData, "important-alarm-source2");

            HttpRuntime.Cache.Remove(cacheKey1);
            HttpRuntime.Cache.Remove(cacheKey2);

            if (String.IsNullOrEmpty(CountItemField.RawValue.ToString()))
            {
                return(null);
            }
            var values    = WebUtility.StringSplit(CountItemField.RawValue.ToString());
            var beginTime = Convert.ToDateTime(BeginFromDate.Text);
            var endTime   = Convert.ToDateTime(BeginToDate.Text);
            var levels    = new Dictionary <Int32, String>();
            var len       = AlarmLevelMultiCombo.SelectedItems.Count;

            if (len == 0)
            {
                return(null);
            }
            for (int i = 0; i < len; i++)
            {
                var key   = Int32.Parse(AlarmLevelMultiCombo.SelectedItems[i].Value);
                var value = AlarmLevelMultiCombo.SelectedItems[i].Text;
                levels[key] = value;
            }

            var parms = new BUser().GetSysParams(40000001);
            var parm0 = parms.Find(p => p.ParaData == 0);
            var parm1 = parms.Find(p => p.ParaData == 1);
            var parm2 = parms.Find(p => p.ParaData == 2);
            var parm3 = parms.Find(p => p.ParaData == 3);
            var parm4 = parms.Find(p => p.ParaData == 4);
            var parm5 = parms.Find(p => p.ParaData == 5);

            if (parm5 == null)
            {
                return(null);
            }

            var colcnt    = MainGridPanel.ColumnModel.Columns.Count;
            var countType = CountTypeComboBox.SelectedItem.Value;
            var condition = new List <GroupTreeInfo>();
            var source1   = CreateCustomizeTable(colcnt);
            var source2   = new Dictionary <String, List <AlarmInfo> >();

            if (countType.Equals("0"))
            {
                #region Lsc
                foreach (var v in values)
                {
                    var ids = WebUtility.ItemSplit(v);
                    if (ids.Length != 5)
                    {
                        continue;
                    }

                    var lscId       = Int32.Parse(ids[0]);
                    var groupId     = Int32.Parse(ids[1]);
                    var nodeId      = Int32.Parse(ids[2]);
                    var nodeType    = Int32.Parse(ids[3]);
                    var remark      = ids[4];
                    var enmNodeType = Enum.IsDefined(typeof(EnmNodeType), nodeType) ? (EnmNodeType)nodeType : EnmNodeType.Null;
                    if (enmNodeType == EnmNodeType.LSC)
                    {
                        condition.Add(new GroupTreeInfo()
                        {
                            LscID    = lscId,
                            GroupID  = groupId,
                            NodeID   = nodeId,
                            NodeType = enmNodeType,
                            Remark   = remark
                        });
                    }
                }

                var ls = from c in condition
                         group c by new { c.LscID } into g
                    select new { g.Key.LscID };

                foreach (var l in ls)
                {
                    var lscUser = userData.LscUsers.Find(lu => { return(lu.LscID == l.LscID); });
                    if (lscUser == null)
                    {
                        continue;
                    }

                    var dr1 = source1.NewRow();
                    dr1[1] = lscUser.LscName;

                    var alarms = WebUtility.GetUserAlarms(userData).FindAll(alarm => alarm.LscID == lscUser.LscID && alarm.StartTime >= beginTime && alarm.StartTime <= endTime);
                    alarms.AddRange(new BAlarm().GetHisAlarms(lscUser.LscID, lscUser.LscName, userData.StandardProtocol, lscUser.Group.GroupNodes, beginTime, endTime));
                    alarms = alarms.FindAll(a => levels.ContainsKey((Int32)a.AlarmLevel));

                    if (alarms.Count > 0)
                    {
                        alarms = (from a in alarms
                                  join n in new BNode().GetNodes(lscUser.LscID, EnmNodeType.Img, null, new string[] { parm5.ParaDisplay }, null) on a.NodeID equals n.NodeID
                                  select a).ToList();
                    }

                    dr1[2] = alarms.Count;
                    source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[2].ColumnName)] = alarms;

                    if (parm0 != null)
                    {
                        var alarm0 = (from a in alarms
                                      group a by new { a.NodeID } into g
                                      where g.Count() >= Int32.Parse(parm0.ParaDisplay)
                                      select new {
                            Alarms = g
                        }).SelectMany(a => a.Alarms).ToList();

                        dr1[3] = alarm0.Count;
                        dr1[4] = String.Format("{0:P2}", alarms.Count > 0 ? (double)alarm0.Count / (double)alarms.Count : 0);
                        source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[3].ColumnName)] = alarm0;
                    }
                    else
                    {
                        dr1[3] = 0;
                        dr1[4] = String.Format("{0:P2}", 0);
                        source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[3].ColumnName)] = new List <AlarmInfo>();
                    }

                    if (parm1 != null)
                    {
                        var interval = Double.Parse(parm1.ParaDisplay);
                        var alarm1   = alarms.FindAll(a => (a.EndTime == WebUtility.DefaultDateTime ? endTime.Subtract(a.StartTime) : a.EndTime.Subtract(a.StartTime)).TotalSeconds <= interval);

                        dr1[5] = alarm1.Count;
                        dr1[6] = String.Format("{0:P2}", alarms.Count > 0 ? (double)alarm1.Count / (double)alarms.Count : 0);
                        source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[5].ColumnName)] = alarm1;
                    }
                    else
                    {
                        dr1[5] = 0;
                        dr1[6] = String.Format("{0:P2}", 0);
                        source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[5].ColumnName)] = new List <AlarmInfo>();
                    }

                    source1.Rows.Add(dr1);
                }
                #endregion
            }
            else if (countType.Equals("1"))
            {
                #region Area=2
                foreach (var v in values)
                {
                    var ids = WebUtility.ItemSplit(v);
                    if (ids.Length != 5)
                    {
                        continue;
                    }

                    var lscId       = Int32.Parse(ids[0]);
                    var groupId     = Int32.Parse(ids[1]);
                    var nodeId      = Int32.Parse(ids[2]);
                    var nodeType    = Int32.Parse(ids[3]);
                    var remark      = ids[4];
                    var enmNodeType = Enum.IsDefined(typeof(EnmNodeType), nodeType) ? (EnmNodeType)nodeType : EnmNodeType.Null;
                    if (enmNodeType == EnmNodeType.Area &&
                        remark.Equals("2"))
                    {
                        condition.Add(new GroupTreeInfo()
                        {
                            LscID    = lscId,
                            GroupID  = groupId,
                            NodeID   = nodeId,
                            NodeType = enmNodeType,
                            Remark   = remark
                        });
                    }
                }

                var ls = from c in condition
                         group c by new { c.LscID } into g
                    select new { g.Key.LscID };

                foreach (var l in ls)
                {
                    var lscUser = userData.LscUsers.Find(lu => { return(lu.LscID == l.LscID); });
                    if (lscUser == null)
                    {
                        continue;
                    }

                    var alarms = WebUtility.GetUserAlarms(userData).FindAll(alarm => alarm.LscID == lscUser.LscID && alarm.StartTime >= beginTime && alarm.StartTime <= endTime);
                    alarms.AddRange(new BAlarm().GetHisAlarms(lscUser.LscID, lscUser.LscName, userData.StandardProtocol, lscUser.Group.GroupNodes, beginTime, endTime));
                    alarms = alarms.FindAll(a => levels.ContainsKey((Int32)a.AlarmLevel));

                    var temp0 = from a in alarms
                                join n in new BNode().GetNodes(lscUser.LscID, EnmNodeType.Img, null, new string[] { parm5.ParaDisplay }, null) on a.NodeID equals n.NodeID
                                select new {
                        Node  = n,
                        Alarm = a
                    };

                    var areas = from a in new BOther().GetAreas(lscUser.LscID, lscUser.Group.GroupID, 2)
                                join c in condition on new { a.LscID, a.Area2ID } equals new { c.LscID, Area2ID = c.NodeID }
                    select a;

                    foreach (var area in areas)
                    {
                        var dr1 = source1.NewRow();
                        dr1[1] = area.LscName;
                        dr1[2] = area.Area2Name;

                        var temp3 = temp0.Where(a => a.Node.Area2ID == area.Area2ID);
                        var temp4 = temp3.Any() ? temp3.Select(a => a.Alarm).ToList() : new List <AlarmInfo>();
                        dr1[3] = temp4.Count;
                        source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[3].ColumnName)] = temp4;


                        if (parm0 != null)
                        {
                            var alarm0 = (from a in temp4
                                          group a by new { a.NodeID } into g
                                          where g.Count() >= Int32.Parse(parm0.ParaDisplay)
                                          select new {
                                Alarms = g
                            }).SelectMany(a => a.Alarms).ToList();

                            dr1[4] = alarm0.Count;
                            dr1[5] = String.Format("{0:P2}", temp4.Count > 0 ? (double)alarm0.Count / (double)temp4.Count : 0);
                            source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[4].ColumnName)] = alarm0;
                        }
                        else
                        {
                            dr1[4] = 0;
                            dr1[5] = String.Format("{0:P2}", 0);
                            source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[4].ColumnName)] = new List <AlarmInfo>();
                        }

                        if (parm1 != null)
                        {
                            var interval = Double.Parse(parm1.ParaDisplay);
                            var alarm1   = temp4.FindAll(a => (a.EndTime == WebUtility.DefaultDateTime ? endTime.Subtract(a.StartTime) : a.EndTime.Subtract(a.StartTime)).TotalSeconds <= interval);

                            dr1[6] = alarm1.Count;
                            dr1[7] = String.Format("{0:P2}", temp4.Count > 0 ? (double)alarm1.Count / (double)temp4.Count : 0);
                            source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[6].ColumnName)] = alarm1;
                        }
                        else
                        {
                            dr1[6] = 0;
                            dr1[7] = String.Format("{0:P2}", 0);
                            source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[6].ColumnName)] = new List <AlarmInfo>();
                        }

                        source1.Rows.Add(dr1);
                    }
                }
                #endregion
            }
            else if (countType.Equals("2"))
            {
                #region Area=3
                foreach (var v in values)
                {
                    var ids = WebUtility.ItemSplit(v);
                    if (ids.Length != 5)
                    {
                        continue;
                    }

                    var lscId       = Int32.Parse(ids[0]);
                    var groupId     = Int32.Parse(ids[1]);
                    var nodeId      = Int32.Parse(ids[2]);
                    var nodeType    = Int32.Parse(ids[3]);
                    var remark      = ids[4];
                    var enmNodeType = Enum.IsDefined(typeof(EnmNodeType), nodeType) ? (EnmNodeType)nodeType : EnmNodeType.Null;
                    if (enmNodeType == EnmNodeType.Area &&
                        remark.Equals("3"))
                    {
                        condition.Add(new GroupTreeInfo()
                        {
                            LscID    = lscId,
                            GroupID  = groupId,
                            NodeID   = nodeId,
                            NodeType = enmNodeType,
                            Remark   = remark
                        });
                    }
                }

                var ls = from c in condition
                         group c by new { c.LscID } into g
                    select new { g.Key.LscID };

                foreach (var l in ls)
                {
                    var lscUser = userData.LscUsers.Find(lu => { return(lu.LscID == l.LscID); });
                    if (lscUser == null)
                    {
                        continue;
                    }

                    var alarms = WebUtility.GetUserAlarms(userData).FindAll(alarm => alarm.LscID == lscUser.LscID && alarm.StartTime >= beginTime && alarm.StartTime <= endTime);
                    alarms.AddRange(new BAlarm().GetHisAlarms(lscUser.LscID, lscUser.LscName, userData.StandardProtocol, lscUser.Group.GroupNodes, beginTime, endTime));
                    alarms = alarms.FindAll(a => levels.ContainsKey((Int32)a.AlarmLevel));

                    var temp0 = from a in alarms
                                join n in new BNode().GetNodes(lscUser.LscID, EnmNodeType.Img, null, new string[] { parm5.ParaDisplay }, null) on a.NodeID equals n.NodeID
                                select new {
                        Node  = n,
                        Alarm = a
                    };

                    var areas = from a in new BOther().GetAreas(lscUser.LscID, lscUser.Group.GroupID, 3)
                                join c in condition on new { a.LscID, a.Area3ID } equals new { c.LscID, Area3ID = c.NodeID }
                    select a;

                    foreach (var area in areas)
                    {
                        var dr1 = source1.NewRow();
                        dr1[1] = area.LscName;
                        dr1[2] = area.Area2Name;
                        dr1[3] = area.Area3Name;

                        var temp3 = temp0.Where(a => a.Node.Area3ID == area.Area3ID);
                        var temp4 = temp3.Any() ? temp3.Select(a => a.Alarm).ToList() : new List <AlarmInfo>();
                        dr1[4] = temp4.Count;
                        source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[4].ColumnName)] = temp4;

                        if (parm0 != null)
                        {
                            var alarm0 = (from a in temp4
                                          group a by new { a.NodeID } into g
                                          where g.Count() >= Int32.Parse(parm0.ParaDisplay)
                                          select new {
                                Alarms = g
                            }).SelectMany(a => a.Alarms).ToList();

                            dr1[5] = alarm0.Count;
                            dr1[6] = String.Format("{0:P2}", temp4.Count > 0 ? (double)alarm0.Count / (double)temp4.Count : 0);
                            source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[5].ColumnName)] = alarm0;
                        }
                        else
                        {
                            dr1[5] = 0;
                            dr1[6] = String.Format("{0:P2}", 0);
                            source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[5].ColumnName)] = new List <AlarmInfo>();
                        }

                        if (parm1 != null)
                        {
                            var interval = Double.Parse(parm1.ParaDisplay);
                            var alarm1   = temp4.FindAll(a => (a.EndTime == WebUtility.DefaultDateTime ? endTime.Subtract(a.StartTime) : a.EndTime.Subtract(a.StartTime)).TotalSeconds <= interval);

                            dr1[7] = alarm1.Count;
                            dr1[8] = String.Format("{0:P2}", temp4.Count > 0 ? (double)alarm1.Count / (double)temp4.Count : 0);
                            source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[7].ColumnName)] = alarm1;
                        }
                        else
                        {
                            dr1[7] = 0;
                            dr1[8] = String.Format("{0:P2}", 0);
                            source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[7].ColumnName)] = new List <AlarmInfo>();
                        }

                        source1.Rows.Add(dr1);
                    }
                }
                #endregion
            }
            else if (countType.Equals("3"))
            {
                #region Station
                foreach (var v in values)
                {
                    var ids = WebUtility.ItemSplit(v);
                    if (ids.Length != 5)
                    {
                        continue;
                    }

                    var lscId       = Int32.Parse(ids[0]);
                    var groupId     = Int32.Parse(ids[1]);
                    var nodeId      = Int32.Parse(ids[2]);
                    var nodeType    = Int32.Parse(ids[3]);
                    var remark      = ids[4];
                    var enmNodeType = Enum.IsDefined(typeof(EnmNodeType), nodeType) ? (EnmNodeType)nodeType : EnmNodeType.Null;
                    if (enmNodeType == EnmNodeType.Area &&
                        remark.Equals("3"))
                    {
                        condition.Add(new GroupTreeInfo()
                        {
                            LscID    = lscId,
                            GroupID  = groupId,
                            NodeID   = nodeId,
                            NodeType = enmNodeType,
                            Remark   = remark
                        });
                    }
                }

                var ls = from c in condition
                         group c by new { c.LscID } into g
                    select new { g.Key.LscID };

                foreach (var l in ls)
                {
                    var lscUser = userData.LscUsers.Find(lu => { return(lu.LscID == l.LscID); });
                    if (lscUser == null)
                    {
                        continue;
                    }

                    var alarms = WebUtility.GetUserAlarms(userData).FindAll(alarm => alarm.LscID == lscUser.LscID && alarm.StartTime >= beginTime && alarm.StartTime <= endTime);
                    alarms.AddRange(new BAlarm().GetHisAlarms(lscUser.LscID, lscUser.LscName, userData.StandardProtocol, lscUser.Group.GroupNodes, beginTime, endTime));
                    alarms = alarms.FindAll(a => levels.ContainsKey((Int32)a.AlarmLevel));

                    var temp0 = from a in alarms
                                join n in new BNode().GetNodes(lscUser.LscID, EnmNodeType.Img, null, new string[] { parm5.ParaDisplay }, null) on a.NodeID equals n.NodeID
                                select new {
                        Node  = n,
                        Alarm = a
                    };

                    var stations = from c in condition
                                   join s in new BOther().GetStations(lscUser.LscID, lscUser.Group.GroupID) on new { c.LscID, Area3ID = c.NodeID } equals new { s.LscID, s.Area3ID }
                    select s;

                    foreach (var sta in stations)
                    {
                        var dr1 = source1.NewRow();
                        dr1[1] = sta.LscName;
                        dr1[2] = sta.Area2Name;
                        dr1[3] = sta.Area3Name;
                        dr1[4] = sta.StaName;

                        var temp3 = temp0.Where(a => a.Node.StaID == sta.StaID);
                        var temp4 = temp3.Any() ? temp3.Select(a => a.Alarm).ToList() : new List <AlarmInfo>();
                        dr1[5] = temp4.Count;
                        source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[5].ColumnName)] = temp4;

                        if (parm0 != null)
                        {
                            var alarm0 = (from a in temp4
                                          group a by new { a.NodeID } into g
                                          where g.Count() >= Int32.Parse(parm0.ParaDisplay)
                                          select new {
                                Alarms = g
                            }).SelectMany(a => a.Alarms).ToList();

                            dr1[6] = alarm0.Count;
                            dr1[7] = String.Format("{0:P2}", temp4.Count > 0 ? (double)alarm0.Count / (double)temp4.Count : 0);
                            source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[6].ColumnName)] = alarm0;
                        }
                        else
                        {
                            dr1[6] = 0;
                            dr1[7] = String.Format("{0:P2}", 0);
                            source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[6].ColumnName)] = new List <AlarmInfo>();
                        }

                        if (parm1 != null)
                        {
                            var interval = Double.Parse(parm1.ParaDisplay);
                            var alarm1   = temp4.FindAll(a => (a.EndTime == WebUtility.DefaultDateTime ? endTime.Subtract(a.StartTime) : a.EndTime.Subtract(a.StartTime)).TotalSeconds <= interval);

                            dr1[8] = alarm1.Count;
                            dr1[9] = String.Format("{0:P2}", temp4.Count > 0 ? (double)alarm1.Count / (double)temp4.Count : 0);
                            source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[8].ColumnName)] = alarm1;
                        }
                        else
                        {
                            dr1[8] = 0;
                            dr1[9] = String.Format("{0:P2}", 0);
                            source2[String.Format("{0}-{1}", source1.Rows.Count, source1.Columns[8].ColumnName)] = new List <AlarmInfo>();
                        }

                        source1.Rows.Add(dr1);
                    }
                }
                #endregion
            }

            var 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);
        }