public void SaveUpdateBaseObject <T>(T businessObject, long userID) where T : class, IBaseObject { businessObject.ModifiedByID = userID; businessObject.ModifiedDate = DateTime.Now; if (businessObject.ObjectTypeID == null || businessObject.ObjectTypeID == 0) { businessObject.ObjectTypeID = GetObjectTypeID(businessObject.GetType().Name); } if (string.IsNullOrEmpty(businessObject.Name)) { businessObject.Name = "none"; } if (string.IsNullOrEmpty(businessObject.Details)) { businessObject.Details = "none"; } var properties = businessObject.GetType().GetProperties().Where( prop => Attribute.IsDefined(prop, typeof(FieldMappingForObjectTableAttribute))); var propertyNamesAndValues = SqlQueryProvider.GetPropertyNamesForDBColumnsAndValuesForUpdate <T>(properties, businessObject); string query = SqlQueryProvider.UpdateBaseObject(propertyNamesAndValues, businessObject.ObjectID.ToString()); using (SqlConnection conn = new SqlConnection(Configuration.DefaultConnectionString)) using (SqlCommand cmd = new SqlCommand(query, conn)) { conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); } }
public T SaveUpdateBusinessObject <T>(T businessObject) where T : class, IBaseObject { var table = GetTableName <T>(); var properties = businessObject.GetType().GetProperties().Where( prop => Attribute.IsDefined(prop, typeof(FieldMappingForMainTableAttribute))); if (properties.Any()) { var propertyNamesAndValues = SqlQueryProvider.GetPropertyNamesForDBColumnsAndValuesForUpdate <T>(properties, businessObject); string query = SqlQueryProvider.UpdateBusinessObject(table, propertyNamesAndValues, businessObject.ObjectID.ToString()); using (SqlConnection conn = new SqlConnection(Configuration.DefaultConnectionString)) using (SqlCommand cmd = new SqlCommand(query, conn)) { conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); } } return(SelectGetBusinessObjectAfterSave <T>(businessObject, table, businessObject.ObjectID)); }