コード例 #1
0
        public void GetFactorsBySearchCriteria()
        {
            List <WebFactor>        factors;
            List <Int32>            factorIds;
            Int32                   count1, count2;
            WebFactorSearchCriteria searchCriteria;

            searchCriteria = new WebFactorSearchCriteria();
            factorIds      = new List <Int32>();
            factorIds.Add(LANDSCAPES_FACTOR_ID);

            searchCriteria.NameSearchString = null;
            factors = FactorManager.GetFactorsBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsTrue(factors.IsNull() || factors.IsEmpty());

            searchCriteria.NameSearchString = "Rödli%";
            searchCriteria.NameSearchMethod = SearchStringComparisonMethod.Like;
            factors = FactorManager.GetFactorsBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsFalse(factors.IsNull() || factors.IsEmpty());

            searchCriteria.NameSearchString = "Rödli";
            searchCriteria.NameSearchMethod = SearchStringComparisonMethod.Iterative;
            factors = FactorManager.GetFactorsBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsTrue(factors.IsNotEmpty());

            searchCriteria.NameSearchString = "Landskapstyper";
            searchCriteria.NameSearchMethod = SearchStringComparisonMethod.Exact;
            factors = FactorManager.GetFactorsBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsFalse(factors.IsNull() || factors.IsEmpty());
            count1 = factors.Count;
            Assert.IsNotNull(count1);
            Assert.IsTrue(count1 > 0);

            searchCriteria.NameSearchString       = LANDSCAPES_FACTOR_ID.ToString();
            searchCriteria.NameSearchMethod       = SearchStringComparisonMethod.Like;
            searchCriteria.IsIdInNameSearchString = true;
            factors = FactorManager.GetFactorsBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsFalse(factors.IsNull() || factors.IsEmpty());
            count2 = factors.Count;
            Assert.IsNotNull(count2);
            Assert.IsTrue(count2 > 0);
            Assert.AreEqual(count1, count2);

            searchCriteria = new WebFactorSearchCriteria();
            searchCriteria.RestrictSearchToFactorIds = factorIds;
            searchCriteria.RestrictReturnToScope     = FactorSearchScope.AllChildFactors;
            factors = FactorManager.GetFactorsBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsFalse(factors.IsNull() || factors.IsEmpty());
            Assert.AreEqual(factors.Count, 10);

            foreach (FactorSearchScope factorSearchScope in Enum.GetValues(typeof(FactorSearchScope)))
            {
                searchCriteria = new WebFactorSearchCriteria();
                searchCriteria.RestrictSearchToFactorIds = factorIds;
                searchCriteria.RestrictReturnToScope     = factorSearchScope;
                factors = FactorManager.GetFactorsBySearchCriteria(GetContext(), searchCriteria);
                Assert.IsFalse(factors.IsNull() || factors.IsEmpty());
            }
        }
 private WebFactorSearchCriteria GetSearchCriteria(Boolean refresh)
 {
     if (_searchCriteria.IsNull() || refresh)
     {
         _searchCriteria = new WebFactorSearchCriteria();
     }
     return(_searchCriteria);
 }
コード例 #3
0
        /// <summary>
        /// Get web factor search criteria.
        /// </summary>
        /// <param name="searchCriteria">Search criteria.</param>
        /// <returns>Web search criteria.</returns>
        private WebFactorSearchCriteria GetFactorSearchCriteria(IFactorSearchCriteria searchCriteria)
        {
            WebFactorSearchCriteria webFactorSearchCriteria = new WebFactorSearchCriteria
            {
                IsIdInNameSearchString    = searchCriteria.IsIdInNameSearchString,
                NameSearchString          = GetStringSearchCriteria(searchCriteria.NameSearchString),
                RestrictReturnToScope     = searchCriteria.RestrictReturnToScope,
                RestrictSearchToFactorIds = searchCriteria.RestrictSearchToFactorIds,
                RestrictSearchToScope     = searchCriteria.RestrictSearchToScope
            };

            return(webFactorSearchCriteria);
        }
コード例 #4
0
        public static WebFactor GetForestFactor(WebServiceContext context)
        {
            Int32                   factorId;
            List <Int32>            factorIds;
            WebFactorSearchCriteria searchCriteria;

            factorId  = FOREST_LANSCAPE_FACTOR_ID;
            factorIds = new List <Int32>();
            factorIds.Add(factorId);
            searchCriteria = new WebFactorSearchCriteria();
            searchCriteria.RestrictSearchToFactorIds = factorIds;

            return(FactorManager.GetFactorsBySearchCriteria(context, searchCriteria)[0]);
        }
        public void GetFactorsBySearchCriteria()
        {
            List <WebFactor>        factors;
            WebFactorSearchCriteria searchCriteria;

            searchCriteria = new WebFactorSearchCriteria();
            searchCriteria.NameSearchString = new WebStringSearchCriteria();
            searchCriteria.NameSearchString.SearchString     = "Rödli%";
            searchCriteria.NameSearchString.CompareOperators = new List <StringCompareOperator>();
            searchCriteria.NameSearchString.CompareOperators.Add(StringCompareOperator.Like);

            factors = WebServiceProxy.TaxonAttributeService.GetFactorsBySearchCriteria(GetClientInformation(), searchCriteria);
            Assert.IsNotNull(factors);
            Assert.IsTrue(factors.IsNotEmpty());
        }
