Пример #1
0
        public void BindData()
        {
            dt_Alert = new DataTable();

            //서버리스트 읽어오기
            string MyServerList = "";

            cloud.SetCmd("Cloud");
            cloud.get_MyServerList(MemberNum);

            foreach (DataRow dr in cloud.dsReturn.Tables[0].Rows)
            {
                MyServerList += dr["ServerNum"].ToString() + ",";
            }

            MyServerList = MyServerList.Substring(0, MyServerList.Length - 1);

            //DB.Cloud cloud = new DB.Cloud();
            int nReturn = cloud.get_AlertMessage(MyServerList, numAlertDataDuration);

            //if (cloud.dsReturn != null)
            //{
            //    DataTable dt_Alert_tmp = cloud.dsReturn.Tables[0];
            //    string strExpression = "DisPlayGroup = '" + strGroupName + "'";
            //    DataRow[] dr = dt_Alert_tmp.Select(strExpression);
            //    dt_Alert = dt_Alert_tmp.Clone();
            //    foreach (DataRow d in dr)
            //    {
            //        dt_Alert.ImportRow(d);
            //    }
            //}
            //cloud.dsReturn.Dispose();

            if (cloud.dsReturn.Tables[0].Rows.Count > 0)
            {
                //데이터 테이블 구조생성용으로 첫번째 json데이터를 불러와서 컬럼명을 자동셋팅하도록
                DataTable tester = (DataTable)JsonConvert.DeserializeObject(((string)cloud.dsReturn.Tables[0].Rows[0]["Data_Json"]), (typeof(DataTable)));
                //tester 에는 실제로 데이터가 들어가잇고 clone 을 이용해 dt_Struct 에 데이터테이블 구조만 복사
                DataTable dt_struct = new DataTable();
                dt_Alert = tester.Clone();
                dt_Alert.Columns.Add("RepeatCnt");
                dt_Alert.AcceptChanges();
                //이후 dt_struct 에 계속 merge(union) 하여 하나로 합체 테스트로 돌려보니 rowcount 8만 정도 나왓네요
                foreach (DataRow dr in cloud.dsReturn.Tables[0].Rows)
                {
                    DataTable dt_tmp = (DataTable)JsonConvert.DeserializeObject(((string)dr["Data_Json"]), (typeof(DataTable)));

                    //신규추가 2017 - 09 - 23 데이터 머지 = mssql union
                    //신규추가 2017 - 09 - 23 참조 https://msdn.microsoft.com/ko-kr/library/fk68ew7b(v=vs.110).aspx
                    dt_Alert.Merge(dt_tmp);
                }
            }
            cloud.dsReturn.Dispose();
        }
Пример #2
0
        public void BindData()
        {
            dt_Alert = new DataTable();

            //서버리스트 읽어오기
            string MyServerList = "";

            cloud.SetCmd("Cloud");
            cloud.get_MyServerList(MemberNum);

            foreach (DataRow dr in cloud.dsReturn.Tables[0].Rows)
            {
                MyServerList += dr["ServerNum"].ToString() + ",";
            }

            MyServerList = MyServerList.Substring(0, MyServerList.Length - 1);

            int nReturn = cloud.get_ServerStatus(MyServerList);

            if (cloud.dsReturn.Tables[0].Rows.Count > 0)
            {
                MyServerList = "";

                foreach (DataRow dr in cloud.dsReturn.Tables[0].Select("ServerType = 'Web'"))
                {
                    MyServerList += dr["ServerNum"].ToString() + ",";
                }

                MyServerList = MyServerList.Substring(0, MyServerList.Length - 1);
            }

            nReturn           = cloud.get_Dashboard(MyServerList);;
            dt_w_Dashboard    = Lib.ConvertingProc.w_Dashboard(cloud.dsReturn.Tables[0]);
            gvList.DataSource = dt_w_Dashboard;

            nReturn = nReturn = cloud.get_Dashboard_Chart(MyServerList);
            dt_w_Dashboard_chart = Lib.ConvertingProc.ChangeDashboardColumnName(cloud.dsReturn.Tables[0]);

            //각 차트에서 참조해서 사용할 공통 데이터 테이블 생성
            nReturn = cloud.get_PerfvaluesData_Company(CompanyNum);

            //신규추가 2017-09-23
            if (cloud.dsReturn.Tables[0].Rows.Count > 0)
            {
                //데이터 테이블 구조생성용으로 첫번째 json데이터를 불러와서 컬럼명을 자동셋팅하도록
                DataTable tester = (DataTable)JsonConvert.DeserializeObject(((string)cloud.dsReturn.Tables[0].Rows[0]["Data_Json"]), (typeof(DataTable)));
                //tester 에는 실제로 데이터가 들어가잇고 clone 을 이용해 dt_Struct 에 데이터테이블 구조만 복사
                //DataTable dt_struct = new DataTable();
                dt_PerfmonValue = tester.Clone();
                dt_PerfmonValue.AcceptChanges();
                // 이후 dt_struct 에 계속 merge (union) 하여 하나로 합체 테스트로 돌려보니 rowcount 8만 정도 나왓네요
                foreach (DataRow dr in cloud.dsReturn.Tables[0].Rows)
                {
                    DataTable dt_tmp = (DataTable)JsonConvert.DeserializeObject(((string)dr["Data_Json"]), (typeof(DataTable)));

                    //신규추가 2017-09-23 데이터 머지 = mssql union
                    //신규추가 2017-09-23 참조 https://msdn.microsoft.com/ko-kr/library/fk68ew7b(v=vs.110).aspx
                    dt_PerfmonValue.Merge(dt_tmp);
                }
            }

            //dt_FreeDisk 데이터 테이블 만들기
            var test = from r in dt_PerfmonValue.AsEnumerable()
                       where (r.Field <string>("PCID") == "P018" || r.Field <string>("PCID") == "P164" || r.Field <string>("PCID") == "P015" || r.Field <string>("PCID") == "P190" || r.Field <string>("PCID") == "P194") && !r.Field <string>("InstanceName").Contains("_Total") && !r.Field <string>("InstanceName").Contains("HarddiskVolume")
                       select r;

            dt_FreeDisk = dt_PerfmonValue.Clone();

            foreach (DataRow r in test)
            {
                var newRow = dt_FreeDisk.NewRow();
                newRow.ItemArray = r.ItemArray;
                dt_FreeDisk.Rows.Add(newRow);//I'm doubtful if you need to call this or not
            }

            dt_FreeDisk = Lib.ConvertingProc.SetDiskProc_All(dt_FreeDisk);
            gvList.DataBind();

            //Alert Message 로딩
            //nReturn = cloud.get_AlertMessage(MyServerList, numAlertDataDuration);

            //if (cloud.dsReturn.Tables[0].Rows.Count > 0)
            //{
            //    //데이터 테이블 구조생성용으로 첫번째 json데이터를 불러와서 컬럼명을 자동셋팅하도록
            //    DataTable tester = (DataTable)JsonConvert.DeserializeObject(((string)cloud.dsReturn.Tables[0].Rows[0]["Data_Json"]), (typeof(DataTable)));
            //    //tester 에는 실제로 데이터가 들어가잇고 clone 을 이용해 dt_Struct 에 데이터테이블 구조만 복사
            //    DataTable dt_struct = new DataTable();
            //    dt_Alert = tester.Clone();
            //    dt_Alert.Columns.Add("RepeatCnt");
            //    dt_Alert.AcceptChanges();
            //    //이후 dt_struct 에 계속 merge(union) 하여 하나로 합체 테스트로 돌려보니 rowcount 8만 정도 나왓네요
            //    foreach (DataRow dr in cloud.dsReturn.Tables[0].Rows)
            //    {
            //        DataTable dt_tmp = (DataTable)JsonConvert.DeserializeObject(((string)dr["Data_Json"]), (typeof(DataTable)));

            //        //신규추가 2017 - 09 - 23 데이터 머지 = mssql union
            //        //신규추가 2017 - 09 - 23 참조 https://msdn.microsoft.com/ko-kr/library/fk68ew7b(v=vs.110).aspx
            //        dt_Alert.Merge(dt_tmp);
            //    }
            //}
            //cloud.dsReturn.Dispose();
        }
