public override string CreateSerializationQuery() { StringBuilder queryPt1 = new StringBuilder(); StringBuilder queryPt2 = new StringBuilder(); queryPt1.Append("UPDATE ").Append(base.table).Append(" SET "); queryPt2.Append(" WHERE "); bool startPt1 = true; bool startPt2 = true; for (int i = 0; i < base.properties.Length; i++) { ColumnAttribute attribute = AttributeUtilities.GetColumnAttribute(base.properties[i]); if (attribute != null) { Object ret = base.properties[i].GetGetMethod().Invoke(base.data, null); if (!(attribute is IPrimaryKeyAttribute) && ret != null) { if (!startPt1) { queryPt1.Append(", "); } startPt1 = false; SqlConvert(ref ret); queryPt1.Append(AttributeUtilities.GetColumnMapping(base.properties[i])).Append(" = ").Append(ret); } else if (attribute is IPrimaryKeyAttribute && ret != null) { if (!startPt2) { queryPt2.Append(" AND "); } startPt2 = false; SqlConvert(ref ret); queryPt2.Append(AttributeUtilities.GetColumnMapping(base.properties[i])).Append(" = ").Append(ret); } else if (attribute is IPrimaryKeyAttribute && ret == null) { throw new SerializerException("All primary keys must be set for UpdateByPrimaryKeySerializationStrategy to work!"); } } } return(queryPt1.Append(queryPt2).ToString()); }
protected List <String> GetConstrainingAttributes(String op) { List <string> list = new List <string>(); PropertyInfo[] properties = data.GetType().GetProperties(); foreach (PropertyInfo property in properties) { ColumnAttribute attribute = (ColumnAttribute)Attribute.GetCustomAttribute(property, typeof(ColumnAttribute)); if (attribute != null) { MethodInfo method = property.GetGetMethod(); Object ret = method.Invoke(data, null); SqlConvert(ref ret); if (data.ContainsConstrainingAttribute(QueryStrategyConfiguration.PRIMARYKEY) && attribute is IPrimaryKeyAttribute) { StringBuilder tmp = new StringBuilder().Append(AttributeUtilities.GetColumnMapping(property)); string equal = " " + op + " "; if (ret.ToString().Equals("NULL")) { equal = " IS "; } tmp.Append(equal).Append(ret.ToString()); list.Add(tmp.ToString()); } else if ( data.ContainsConstrainingAttribute(property.Name) || data.ContainsConstrainingAttribute(AttributeUtilities.GetColumnMapping(property)) ) { StringBuilder tmp = new StringBuilder().Append(AttributeUtilities.GetColumnMapping(property)); string equal = " " + op + " "; if (ret.ToString().Equals("NULL")) { equal = " IS "; } tmp.Append(equal).Append(ret.ToString()); list.Add(tmp.ToString()); } } } return(list); }
public override string CreateSerializationQuery() { StringBuilder queryPt1 = new StringBuilder(); queryPt1.Append("INSERT INTO ").Append(base.table).Append(" ("); StringBuilder queryPt2 = new StringBuilder(); queryPt2.Append(") VALUES ("); bool start = true; for (int i = 0; i < base.properties.Length; i++) { ColumnAttribute attribute = AttributeUtilities.GetColumnAttribute(base.properties[i]); if (attribute != null && !(attribute is AutoIncPrimaryKeyAttribute)) { if (!start) { queryPt1.Append(", "); queryPt2.Append(", "); } start = false; MethodInfo m = base.properties[i].GetGetMethod(); Object ret = m.Invoke(base.data, null); if (attribute is IPrimaryKeyAttribute && ret == null) { throw new SerializerException("All non-auto-incrementing primary keys must be set for InsertSerializationQueryStrategy to work!"); } SqlConvert(ref ret); queryPt1.Append(AttributeUtilities.GetColumnMapping(properties[i])); queryPt2.Append(ret.ToString()); } } queryPt2.Append(")"); return(queryPt1.Append(queryPt2).ToString()); }
public override string CreateSerializationQuery() { StringBuilder queryPt1 = new StringBuilder(); queryPt1.Append("DELETE FROM ").Append(base.table).Append(" WHERE ("); bool start = true; for (int i = 0; i < base.properties.Length; i++) { ColumnAttribute attribute = AttributeUtilities.GetColumnAttribute(base.properties[i]); if (attribute is IPrimaryKeyAttribute) { if (!start) { queryPt1.Append(" AND "); } MethodInfo m = base.properties[i].GetGetMethod(); Object ret = m.Invoke(base.data, null); if (ret == null) { throw new SerializerException("All primary keys must be set for RemoveSerializationQueryStrategy to work!"); } SqlConvert(ref ret); queryPt1.Append(AttributeUtilities.GetColumnMapping(properties[i])); queryPt1.Append(" = "); queryPt1.Append(ret.ToString()); start = false; } } queryPt1.Append(")"); return(queryPt1.ToString()); }
/// <summary> /// Toes the string helper. /// </summary> /// <param name="data">The ISerializableObject object.</param> /// <param name="descriptionLength">Length of the description.</param> /// <returns></returns> protected string ToStringHelper(SerializableObject data, int descriptionLength) { System.Text.StringBuilder ret = new System.Text.StringBuilder(); for (int i = 0; i < descriptionLength; i++) { ret.Append("-"); } ret.Append("\n"); ret.Append(AttributeUtilities.GetTableMapping(data)).Append(" Row\n"); for (int i = 0; i < descriptionLength; i++) { ret.Append("-"); } ret.Append("\n"); PropertyInfo[] properties = data.GetType().GetProperties(); foreach (PropertyInfo property in properties) { ColumnAttribute attribute = AttributeUtilities.GetColumnAttribute(property); if (attribute != null) { string columnName = AttributeUtilities.GetColumnMapping(property); ret.Append(columnName); for (int i = columnName.Length; i < descriptionLength; i++) { ret.Append("."); } ret.Append(": "); MethodInfo m = property.GetGetMethod(); Object obj = m.Invoke(data, null); ret.Append(obj); ret.Append("\n"); } } return(ret.ToString()); }