コード例 #1
0
        /// <summary>
        /// Get all species fact qualities.
        /// </summary>
        /// <param name="context">Web service request context.</param>
        /// <returns>All species fact qualities.</returns>
        public static List <WebSpeciesFactQuality> GetSpeciesFactQualities(WebServiceContext context)
        {
            List <WebSpeciesFactQuality> speciesFactQualities;
            String cacheKey;
            WebSpeciesFactQuality speciesFactQuality;

            // Get cached information.
            speciesFactQualities = null;
            cacheKey             = Settings.Default.SpeciesFactQualityCacheKey;
            if (!context.IsInTransaction())
            {
                speciesFactQualities = (List <WebSpeciesFactQuality>)context.GetCachedObject(cacheKey);
            }

            if (speciesFactQualities.IsNull())
            {
                // Get information from database.
                speciesFactQualities = new List <WebSpeciesFactQuality>();
                using (DataReader dataReader = context.GetTaxonAttributeDatabase().GetSpeciesFactQualities())
                {
                    while (dataReader.Read())
                    {
                        speciesFactQuality = new WebSpeciesFactQuality();
                        speciesFactQuality.LoadData(dataReader);
                        speciesFactQualities.Add(speciesFactQuality);
                    }

                    if (!context.IsInTransaction())
                    {
                        // Add information to cache.
                        context.AddCachedObject(cacheKey, speciesFactQualities, DateTime.Now + new TimeSpan(12, 0, 0), CacheItemPriority.AboveNormal);
                    }
                }
            }

            return(speciesFactQualities);
        }