/// <summary>
        /// Returns Sample Group details of the specified Sample group Key.
        /// </summary>
        /// <param name="opcGrpID">Sample group key</param>
        /// <returns>Sample Group entity</returns>
        public EtyOPCSampleGroup GetOPCGrpByID(string opcGrpID)
        {
            string Function_Name = "GetOPCGrpByID";

            LogHelper.Trace(CLASS_NAME, Function_Name, string.Format("Function_Entered with params - {0}", opcGrpID));
            EtyOPCSampleGroup etyOPCSampleGrp = new EtyOPCSampleGroup();

            string localSQL = " SELECT SAMPLE_GRP_NAME,SAMPLE_GRP_DESC,SAMPLE_INTERVAL,INTERVAL_TYPE,START_TIME,DELTA_VALUE,DISABLE "
                              + " FROM OPC_DT_SAMPLE_GRP WHERE SAMPLE_GRP_ID = " + opcGrpID;

            System.Data.IDataReader drReader = SimpleDatabase.GetInstance().ExecuteQuery(localSQL);
            try
            {
                while (drReader != null && drReader.Read())
                {
                    if (!drReader.IsDBNull(drReader.GetOrdinal("SAMPLE_GRP_NAME")))
                    {
                        etyOPCSampleGrp.SampleGrpName = DAOHelper.convert8859P1ToGB2312(drReader["SAMPLE_GRP_NAME"].ToString());
                    }
                    if (!drReader.IsDBNull(drReader.GetOrdinal("SAMPLE_GRP_DESC")))
                    {
                        etyOPCSampleGrp.SampleGrpDescription = DAOHelper.convert8859P1ToGB2312(drReader["SAMPLE_GRP_DESC"].ToString());
                    }
                    if (!drReader.IsDBNull(drReader.GetOrdinal("SAMPLE_INTERVAL")))
                    {
                        etyOPCSampleGrp.Interval = Convert.ToInt32(drReader["SAMPLE_INTERVAL"]);
                    }
                    if (!drReader.IsDBNull(drReader.GetOrdinal("INTERVAL_TYPE")))
                    {
                        etyOPCSampleGrp.IntervalType = drReader["INTERVAL_TYPE"].ToString();
                    }
                    if (!drReader.IsDBNull(drReader.GetOrdinal("START_TIME")))
                    {
                        etyOPCSampleGrp.StartTime = drReader["START_TIME"].ToString();
                    }
                    if (!drReader.IsDBNull(drReader.GetOrdinal("DELTA_VALUE")))
                    {
                        etyOPCSampleGrp.DeltaValue = Convert.ToDouble(drReader["DELTA_VALUE"]);
                    }
                    if (!drReader.IsDBNull(drReader.GetOrdinal("DISABLE")))
                    {
                        etyOPCSampleGrp.Disabled = DAOHelper.ChangeStrToBool(drReader["DISABLE"].ToString());
                    }
                }
            }
            catch (System.Exception ex)
            {
                LogHelper.Error(CLASS_NAME, Function_Name, ex.ToString());
            }

            if (drReader != null)
            {
                drReader.Close();
                drReader.Dispose();
            }

            LogHelper.Trace(CLASS_NAME, Function_Name, "Function_Exited");
            return(etyOPCSampleGrp);
        }
        /// <summary>
        /// Loads the Enabled Datapoints of the logger servername.
        /// </summary>
        public void LoadDataPointTimeStamp()
        {
            string Function_Name = "LoadDataPointTimeStamp";

            LogHelper.Trace(CLASS_NAME, Function_Name, "Function_Entered");

            //get unique Datapoint of this servername and host which is enabled in both table - opc_dt_pt & opc_sample_grp
            List <EtyOPCDataPoint> etyDataPointList = OPCNodeNDataPointDAO.GetInstance().GetUniqueEnabledOPCDataPoint(OPCSVR1HOST, m_opcSrv1Name);

            //get all Sample Groups
            List <EtyOPCSampleGroup> etySampleGrpList = OPCSampleGroupDAO.GetInstance().GetAllEnabledSampleGrp();

            foreach (EtyOPCDataPoint etyDP in etyDataPointList)
            {
                OPCDPGrpDetails opcDPGrp = new OPCDPGrpDetails();
                opcDPGrp.DT_PT_Name = etyDP.OPCDataPointName;
                EtyOPCSampleGroup etySampleGrp = etySampleGrpList.Find(delegate(EtyOPCSampleGroup obj) { return(obj.SampleGrpID == etyDP.OPCSampleGrpId); });
                //add only if the sample group is also enabled.
                if (etySampleGrp != null)
                {
                    opcDPGrp.Delta = etySampleGrp.DeltaValue;
                    double interval = etySampleGrp.Interval;
                    if (etySampleGrp.IntervalType == DAOHelper.HOUR)
                    {
                        interval = etySampleGrp.Interval * MINUTES_UNIT * SECONDS_UNIT;
                    }
                    else if (etySampleGrp.IntervalType == DAOHelper.MINITE)
                    {
                        interval = etySampleGrp.Interval * SECONDS_UNIT;
                    }
                    opcDPGrp.Interval = interval;
                    if (etySampleGrp.StartTime.Trim() != "")
                    {
                        DateTime currentTime   = System.DateTime.Now;
                        DateTime startDatetime = new DateTime(currentTime.Year, currentTime.Month, currentTime.Day, int.Parse(etySampleGrp.StartTime.Substring(0, 2)), int.Parse(etySampleGrp.StartTime.Substring(3, 2)), 0);

                        //calculate the next time for logging.
                        opcDPGrp.NextSampleTime = GetNextSampleTime(startDatetime, interval, true);
                    }
                    m_DataPointdic.Add(etyDP.OPCDataPointName, opcDPGrp);
                }
            }
            LogHelper.Trace(CLASS_NAME, Function_Name, "Function_Exited");
        }
        /// <summary>
        /// Updates the given sample group entity.
        /// </summary>
        /// <param name="etyOPCGrp">sample group entity</param>
        public void UpdateOPCGrpData(EtyOPCSampleGroup etyOPCGrp)
        {
            string Function_Name = "UpdateOPCGrpData";

            LogHelper.Trace(CLASS_NAME, Function_Name, string.Format("Function_Entered with params - SampleGroup Name = {0}", etyOPCGrp.SampleGrpName));

            string localSQL;
            string sample_grp_name = DAOHelper.convertGB2312To8859P1(etyOPCGrp.SampleGrpName);

            localSQL = " UPDATE OPC_DT_SAMPLE_GRP "
                       + " SET SAMPLE_GRP_DESC = '" + DAOHelper.convertGB2312To8859P1(etyOPCGrp.SampleGrpDescription) + "'"
                       + ",SAMPLE_INTERVAL = " + etyOPCGrp.Interval
                       + ",INTERVAL_TYPE = '" + etyOPCGrp.IntervalType + "'"
                       + ",START_TIME = '" + etyOPCGrp.StartTime + "'"
                       + ",DELTA_VALUE = " + etyOPCGrp.DeltaValue
                       + ",DISABLE = '" + DAOHelper.ChangeBoolToStr(etyOPCGrp.Disabled) + "'"
                       + " WHERE SAMPLE_GRP_NAME ='" + sample_grp_name + "'";
            SimpleDatabase.GetInstance().ExecuteNonQuery(localSQL);

            LogHelper.Trace(CLASS_NAME, Function_Name, "Function_Exited");
        }
        /// <summary>
        /// Returns all Enabled Sample group Entities.
        /// </summary>
        /// <returns>Sample group entity list</returns>
        public List <EtyOPCSampleGroup> GetAllEnabledSampleGrp()
        {
            string Function_Name = "GetAllEnabledSampleGrp";

            LogHelper.Trace(CLASS_NAME, Function_Name, "Function_Entered");
            List <EtyOPCSampleGroup> etyOPCGrpList = new List <EtyOPCSampleGroup>();
            string localSQL;

            localSQL = " SELECT SAMPLE_GRP_ID,SAMPLE_GRP_NAME,SAMPLE_GRP_DESC,SAMPLE_INTERVAL,INTERVAL_TYPE,START_TIME,DELTA_VALUE,DISABLE "
                       + " FROM OPC_DT_SAMPLE_GRP WHERE DISABLE = 'N' ";

            System.Data.IDataReader drReader = SimpleDatabase.GetInstance().ExecuteQuery(localSQL);

            try
            {
                while (drReader != null && drReader.Read())
                {
                    EtyOPCSampleGroup etyOPCSampleGrp = new EtyOPCSampleGroup();
                    if (!drReader.IsDBNull(drReader.GetOrdinal("SAMPLE_GRP_ID")))
                    {
                        etyOPCSampleGrp.SampleGrpID = Convert.ToDouble(drReader["SAMPLE_GRP_ID"]);
                    }
                    if (!drReader.IsDBNull(drReader.GetOrdinal("SAMPLE_GRP_NAME")))
                    {
                        etyOPCSampleGrp.SampleGrpName = DAOHelper.convert8859P1ToGB2312(drReader["SAMPLE_GRP_NAME"].ToString());
                    }
                    if (!drReader.IsDBNull(drReader.GetOrdinal("SAMPLE_GRP_DESC")))
                    {
                        etyOPCSampleGrp.SampleGrpDescription = DAOHelper.convert8859P1ToGB2312(drReader["SAMPLE_GRP_DESC"].ToString());
                    }

                    if (!drReader.IsDBNull(drReader.GetOrdinal("SAMPLE_INTERVAL")))
                    {
                        etyOPCSampleGrp.Interval = Convert.ToDouble(drReader["SAMPLE_INTERVAL"]);
                    }
                    if (!drReader.IsDBNull(drReader.GetOrdinal("INTERVAL_TYPE")))
                    {
                        etyOPCSampleGrp.IntervalType = drReader["INTERVAL_TYPE"].ToString();
                    }
                    if (!drReader.IsDBNull(drReader.GetOrdinal("START_TIME")))
                    {
                        etyOPCSampleGrp.StartTime = drReader["START_TIME"].ToString();
                    }
                    if (!drReader.IsDBNull(drReader.GetOrdinal("DELTA_VALUE")))
                    {
                        etyOPCSampleGrp.DeltaValue = Convert.ToDouble(drReader["DELTA_VALUE"]);
                    }
                    if (!drReader.IsDBNull(drReader.GetOrdinal("DISABLE")))
                    {
                        if (drReader["DISABLE"].ToString() == "Y")
                        {
                            etyOPCSampleGrp.Disabled = true;
                            //TODO CHECK ERROR
                        }
                        else
                        {
                            etyOPCSampleGrp.Disabled = false;
                        }
                    }
                    etyOPCGrpList.Add(etyOPCSampleGrp);
                }
            }
            catch (System.Exception ex)
            {
                LogHelper.Error(CLASS_NAME, Function_Name, ex.ToString());
            }

            if (drReader != null)
            {
                drReader.Close();
                drReader.Dispose();
            }

            LogHelper.Trace(CLASS_NAME, Function_Name, "Function_Exited");
            return(etyOPCGrpList);
        }
        public List <EtyOPCSampleGroup> GetAllOPCGrpsBySort(string sortColumn, string sortOrder)
        {
            string Function_Name = "GetAllOPCGrpsBySort";

            LogHelper.Trace(CLASS_NAME, Function_Name, string.Format("Function_Entered with params - {0},{1}", sortColumn, sortOrder));
            List <EtyOPCSampleGroup> etyOPCGrpList = new List <EtyOPCSampleGroup>();
            string localSQL;

            localSQL = " SELECT SAMPLE_GRP_ID,SAMPLE_GRP_NAME,SAMPLE_GRP_DESC,SAMPLE_INTERVAL,INTERVAL_TYPE,START_TIME,DELTA_VALUE,DISABLE "
                       + " FROM OPC_DT_SAMPLE_GRP";
            localSQL += " ORDER BY " + sortColumn;
            sortOrder = sortOrder.ToUpper();
            if (sortOrder.Equals("ASCENDING") || sortOrder.Equals("ASC"))
            {
                localSQL += " ASC ";
            }
            else
            {
                localSQL += " DESC ";
            }

            System.Data.IDataReader drReader = SimpleDatabase.GetInstance().ExecuteQuery(localSQL);

            try
            {
                while (drReader != null && drReader.Read())
                {
                    EtyOPCSampleGroup etyOPCSampleGrp = new EtyOPCSampleGroup();
                    if (!drReader.IsDBNull(drReader.GetOrdinal("SAMPLE_GRP_ID")))
                    {
                        etyOPCSampleGrp.SampleGrpID = Convert.ToDouble(drReader["SAMPLE_GRP_ID"]);
                    }
                    if (!drReader.IsDBNull(drReader.GetOrdinal("SAMPLE_GRP_NAME")))
                    {
                        etyOPCSampleGrp.SampleGrpName = DAOHelper.convert8859P1ToGB2312(drReader["SAMPLE_GRP_NAME"].ToString());
                    }
                    if (!drReader.IsDBNull(drReader.GetOrdinal("SAMPLE_GRP_DESC")))
                    {
                        etyOPCSampleGrp.SampleGrpDescription = DAOHelper.convert8859P1ToGB2312(drReader["SAMPLE_GRP_DESC"].ToString());
                    }

                    if (!drReader.IsDBNull(drReader.GetOrdinal("SAMPLE_INTERVAL")))
                    {
                        etyOPCSampleGrp.Interval = Convert.ToDouble(drReader["SAMPLE_INTERVAL"]);
                    }
                    if (!drReader.IsDBNull(drReader.GetOrdinal("INTERVAL_TYPE")))
                    {
                        etyOPCSampleGrp.IntervalType = drReader["INTERVAL_TYPE"].ToString();
                    }
                    if (!drReader.IsDBNull(drReader.GetOrdinal("START_TIME")))
                    {
                        etyOPCSampleGrp.StartTime = drReader["START_TIME"].ToString();
                    }

                    if (!drReader.IsDBNull(drReader.GetOrdinal("DELTA_VALUE")))
                    {
                        etyOPCSampleGrp.DeltaValue = Convert.ToDouble(drReader["DELTA_VALUE"]);
                    }
                    if (!drReader.IsDBNull(drReader.GetOrdinal("DISABLE")))
                    {
                        if (drReader["DISABLE"].ToString() == "Y")
                        {
                            etyOPCSampleGrp.Disabled = true;
                        }
                        else
                        {
                            etyOPCSampleGrp.Disabled = false;
                        }
                    }
                    etyOPCGrpList.Add(etyOPCSampleGrp);
                }
            }
            catch (System.Exception ex)
            {
                LogHelper.Error(CLASS_NAME, Function_Name, ex.ToString());
            }

            if (drReader != null)
            {
                drReader.Close();
                drReader.Dispose();
            }


            LogHelper.Trace(CLASS_NAME, Function_Name, "Function_Exited");
            return(etyOPCGrpList);
        }