/// <summary> /// Get all object prepare to send to server /// </summary> /// <param name="KeyColumn"></param> /// <returns></returns> public static List <T> GetAllToSend(string KeyColumn) { string tableName = WebCore.GetTableName(typeof(T)); string SQL = "SELECT * FROM [" + tableName + "] WHERE " + KeyColumn + " NOT IN (SELECT " + KeyColumn + " FROM [Syn" + tableName + "])"; List <T> result = null; DataSet dataset = SqlHelper.ExecuteDataset(Config.ConnectionString, CommandType.Text, SQL); if (dataset != null && dataset.Tables.Count > 0) { DataTable table = dataset.Tables[0]; result = new List <T>(); foreach (DataRow row in table.Rows) { T obj = GetObject(row); result.Add(obj); } table.Dispose(); } dataset.Dispose(); return(result); }
public static bool SaveLog(List <T> list) { string tableName = WebCore.GetTableName(typeof(T)); PropertyInfo[] infos = (typeof(T)).GetProperties(); string KeyColumn = string.Empty; int KeyIndex = -1; foreach (PropertyInfo info in infos) { KeyIndex++; if (info.PropertyType.Name == "ExtensionDataObject") { continue; } KeyColumn = info.Name; break; } //----------------------------------------------------------------------------------------------------- //--------------------------------SAVE TO MAPPING TABLE------------------------------------------------ try { foreach (T obj in list) { //Add to log table string SQL2 = "INSERT INTO [Syn" + tableName + "] VALUES (@" + KeyColumn + ")"; SqlParameter[] parames2 = new SqlParameter[] { new SqlParameter("@" + KeyColumn, infos[KeyIndex].GetValue(obj, null)) }; int j = SqlHelper.ExecuteNonQuery(Config.ConnectionString, CommandType.Text, SQL2, parames2); } //if (j == -1) return false; return(true); } catch { return(false); } }
/// <summary> /// Send an object to server /// </summary> /// <param name="ClientID"></param> /// <param name="obj"></param> /// <returns></returns> public static bool SendToSV(string ClientID, T obj) { string KeyColumn = string.Empty; object KeyValue = null; //Another parameter in table which is referenced string tableName = WebCore.GetTableName(typeof(T)); PropertyInfo[] infos = (typeof(T)).GetProperties(); try { //Parameter root - ClientID List <SqlParameter> parames = new List <SqlParameter>(); SqlParameter param0 = new SqlParameter("@ClientID", ClientID); parames.Add(param0); string SQL = "INSERT INTO [" + tableName + "] VALUES (@ClientID"; int KeyIndex = -1; foreach (PropertyInfo info in infos) { KeyIndex++; //remove uneccessary column if (info.PropertyType.Name == "ExtensionDataObject") { continue; } if (info.PropertyType != typeof(string) && info.PropertyType.GetInterface(typeof(IEnumerable).Name) != null && info.PropertyType.GetInterface(typeof(IEnumerable <>).Name) != null) { continue; } object valueP = info.GetValue(obj, null); if (KeyColumn == string.Empty) { KeyColumn = info.Name; } if (KeyValue == null) { KeyValue = valueP; } if (valueP is DateTime && (DateTime)valueP == DateTime.MinValue) { valueP = DBNull.Value; } SqlParameter param = new SqlParameter("@" + info.Name, valueP ?? DBNull.Value); parames.Add(param); SQL += ", @" + info.Name; } SQL += ")"; //--------------------------------DELETE IF EXIST FROM SERVER TABLE----------------------------------- string sqlDelete = "DELETE FROM [" + tableName + "] WHERE ClientID=@ClientID AND " + KeyColumn + "=@" + KeyColumn; SqlParameter paramClientID = new SqlParameter("@ClientID", ClientID); SqlParameter paramKeyColumn = new SqlParameter("@" + KeyColumn, KeyValue ?? DBNull.Value); SqlHelper.ExecuteNonQuery(Config.SVConnectionString, CommandType.Text, sqlDelete, new SqlParameter[] { paramClientID, paramKeyColumn }); //--------------------------------SAVE TO SERVER TABLE------------------------------------------------ int i = SqlHelper.ExecuteNonQuery(Config.SVConnectionString, CommandType.Text, SQL, parames.ToArray()); if (i == -1) { return(false); } return(true); } catch (Exception ex) { return(false); } }