Пример #3
0
        public void BindData()
        {
            DB.Cloud cloud = new DB.Cloud();

            //DataTable dt_ServerAlertList = new DataTable();

            //서버리스트 읽어오기
            string MyServerList = "";

            cloud.SetCmd("Cloud");
            cloud.get_MyServerList(MemberNum);
            if (cloud.dsReturn.Tables[0].Rows.Count == 0)
            {
                return;
            }

            foreach (DataRow dr in cloud.dsReturn.Tables[0].Rows)
            {
                MyServerList += dr["ServerNum"].ToString() + ",";
            }
            if (MyServerList.Length > 0)
            {
                MyServerList = MyServerList.Substring(0, MyServerList.Length - 1);
            }
            cloud.SetCmd("Cloud");
            int           nReturn  = cloud.get_ServerStatus(MyServerList);
            DataSet       ds       = cloud.dsReturn;
            List <string> dt_Group = new List <string>();

            if (ds != null)
            {
                dt_ServerList = Lib.ConvertingProc.w_Dashboard(ds.Tables[0]);
                var tmp_Group = from tbl in ds.Tables[0].AsEnumerable()
                                orderby tbl["DisplayGroup"] ascending
                                group tbl by tbl["DisplayGroup"] into tmp
                                select tmp;
                foreach (var i in tmp_Group)
                {
                    dt_Group.Add(i.Key.ToString());
                }
                tmp_Group = null;
            }
            else
            {
                return;
            }

            ds.Clear();
            ds.Dispose();

            rpt_ServerStatus.DataSource = dt_Group;
            rpt_ServerStatus.DataBind();

            dt_Group.Clear();
            //nReturn = cloud.W_AlertCountList(MemberNum, CompanyNum, numAlertDataDuration);
            //if (cloud.dsReturn != null)
            //{
            //    dt_ServerAlertList = cloud.dsReturn.Tables[0];
            //    var tmp_Group = from tbl in dt_ServerAlertList.AsEnumerable()
            //                    orderby tbl["DisplayGroup"] ascending
            //                    group tbl by tbl["DisplayGroup"] into tmp
            //                    select tmp;
            //    foreach (var i in tmp_Group)
            //    {

            //        SetAlertDic(dt_ServerAlertList, i.Key.ToString());
            //        dt_Group.Add(i.Key.ToString());
            //    }
            //    cloud.dsReturn.Clear();
            //    cloud.dsReturn.Dispose();
            //    tmp_Group = null;
            //}
            //else
            //{
            //    return;
            //}
            ////rpt_Alert.DataSource = dt_Group;
            ////rpt_Alert.DataBind();
            dt_Group.Clear();
            cloud.CloseCon();
        }