public override void ExecuteNonQuery()
        {
            Do_Constants.Str_Request_PreparedQuery_Parameters Rpqp = new Do_Constants.Str_Request_PreparedQuery_Parameters();
            Rpqp.Parameters = this.mParameters;

            Do_Constants.Str_Request_Session Rs = new Do_Constants.Str_Request_Session();
            Rs.SessionID = ClsDataAccess_Wcf_Session.Instance.pSessionID;

            Client_WcfService Client = Client_WcfService.CreateObject();
            Client.PreparedQuery_ExecuteNonQuery(Rs, this.mPreparedQuerySessionID, Rpqp);
        }
        public override DataSet ExecuteQuery()
        {
            Do_Constants.Str_Request_PreparedQuery_Parameters Rpqp = new Do_Constants.Str_Request_PreparedQuery_Parameters();
            Rpqp.Parameters = this.mParameters;

            Do_Constants.Str_Request_Session Rs = new Do_Constants.Str_Request_Session();
            Rs.SessionID = ClsDataAccess_Wcf_Session.Instance.pSessionID;

            Client_WcfService Client = Client_WcfService.CreateObject();
            String ResponseData = Client.PreparedQuery_ExecuteQuery(Rs, this.mPreparedQuerySessionID, Rpqp);

            SimpleDataSet Sds = SimpleDataSet.Deserialize(ResponseData);
            return Sds.ToDataSet();
        }
        public override void Prepare()
        {
            Do_Constants.Str_Request_PreparedQuery_Prepare Rpqp = new Do_Constants.Str_Request_PreparedQuery_Prepare();
            Rpqp.Query = this.mQuery;
            Rpqp.Parameters = this.mParameters;
            Rpqp.ConnectionString = this.mCn.pConnectionString;

            Do_Constants.Str_Request_Session Rs = new Do_Constants.Str_Request_Session();
            Rs.SessionID = ClsDataAccess_Wcf_Session.Instance.pSessionID;

            Client_WcfService Client = Client_WcfService.CreateObject();
            String ResponseData = Client.PreparedQuery_Prepare(Rs, Rpqp);

            this.mPreparedQuerySessionID = ResponseData;
        }
        public void SetSystemParameter(Interface_Connection Connection, string ParameterName, string ParameterValue)
        {
            Do_Constants.Str_Request_SystemParameter Rsp = new Do_Constants.Str_Request_SystemParameter();
            Rsp.ParameterName = ParameterName;
            Rsp.ParameterValue = ParameterValue;
            Rsp.ConnectionString = (Connection as Connection_Wcf).pConnectionString;

            Do_Constants.Str_Request_Session Rs = new Do_Constants.Str_Request_Session();
            Rs.SessionID = ClsDataAccess_Wcf_Session.Instance.pSessionID;

            Client_WcfService Client = Client_WcfService.CreateObject();
            Client.SetSystemParameter(Rs, Rsp);
        }
        public bool SaveDataRow(DataRow ObjDataRow, string TableName, string SchemaName = "", bool IsDelete = false, List<string> CustomKeys = null)
        {
            Connection_Wcf Cn = this.GetConnection();

            Do_Constants.Str_Request_Save Rs = new Do_Constants.Str_Request_Save();
            Rs.TableName = TableName;
            Rs.SchemaName = SchemaName;
            Rs.IsDelete = IsDelete;
            Rs.CustomKeys = CustomKeys;
            Rs.ConnectionString = Cn.pConnectionString;

            SimpleDataRow Sdr = new SimpleDataRow(ObjDataRow);
            Rs.Serialized_ObjectDataRow = Sdr.Serialize();

            Do_Constants.Str_Request_Session Rss = new Do_Constants.Str_Request_Session();
            Rss.SessionID = ClsDataAccess_Wcf_Session.Instance.pSessionID;

            Client_WcfService Client = Client_WcfService.CreateObject();
            String ResponseData = Client.SaveDataRow(Rss, Rs);

            Do_Constants.Str_Response_Save Rps = Do_Methods.DeserializeObject_Json<Do_Constants.Str_Response_Save>(ResponseData);
            Boolean SaveResult = Rps.SaveResult;
            DataRow Dr_Response = Rps.Sdr.ToDataRow();

            foreach (DataColumn Dc in ObjDataRow.Table.Columns)
            { ObjDataRow[Dc.ColumnName] = Dr_Response[Dc.ColumnName]; }

            return SaveResult;
        }
        public DataTable Load_TableDetails(string ObjectName, Keys Keys, string Condition, List<Do_Constants.Str_ForeignKeyRelation> ForeignKeys)
        {
            Connection_Wcf Cn = null;
            if (this.mConnection == null)
            {
                Cn = new Connection_Wcf();
                Cn.Connect();
            }
            else
            { Cn = this.mConnection; }

            Do_Constants.Str_Request_Load Rl = new Do_Constants.Str_Request_Load();
            Rl.ObjectName = ObjectName;
            Rl.ForeignKeys = ForeignKeys;
            Rl.Condition = Condition;
            Rl.Key = Keys;
            Rl.ConnectionString = Cn.pConnectionString;

            Do_Constants.Str_Request_Session Rs = new Do_Constants.Str_Request_Session();
            Rs.SessionID = ClsDataAccess_Wcf_Session.Instance.pSessionID;

            Client_WcfService Client = Client_WcfService.CreateObject();
            String ResponseData = Client.Load_TableDetails(Rs, Rl);

            SimpleDataTable Sdt = SimpleDataTable.Deserialize(ResponseData);
            return Sdt.ToDataTable();
        }
        public DataRow Load(string ObjectName, List<string> List_Key, Keys Keys)
        {
            Connection_Wcf Cn = this.GetConnection();

            Do_Constants.Str_Request_Load Rl = new Do_Constants.Str_Request_Load();
            Rl.ObjectName = ObjectName;
            Rl.ObjectKeys = List_Key;
            Rl.Key = Keys;
            Rl.ConnectionString = Cn.pConnectionString;

            Do_Constants.Str_Request_Session Rs = new Do_Constants.Str_Request_Session();
            Rs.SessionID = ClsDataAccess_Wcf_Session.Instance.pSessionID;

            Client_WcfService Client = Client_WcfService.CreateObject();
            String ResponseData = Client.Load(Rs, Rl);

            SimpleDataRow Sdr = SimpleDataRow.Deserialize(ResponseData);
            return Sdr.ToDataRow();
        }
        public DataTable List_Empty(Interface_Connection Cn, string ObjectName)
        {
            Do_Constants.Str_Request_List Rl = new Do_Constants.Str_Request_List();
            Rl.ObjectName = ObjectName;
            Rl.ConnectionString = (Cn as Connection_Wcf).pConnectionString;

            Do_Constants.Str_Request_Session Rs = new Do_Constants.Str_Request_Session();
            Rs.SessionID = ClsDataAccess_Wcf_Session.Instance.pSessionID;

            Client_WcfService Client = Client_WcfService.CreateObject();
            string ResponseData = Client.List_Empty(Rs, Rl);

            SimpleDataTable Sdt = SimpleDataTable.Deserialize(ResponseData);
            return Sdt.ToDataTable();
        }
        public long List_Count(Interface_Connection Cn, string ObjectName, QueryCondition Condition = null)
        {
            Do_Constants.Str_Request_List Rl = new Do_Constants.Str_Request_List();
            Rl.ObjectName = ObjectName;
            Rl.Condition = Condition;
            Rl.ConnectionString = (Cn as Connection_Wcf).pConnectionString;

            Do_Constants.Str_Request_Session Rs = new Do_Constants.Str_Request_Session();
            Rs.SessionID = ClsDataAccess_Wcf_Session.Instance.pSessionID;

            Client_WcfService Client = Client_WcfService.CreateObject();
            Int64 ResponseData = Client.List_Count(Rs, Rl);
            return ResponseData;
        }
        public DataTable List(Interface_Connection Cn, string ObjectName, QueryCondition Condition, string Sort = "", long Top = 0, int Page = 0)
        {
            Do_Constants.Str_Request_List Rl = new Do_Constants.Str_Request_List();
            Rl.ObjectName = ObjectName;
            Rl.Condition = Condition;
            Rl.Sort = Sort;
            Rl.Top = Top;
            Rl.Page = Page;
            Rl.ConnectionString = (Cn as Connection_Wcf).pConnectionString;

            Do_Constants.Str_Request_Session Rs = new Do_Constants.Str_Request_Session();
            Rs.SessionID = ClsDataAccess_Wcf_Session.Instance.pSessionID;

            Client_WcfService Client = Client_WcfService.CreateObject();
            string ResponseData = Client.List(Rs, Rl);

            SimpleDataTable Sdt = SimpleDataTable.Deserialize(ResponseData);
            return Sdt.ToDataTable();
        }
        public DataTable GetTableDef(string TableName)
        {
            Connection_Wcf Cn = null;
            if (this.mConnection == null)
            {
                Cn = new Connection_Wcf();
                Cn.Connect();
            }
            else
            { Cn = this.mConnection; }

            Do_Constants.Str_Request_List Rl = new Do_Constants.Str_Request_List();
            Rl.ObjectName = TableName;
            Rl.ConnectionString = Cn.pConnectionString;

            Do_Constants.Str_Request_Session Rs = new Do_Constants.Str_Request_Session();
            Rs.SessionID = ClsDataAccess_Wcf_Session.Instance.pSessionID;

            Client_WcfService Client = Client_WcfService.CreateObject();
            string ResponseData = Client.GetTableDef(Rs, Rl);

            SimpleDataTable Sdt = SimpleDataTable.Deserialize(ResponseData);
            return Sdt.ToDataTable();
        }
        public string GetSystemParameter(Interface_Connection Connection, string ParameterName, string DefaultValue = "")
        {
            Do_Constants.Str_Request_SystemParameter Rsp = new Do_Constants.Str_Request_SystemParameter();
            Rsp.ParameterName = ParameterName;
            Rsp.ParameterValue = DefaultValue;
            Rsp.ConnectionString = (Connection as Connection_Wcf).pConnectionString;

            Do_Constants.Str_Request_Session Rs = new Do_Constants.Str_Request_Session();
            Rs.SessionID = ClsDataAccess_Wcf_Session.Instance.pSessionID;

            Client_WcfService Client = Client_WcfService.CreateObject();
            String ResponseData = Client.GetSystemParameter(Rs, Rsp);

            return ResponseData;
        }
        public DataTable GetQuery(Interface_Connection Connection, Do_Constants.Str_QuerySource SourceObject, string Fields, QueryCondition Condition, string Sort = "", long Top = 0, int Page = 0)
        {
            Do_Constants.Str_Request_GetQuery Rgq = new Do_Constants.Str_Request_GetQuery();
            Rgq.ObjectQuerySource = SourceObject;
            Rgq.Fields = Fields;
            Rgq.Condition = Condition;
            Rgq.Sort = Sort;
            Rgq.Top = Do_Methods.Convert_Int32(Top);
            Rgq.Page = Page;

            Rgq.ConnectionString = (Connection as Connection_Wcf).pConnectionString;

            Do_Constants.Str_Request_Session Rs = new Do_Constants.Str_Request_Session();
            Rs.SessionID = ClsDataAccess_Wcf_Session.Instance.pSessionID;

            Client_WcfService Client = Client_WcfService.CreateObject();
            string ResponseData = Client.GetQuery(Rs, Rgq);
            SimpleDataTable Sdt = SimpleDataTable.Deserialize(ResponseData);

            return Sdt.ToDataTable();
        }
        public DataSet ExecuteQuery(Interface_Connection Connection, string Query)
        {
            Do_Constants.Str_Request_Execute Rqe = new Do_Constants.Str_Request_Execute();
            Rqe.ConnectionString = (Connection as Connection_Wcf).pConnectionString;
            Rqe.Query = Query;

            Do_Constants.Str_Request_Session Rs = new Do_Constants.Str_Request_Session();
            Rs.SessionID = ClsDataAccess_Wcf_Session.Instance.pSessionID;

            Client_WcfService Client = Client_WcfService.CreateObject();
            String ResponseData = Client.ExecuteQuery(Rs, Rqe);
            SimpleDataSet Sds = SimpleDataSet.Deserialize(ResponseData);

            return Sds.ToDataSet();
        }
        public int ExecuteNonQuery(Interface_Connection Connection, string Query)
        {
            Do_Constants.Str_Request_Execute Rqe = new Do_Constants.Str_Request_Execute();
            Rqe.ConnectionString = (Connection as Connection_Wcf).pConnectionString;
            Rqe.Query = Query;

            Do_Constants.Str_Request_Session Rs = new Do_Constants.Str_Request_Session();
            Rs.SessionID = ClsDataAccess_Wcf_Session.Instance.pSessionID;

            Client_WcfService Client = Client_WcfService.CreateObject();
            String ResponseData = Client.ExecuteNonQuery(Rs, Rqe);
            Int32 Result = (Int32)Do_Methods.DeserializeObject_Json(typeof(Int32), ResponseData);
            return Result;
        }