コード例 #6
0
 /// <summary>
 /// Get information about factors that matches the search criteria.
 /// </summary>
 /// <param name="clientInformation">Information about the client that makes this web service call.</param>
 /// <param name="searchCriteria">The factor search criteria.</param>
 /// <returns>Factors that matches the search criteria.</returns>
 public List <WebFactor> GetFactorsBySearchCriteria(WebClientInformation clientInformation,
                                                    WebFactorSearchCriteria searchCriteria)
 {
     using (WebServiceContext context = GetWebServiceContext(clientInformation))
     {
         try
         {
             return(FactorManager.GetFactorsBySearchCriteria(context, searchCriteria));
         }
         catch (Exception exception)
         {
             WebServiceData.LogManager.LogError(context, exception);
             throw;
         }
     }
 }
コード例 #7
0
        public static List <Int32> GetRedlistFactorIds(WebServiceContext context)
        {
            List <Int32>     factorIds;
            List <WebFactor> factors;

            factorIds = new List <Int32>();
            factorIds.Add(REDLIST_FACTOR_ID);

            WebFactorSearchCriteria searchCriteria;

            searchCriteria = new WebFactorSearchCriteria();
            searchCriteria.RestrictSearchToFactorIds = factorIds;
            searchCriteria.RestrictReturnToScope     = FactorSearchScope.AllChildFactors;
            factors = FactorManager.GetFactorsBySearchCriteria(context, searchCriteria);
            foreach (WebFactor factor in factors)
            {
                factorIds.Add(factor.Id);
            }
            return(factorIds);
        }
コード例 #8
0
        /// <summary>
        /// Get information about factors that matches the search criteria.
        /// </summary>
        /// <param name="context">Web service request context.</param>
        /// <param name="searchCriteria">The factor search criteria.</param>
        /// <returns>Factors that matches the search criteria.</returns>
        public static List <WebFactor> GetFactorsBySearchCriteria(WebServiceContext context,
                                                                  WebFactorSearchCriteria searchCriteria)
        {
            List <WebFactor> factors;
            Int32            factorId;
            String           nameSearchMethodString, nameSearchString;
            WebFactor        factor;

            // Check arguments.
            searchCriteria.CheckNotNull("searchCriteria");
            searchCriteria.CheckData();

            // Test if name search string is a factor id.
            if (searchCriteria.NameSearchString.IsNotNull() &&
                searchCriteria.NameSearchString.SearchString.IsNotEmpty() &&
                searchCriteria.IsIdInNameSearchString &&
                Int32.TryParse(searchCriteria.NameSearchString.SearchString, out factorId))
            {
                if (searchCriteria.RestrictSearchToFactorIds.IsNull())
                {
                    searchCriteria.RestrictSearchToFactorIds = new List <Int32>();
                }

                searchCriteria.RestrictSearchToFactorIds.Add(factorId);
                searchCriteria.NameSearchString = null;
            }

            // Get information about factors from database.
            factors = new List <WebFactor>();
            if (searchCriteria.NameSearchString.IsNotNull())
            {
                // ReSharper disable once PossibleNullReferenceException
                foreach (StringCompareOperator compareOperator in searchCriteria.NameSearchString.CompareOperators)
                {
                    switch (compareOperator)
                    {
                    case StringCompareOperator.BeginsWith:
                        nameSearchMethodString = "Like";
                        nameSearchString       = searchCriteria.NameSearchString.SearchString + "%";
                        break;

                    case StringCompareOperator.Contains:
                        nameSearchMethodString = "Like";
                        nameSearchString       = "%" + searchCriteria.NameSearchString.SearchString + "%";
                        break;

                    case StringCompareOperator.EndsWith:
                        nameSearchMethodString = "Like";
                        nameSearchString       = "%" + searchCriteria.NameSearchString.SearchString;
                        break;

                    case StringCompareOperator.Equal:
                        nameSearchMethodString = "Exact";
                        nameSearchString       = searchCriteria.NameSearchString.SearchString;
                        break;

                    case StringCompareOperator.Like:
                        nameSearchMethodString = "Like";
                        nameSearchString       = searchCriteria.NameSearchString.SearchString;
                        break;

                    default:
                        throw new ArgumentException("GetFactorsBySearchCriteria Not supported string compare operator = " + compareOperator);
                    }

                    using (DataReader dataReader = context.GetTaxonAttributeDatabase().GetFactorsBySearchCriteria(searchCriteria.RestrictSearchToFactorIds,
                                                                                                                  nameSearchString,
                                                                                                                  nameSearchMethodString,
                                                                                                                  searchCriteria.RestrictSearchToScope.ToString(),
                                                                                                                  searchCriteria.RestrictReturnToScope.ToString()))
                    {
                        while (dataReader.Read())
                        {
                            factor = new WebFactor();
                            factor.LoadData(dataReader);
                            factors.Add(factor);
                        }
                    }

                    if (factors.IsNotEmpty())
                    {
                        break;
                    }
                }
            }
            else
            {
                using (DataReader dataReader = context.GetTaxonAttributeDatabase().GetFactorsBySearchCriteria(searchCriteria.RestrictSearchToFactorIds,
                                                                                                              null,
                                                                                                              "Exact",
                                                                                                              searchCriteria.RestrictSearchToScope.ToString(),
                                                                                                              searchCriteria.RestrictReturnToScope.ToString()))
                {
                    while (dataReader.Read())
                    {
                        factor = new WebFactor();
                        factor.LoadData(dataReader);
                        factors.Add(factor);
                    }
                }
            }

            return(factors);
        }
 /// <summary>
 /// Get factors that matches search criteria.
 /// </summary>
 /// <param name="clientInformation">Information about the client that makes this web service call.</param>
 /// <param name="searchCriteria">The factor search criteria.</param>
 /// <returns>Filtered factors.</returns>
 public List <WebFactor> GetFactorsBySearchCriteria(WebClientInformation clientInformation, WebFactorSearchCriteria searchCriteria)
 {
     using (ClientProxy client = new ClientProxy(this, 2))
     {
         return(client.Client.GetFactorsBySearchCriteria(clientInformation, searchCriteria));
     }
 }
 public WebFactorSearchCriteriaTest()
 {
     _searchCriteria = null;
 }
