/// <summary> /// Find all changes matching the filters provided. /// </summary> /// <param name="filter">Find all changes matching the filters provided.</param> /// <returns></returns> /// <remarks></remarks> public static List <ChangeLogItem> LoadCollection(ChangeLogItemFilter filter) { List <ChangeLogItem> results = new List <ChangeLogItem>(); SqlCommand cmd = new SqlCommand(); StringBuilder select = new StringBuilder(1000); if (filter.ID != null) { select.Append("CLM.change_log_master_id=@change_log_master_id"); cmd.Parameters.Add(new SqlParameter("@change_log_master_id", SqlDbType.Int) { Value = filter.ID }); } if (filter.OwnerID != null) { if ((select.Length > 0)) { select.Append(" AND "); } select.Append("CLM.owner_id=@owner_id"); cmd.Parameters.Add(new SqlParameter("@owner_id", SqlDbType.Int) { Value = filter.OwnerID }); } if (filter.OwnerName != null) { if ((select.Length > 0)) { select.Append(" AND "); } select.Append("CLM.owner_name=@owner_name"); cmd.Parameters.Add(new SqlParameter("@owner_name", SqlDbType.NVarChar) { Value = filter.OwnerName }); } if (filter.Type != null) { if ((select.Length > 0)) { select.Append(" AND "); } select.Append("CLM.log_type=@log_type"); cmd.Parameters.Add(new SqlParameter("@log_type", SqlDbType.NVarChar) { Value = filter.Type }); } if (filter.Timestamp != null) { if ((select.Length > 0)) { select.Append(" AND "); } select.Append("CLM.timestamp=@timestamp"); cmd.Parameters.Add(new SqlParameter("@timestamp", SqlDbType.DateTime) { Value = filter.Timestamp }); } if (filter.PropertyName != null) { if ((select.Length > 0)) { select.Append(" AND "); } select.Append("CLM.property_name=@property_name"); cmd.Parameters.Add(new SqlParameter("@property_name", SqlDbType.NVarChar) { Value = filter.PropertyName }); } select.Insert(0, "SELECT * FROM Change_Log_Master CLM {0}"); using (SqlConnection cn = new SqlConnection(HConfig.DBConnectionString)) { using (DataTable dt = HDatabase.FillDataTable(cn, cmd)) { foreach (DataRow dr in dt.Rows) { results.Add(new ChangeLogItem(dr)); } } } return(results); }
/// <summary> /// Find a single change that matches the filters provided. /// </summary> /// <param name="filter">Find a single changes with the given filter parameters.</param> /// <returns></returns> /// <remarks></remarks> public static ChangeLogItem Load(ChangeLogItemFilter filter) { List <ChangeLogItem> lResults = ChangeLogItem.LoadCollection(filter); return(lResults.Count == 1 ? lResults[0] : null); }