/// <summary> /// Returns the array of images in the image set, possibly filtered with the filtering parameters. /// </summary> /// <param name="state">Specifies the query state to use.</param> /// <param name="nStartIdx">Specifies a starting index from which the query is to start within the set of images.</param> /// <param name="nQueryCount">Optionally, specifies a number of images to retrieve within the set (default = int.MaxValue).</param> /// <param name="strFilterVal">Optionally, specifies the filter value that the description must match (default = <i>null</i>, which ignores this parameter).</param> /// <param name="nBoostVal">Optionally, specifies the boost value that the boost must match (default = <i>null</i>, which ignores this parameter).</param> /// <param name="bBoostValIsExact">Optionally, specifies whether or the boost value (if specified) is to be used literally (exact = true), or as a minimum boost value.</param> /// <param name="bAttemptDirectLoad">Optionaly, specifies to directly load all images not already loaded.</param> /// <returns>The list of images is returned.</returns> /// <remarks>When using the 'nBoostValue' negative values are used to test the exact match of the boost value with the absolute value of the 'nBoostValue', ande /// positive values are used to test for boost values that are greater than or equal to the 'nBoostValue'.</remarks> public List <SimpleDatum> GetImages(QueryState state, int nStartIdx, int nQueryCount = int.MaxValue, string strFilterVal = null, int?nBoostVal = null, bool bBoostValIsExact = false, bool bAttemptDirectLoad = false) { List <int> rgIdx = state.GetIndexes(nStartIdx, nQueryCount, strFilterVal, nBoostVal, bBoostValIsExact); List <SimpleDatum> rgSd; lock (m_syncObj) { rgSd = m_rgImages.Where(p => p != null && rgIdx.Contains(p.Index)).ToList(); } if (bAttemptDirectLoad) { foreach (SimpleDatum sd in rgSd) { if (sd != null) { rgIdx.Remove(sd.Index); } } for (int i = 0; i < rgIdx.Count; i++) { rgSd.Add(directLoadImage(rgIdx[i])); } rgSd = rgSd.OrderBy(p => p.Index).ToList(); } return(rgSd); }
/// <summary> /// Returns the array of images in the image set, possibly filtered with the filtering parameters. /// </summary> /// <param name="state">Specifies the query state to use.</param> /// <param name="dtStart">Specifies a starting time from which the query is to start within the set of images.</param> /// <param name="nQueryCount">Optionally, specifies a number of images to retrieve within the set (default = int.MaxValue).</param> /// <param name="strFilterVal">Optionally, specifies the filter value that the description must match (default = <i>null</i>, which ignores this parameter).</param> /// <param name="nBoostVal">Optionally, specifies the boost value that the boost must match (default = <i>null</i>, which ignores this parameter).</param> /// <param name="bBoostValIsExact">Optionally, specifies whether or the boost value (if specified) is to be used literally (exact = true), or as a minimum boost value.</param> /// <returns>The list of images is returned.</returns> /// <remarks>When using the 'nBoostValue' negative values are used to test the exact match of the boost value with the absolute value of the 'nBoostValue', ande /// positive values are used to test for boost values that are greater than or equal to the 'nBoostValue'.</remarks> public List <SimpleDatum> GetImages(QueryState state, DateTime dtStart, int nQueryCount = int.MaxValue, string strFilterVal = null, int?nBoostVal = null, bool bBoostValIsExact = false) { List <int> rgIdx = state.GetIndexes(dtStart, nQueryCount, strFilterVal, nBoostVal, bBoostValIsExact); lock (m_syncObj) { return(m_rgImages.Where(p => p != null && rgIdx.Contains(p.Index)).ToList()); } }
/// <summary> /// Returns the number of images in the image set, optionally with super-boosted values only. /// </summary> /// <param name="state">Specifies the query state to use.</param> /// <param name="strFilterVal">Optionally, specifies the filter value that the description must match (default = <i>null</i>, which ignores this parameter).</param> /// <param name="nBoostVal">Optionally, specifies the boost value that the boost must match (default = <i>null</i>, which ignores this parameter).</param> /// <param name="bBoostValIsExact">Optionally, specifies whether or the boost value (if specified) is to be used literally (exact = true), or as a minimum boost value.</param> /// <returns>The number of images is returned.</returns> /// <remarks>When using the 'nBoostValue' negative values are used to test the exact match of the boost value with the absolute value of the 'nBoostValue', ande /// positive values are used to test for boost values that are greater than or equal to the 'nBoostValue'.</remarks> public int GetCount(QueryState state, string strFilterVal = null, int?nBoostVal = null, bool bBoostValIsExact = false) { List <int> rgIdx = state.GetIndexes(0, int.MaxValue, strFilterVal, nBoostVal, bBoostValIsExact); return(rgIdx.Count()); }