コード例 #11
0
        public void GetFactorsBySearchCriteria()
        {
            List <WebFactor>        factors;
            List <Int32>            factorIds;
            Int32                   factorCount1, factorCount2;
            WebFactorSearchCriteria searchCriteria;

            searchCriteria = new WebFactorSearchCriteria();
            searchCriteria.NameSearchString = null;
            factors = FactorManager.GetFactorsBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsTrue(factors.IsNull() || factors.IsEmpty());

            searchCriteria.NameSearchString = new WebStringSearchCriteria();
            searchCriteria.NameSearchString.SearchString     = "Rödli%";
            searchCriteria.NameSearchString.CompareOperators = new List <StringCompareOperator>();
            searchCriteria.NameSearchString.CompareOperators.Add(StringCompareOperator.Like);
            factors = FactorManager.GetFactorsBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsFalse(factors.IsNull() || factors.IsEmpty());

            searchCriteria.NameSearchString = new WebStringSearchCriteria();
            searchCriteria.NameSearchString.SearchString     = "Rödli";
            searchCriteria.NameSearchString.CompareOperators = new List <StringCompareOperator>();
            searchCriteria.NameSearchString.CompareOperators.Add(StringCompareOperator.Equal);
            searchCriteria.NameSearchString.CompareOperators.Add(StringCompareOperator.BeginsWith);
            searchCriteria.NameSearchString.CompareOperators.Add(StringCompareOperator.Contains);
            factors = FactorManager.GetFactorsBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsTrue(factors.IsNotEmpty());

            searchCriteria.NameSearchString = new WebStringSearchCriteria();
            searchCriteria.NameSearchString.SearchString     = "Landskapstyper";
            searchCriteria.NameSearchString.CompareOperators = new List <StringCompareOperator>();
            searchCriteria.NameSearchString.CompareOperators.Add(StringCompareOperator.Equal);
            factors = FactorManager.GetFactorsBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsFalse(factors.IsNull() || factors.IsEmpty());
            factorCount1 = factors.Count;
            Assert.IsNotNull(factorCount1);
            Assert.IsTrue(factorCount1 > 0);

            searchCriteria.NameSearchString = new WebStringSearchCriteria();
            searchCriteria.NameSearchString.SearchString     = "661";
            searchCriteria.NameSearchString.CompareOperators = new List <StringCompareOperator>();
            searchCriteria.NameSearchString.CompareOperators.Add(StringCompareOperator.Like);
            searchCriteria.IsIdInNameSearchString = true;
            factors = FactorManager.GetFactorsBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsTrue(factors.IsNotEmpty());
            factorCount2 = factors.Count;
            Assert.AreEqual(factorCount1, factorCount2);

            searchCriteria = new WebFactorSearchCriteria();
            factorIds      = new List <Int32>();
            factorIds.Add(661);
            searchCriteria.RestrictSearchToFactorIds = factorIds;
            searchCriteria.RestrictReturnToScope     = FactorSearchScope.AllChildFactors;
            factors = FactorManager.GetFactorsBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsFalse(factors.IsNull() || factors.IsEmpty());
            Assert.AreEqual(factors.Count, 10);

            foreach (FactorSearchScope factorSearchScope in Enum.GetValues(typeof(FactorSearchScope)))
            {
                searchCriteria = new WebFactorSearchCriteria();
                searchCriteria.RestrictSearchToFactorIds = factorIds;
                searchCriteria.RestrictReturnToScope     = factorSearchScope;
                factors = FactorManager.GetFactorsBySearchCriteria(GetContext(), searchCriteria);
                Assert.IsFalse(factors.IsNull() || factors.IsEmpty());
            }
        }