public List <MatchServerList> GetMatchServer(SqlBaseItemXml basemodel, ConditionFieldModel conditionfield) { int matchnum = 0; List <MatchServerList> ServerList = new List <MatchServerList>(); List <SqlFieldItemXml> fieldlist = new List <SqlFieldItemXml>(); if (conditionfield != null && conditionfield.List != null && conditionfield.List.Count > 0) { List <SqlFieldItemXml> templist = new List <SqlFieldItemXml>(); foreach (var condition in conditionfield.List) { long valuemin = condition.ValueMin; long valuemax = condition.ValueMax; if (matchnum < 1) { var tempfieldlist = DBConfig.GetFieldXmlConfig(basemodel).SqlFieldList.Where(m => m.FieldName == condition.FieldName).ToList(); foreach (var item in tempfieldlist) { if (GetMatchValid(item, condition.ValueMin, condition.ValueMax)) { ServerList.Add(GetMatchObject(item)); } } } else { int conditionvalidnum = 0; foreach (var serverlist in ServerList.ToList()) { var tempfield = DBConfig.GetFieldXmlConfig(basemodel).SqlFieldList.Where(m => m.TableNumber == serverlist.TableNumber && m.FieldName == condition.FieldName).ToList(); if (tempfield != null) { foreach (var itemfield in tempfield) { if (GetMatchValid(itemfield, condition.ValueMin, condition.ValueMax)) { conditionvalidnum++; break; } } } if (conditionvalidnum < 1) { ServerList.Remove(serverlist); } } } matchnum++; } } return(ServerList); }
public bool Update(SqlBaseItemXml basemodel, long rowid, Dictionary <string, object> updatefieldlist) { var fieldmodel = DBConfig.GetFieldXmlConfig(basemodel).SqlFieldList.Where(m => m.FieldName == basemodel.PrimarykeyName && m.ValueMin <= rowid && m.ValueMax >= rowid).FirstOrDefault(); if (fieldmodel == null) { return(false); } var servermodel = DBConfig.GetServerItemXmlConfig(basemodel, fieldmodel.ServerNumber); var databasemodel = DBConfig.GetDatabaseItemXmlConfig(basemodel, fieldmodel.DatabaseNumber); var tablemodel = DBConfig.GetTableItemXmlConfig(basemodel, fieldmodel.TableNumber); return(DBProxyAction.Update(basemodel, rowid, servermodel, databasemodel, tablemodel, updatefieldlist)); }
public static void AddBulkRow(SqlBaseItemXml basemodel, SqlServerItemXml servermodel, string connstr, DataTable bulkdata, long databasenumber, long tablenumber, List <string> fieldtotal) { if (fieldtotal != null && fieldtotal.Count > 0) { var fieldlist = DBConfig.GetFieldXmlConfig(basemodel); foreach (var fieldname in fieldtotal) { string currentfieldname = fieldname; long rowmin = CommonHelper.ToLong(bulkdata.Compute("min(" + currentfieldname + ")", "")); long rowmax = CommonHelper.ToLong(bulkdata.Compute("max(" + currentfieldname + ")", "")); var fileldobjecttemp = fieldlist.SqlFieldList.Where(m => m.FieldName == currentfieldname && m.TableNumber == tablenumber).FirstOrDefault(); if (fileldobjecttemp != null) { DBConfig.FieldRemove(basemodel, fileldobjecttemp); if (fileldobjecttemp.ValueMin > rowmin) { fileldobjecttemp.ValueMin = rowmin; } if (fileldobjecttemp.ValueMax < rowmax) { fileldobjecttemp.ValueMax = rowmax; } DBConfig.FieldAdd(basemodel, fileldobjecttemp); } else { SqlFieldItemXml fileldmodel = new SqlFieldItemXml(); fileldmodel.BaseNumber = servermodel.BaseNumber; fileldmodel.ServerNumber = servermodel.Number; fileldmodel.DatabaseNumber = databasenumber; fileldmodel.TableNumber = tablenumber; fileldmodel.Number = DBConfig.GetFieldNumber; fileldmodel.FieldName = currentfieldname; fileldmodel.ValueMin = rowmin; fileldmodel.ValueMax = rowmax; DBConfig.FieldAdd(basemodel, fileldmodel); } } } DBProxy.GetDBHelper(servermodel.DBType).WriteBlockDataToDB(connstr, bulkdata); }
public bool Delete(SqlBaseItemXml basemodel, long rowid) { bool revalue = false; bool changexml = false; var fieldmodel = DBConfig.GetFieldXmlConfig(basemodel).SqlFieldList.Where(m => m.FieldName == basemodel.PrimarykeyName && m.ValueMin <= rowid && m.ValueMax >= rowid).FirstOrDefault(); if (fieldmodel == null) { return(false); } var servermodel = DBConfig.GetServerItemXmlConfig(basemodel, fieldmodel.ServerNumber); var databasemodel = DBConfig.GetDatabaseItemXmlConfig(basemodel, fieldmodel.DatabaseNumber); var tablemodel = DBConfig.GetTableItemXmlConfig(basemodel, fieldmodel.TableNumber); revalue = DBProxyAction.Delete(basemodel, rowid, servermodel, databasemodel, tablemodel, fieldmodel); if (revalue) { if (fieldmodel.ValueMin == rowid) { DBConfig.FieldRemove(basemodel, fieldmodel); fieldmodel.ValueMin = rowid + 1; DBConfig.FieldAdd(basemodel, fieldmodel); changexml = true; } else if (fieldmodel.ValueMax == rowid) { DBConfig.FieldRemove(basemodel, fieldmodel); fieldmodel.ValueMax = rowid - 1; DBConfig.FieldAdd(basemodel, fieldmodel); changexml = true; } } if (changexml) { new ManagerConfig().SaveConfigField(basemodel); } return(revalue); }
public static List <SqlFieldItemXml> GetFieldItemXmlConfigList(SqlBaseItemXml basemodel, long TableNumber, bool IsDelete = false) { return(DBConfig.GetFieldXmlConfig(basemodel).SqlFieldList.Where(m => m.IsDelete == IsDelete && m.TableNumber == TableNumber).ToList()); }
public static SqlFieldItemXml GetFieldItemXmlConfig(SqlBaseItemXml basemodel, long Number, bool IsDelete = false) { return(DBConfig.GetFieldXmlConfig(basemodel).SqlFieldList.Where(m => m.IsDelete == IsDelete && m.Number == Number).FirstOrDefault()); }