|
- using System;
- using System.Collections.Generic;
- using System.Configuration;
- using System.Data;
- using System.Linq;
- using System.Text;
- using System.Web.Script.Serialization;
- using CnasSynchronousCommon;
- using CnasSynchrousModel;
-
- namespace CnasSynchronusClient
- {
- public class MySQLCNASDataOperationByWeb : ICnasDataOperation
- {
- public SendDataOperation SendDataToWeb { get; set; }
-
- private readonly string URL=GlobalCommonOperation.strWebApiUrl;
-
- public bool CheckMacMessage(DataBaseInfo dataBase, string strMac)
- {
- bool bReturn = false;
- //组织数据
- SendDataToWeb = new SendDataOperation {
- Url = URL,
- Route = "/CnasSync/CheckMacMessage",
- SendMethod = "post",
- SendContent = new ComputeMessageParam {
- DbType=dataBase.DataBaseCode,
- MacMessage=strMac
- }
- };
- //发送数据并接收
- SendDataToWeb.SendData();
-
- //处理接收数据
- if (SendDataToWeb.IfSuccess)
- {
- JsonResult<bool> RequestData= new JavaScriptSerializer().Deserialize<JsonResult<bool>>(SendDataToWeb.RequestData);
- if (RequestData.code > 0)
- {
- bReturn = RequestData.data;
- }
- }
- return bReturn;
- }
-
- public DataTable GetAllCNASTablesName(DataBaseInfo dataBase)
- {
- DataTable dt = new DataTable();
- //组织数据
- SendDataToWeb = new SendDataOperation
- {
- Url = URL,
- Route = "/CnasSync/GetAllTableNameByServerName",
- SendMethod = "post",
- SendContent = new ApiBaseParam
- {
- DbType=dataBase.DataBaseCode
- }
- };
- //发送数据并接收
- SendDataToWeb.SendData();
-
- //处理接收数据
- if (SendDataToWeb.IfSuccess)
- {
- JsonResult<string> RequestData = new JavaScriptSerializer().Deserialize<JsonResult<string>>(SendDataToWeb.RequestData);
- if (RequestData.code > 0)
- {
- dt =TransConvert.XMLToDataTable(RequestData.data);
- }
- }
- return dt;
- }
-
- public DataTable GetCNASTablesStruct(string strTableName, DataBaseInfo dataBase)
- {
- DataTable dt = new DataTable();
- //组织数据
- SendDataToWeb = new SendDataOperation
- {
- Url = URL,
- Route = "/CnasSync/GetTableStructByTableName",
- SendMethod = "post",
- SendContent = new TableMessageParam
- {
- DbType = dataBase.DataBaseCode,
- Condition=new ConditionParams {
- TableName=strTableName
- }
- }
- };
- //发送数据并接收
- SendDataToWeb.SendData();
-
- //处理接收数据
- if (SendDataToWeb.IfSuccess)
- {
- JsonResult<string> RequestData = new JavaScriptSerializer().Deserialize<JsonResult<string>>(SendDataToWeb.RequestData);
- if (RequestData.code > 0)
- {
- dt = TransConvert.XMLToDataTable(RequestData.data);
- }
- }
- return dt;
- }
-
- public DataTable GetCNASTableTypeLenth(string strTableName, DataBaseInfo dataBase)
- {
- DataTable dt = new DataTable();
- //组织数据
- SendDataToWeb = new SendDataOperation
- {
- Url = URL,
- Route = "/CnasSync/GetCNASTableTypeLength",
- SendMethod = "post",
- SendContent = new TableMessageParam
- {
- DbType = dataBase.DataBaseCode,
- Condition = new ConditionParams
- {
- TableName = strTableName
- }
- }
- };
- //发送数据并接收
- SendDataToWeb.SendData();
-
- //处理接收数据
- if (SendDataToWeb.IfSuccess)
- {
- JsonResult<string> RequestData = new JavaScriptSerializer().Deserialize<JsonResult<string>>(SendDataToWeb.RequestData);
- if (RequestData.code > 0)
- {
- dt = TransConvert.XMLToDataTable(RequestData.data);
- }
- }
- return dt;
- }
-
-
- public string GetMaxTimeByTableName(DataBaseInfo dataBase, string strTableName, string strDateColumn, string strInstrumentColumn, string strInstrumentValue)
- {
- string strReturnValue = "";
- //组织数据
- SendDataToWeb = new SendDataOperation
- {
- Url = URL,
- Route = "/CnasSync/GetMaxTimeByTableName",
- SendMethod = "post",
- SendContent = new TableMessageParam
- {
- DbType = dataBase.DataBaseCode,
- Condition = new ConditionParams
- {
- TableName = strTableName,
- DateColumn=strDateColumn,
- ExColumnName=strInstrumentColumn,
- ExColumnValue=strInstrumentValue
- }
- }
- };
- //发送数据并接收
- SendDataToWeb.SendData();
-
- //处理接收数据
- if (SendDataToWeb.IfSuccess)
- {
- JsonResult<string> RequestData = new JavaScriptSerializer().Deserialize<JsonResult<string>>(SendDataToWeb.RequestData);
- if (RequestData.code > 0)
- {
- strReturnValue = RequestData.data;
- }
- }
- return strReturnValue;
- }
-
- public int InsertDataToCNASTable(DataTable dt, DataBaseInfo dataBase, List<SyncParamasInfo> syncParamasInfos, string strInstrumentColumn, List<CnasConditionMapValue> lstFixedValue = null)
- {
- int ReturnValue = 0;
- //获取发送数据
- if (dt.Rows.Count <= 0) return 0;
- if (syncParamasInfos.Count <= 0) return 0;
- //获取唯一健组(关键字段)
- var query = from p in syncParamasInfos
- where p.IfPrimaryKey == true
- select new
- {
- p.TargetField
- };
- List<string> lstKeyColumns = new List<string>();
- foreach (var item in query)
- {
- lstKeyColumns.Add(item.TargetField);
- }
-
- //构建SQL语句
- string strSql_part1 = "";
- string strSql_part2 = "";
- List<string> lstColumnName = new List<string>();
- foreach (var item in syncParamasInfos)
- {
- if (!lstColumnName.Contains(item.TargetField.ToLower()))
- {
- strSql_part1 += item.TargetField + ",";
- strSql_part2 += string.Format("@{0},", item.TargetField.ToLower());
- lstColumnName.Add(item.TargetField.ToLower());
- }
- }
-
- //如果映射列中不包含固定列,则需要将这些列添加到SQL语句中
- if (lstFixedValue != null)
- {
- foreach (var cnasfield in lstFixedValue)
- {
- if (cnasfield.TableName != syncParamasInfos[0].TargetTable) continue;
- if (!lstColumnName.Contains(cnasfield.ColumnName.ToLower()))
- {
- strSql_part1 += cnasfield.ColumnName + ",";
- strSql_part2 += string.Format("@{0},", cnasfield.ColumnName.ToLower());
-
- lstColumnName.Add(cnasfield.ColumnName.ToLower());
- }
- }
- }
- //增加仪器编号数据
- if (!string.IsNullOrWhiteSpace(strInstrumentColumn) && !lstColumnName.Contains(strInstrumentColumn.ToLower()))
- {
- strSql_part1 += strInstrumentColumn + ",";
- strSql_part2 += string.Format("@{0},", strInstrumentColumn);
-
- lstColumnName.Add(strInstrumentColumn.ToLower());
- }
-
- //组织发送数据
- SendDataToWeb = new SendDataOperation
- {
- Url = URL,
- Route = "/CnasSync/InsertDataToCNASTable",
- SendMethod = "post",
- SendContent = new InsertValueMessageParam
- {
- DbType = dataBase.DataBaseCode,
- Data = TransConvert.DataTableToXML(dt),
- TableName= syncParamasInfos[0].TargetTable,
- ColumnNames=lstColumnName,
- KeyColumnNames=lstKeyColumns
- }
- };
- //发送数据并接收
- SendDataToWeb.SendData();
-
- //处理接收数据
- if (SendDataToWeb.IfSuccess)
- {
- JsonResult<int> RequestData = new JavaScriptSerializer().Deserialize<JsonResult<int>>(SendDataToWeb.RequestData);
- if (RequestData.code > 0)
- {
- ReturnValue = RequestData.data;
- }
- }
- return ReturnValue;
- }
-
-
- public bool TestConnect(DataBaseInfo dataBase)
- {
- bool bReturn = false;
- //组织数据
- SendDataToWeb = new SendDataOperation
- {
- Url = URL,
- Route = "/CnasSync/CheckDatabaseLink",
- SendMethod = "post",
- SendContent = new ApiBaseParam {
- DbType=dataBase.DataBaseCode
- }
- };
- //发送数据并接收
- SendDataToWeb.SendData();
-
- //处理接收数据
- if (SendDataToWeb.IfSuccess)
- {
- JsonResult<bool> RequestData = new JavaScriptSerializer().Deserialize<JsonResult<bool>>(SendDataToWeb.RequestData);
- if (RequestData.code > 0)
- {
- bReturn = RequestData.data;
- }
- }
- return bReturn;
- }
-
- public DataTable GetLoginNameByPwd(DataBaseInfo dataBase, string strUserName, string strPwd)
- {
- DataTable dt=new DataTable();
- //组织数据
- SendDataToWeb = new SendDataOperation
- {
- Url = URL,
- Route = "/CnasSync/GetLoginMessage",
- SendMethod = "post",
- SendContent = new LoginMessageParam
- {
- DbType = dataBase.DataBaseCode,
- LoginName = strUserName,
- LoginPwd = strPwd
- }
- };
- //发送数据并接收
- SendDataToWeb.SendData();
-
- //处理接收数据
- if (SendDataToWeb.IfSuccess)
- {
- JsonResult<string> RequestData = new JavaScriptSerializer().Deserialize<JsonResult<string>>(SendDataToWeb.RequestData);
- if (RequestData.code > 0)
- {
- dt = TransConvert.XMLToDataTable(RequestData.data);
- }
- }
- return dt;
- }
-
- public DataTable GetTableData(DataBaseInfo dataBase, string strSql)
- {
- throw new NotImplementedException();
- }
-
- public bool InsertTableData(DataBaseInfo dataBase, string strSql)
- {
- throw new NotImplementedException();
- }
- }
- }
|