public bool IsValid <TDocument>(ISearchParameter searchParameter, out string errorMessage)
            where TDocument : Document
        {
            errorMessage = string.Empty;

            var facetRangeParameter = (IFacetRangeParameter <TDocument>)searchParameter;

            var propertyType = facetRangeParameter.ExpressionBuilder.GetPropertyType(facetRangeParameter.FieldExpression);

            var allowedTypes = new[]
            {
                typeof(DateTime),
                typeof(DateTime?),
                typeof(decimal),
                typeof(decimal?),
                typeof(double),
                typeof(double?),
                typeof(float),
                typeof(float?),
                typeof(int),
                typeof(int?),
                typeof(long),
                typeof(long?),
                typeof(short),
                typeof(short?),
            };

            if (!allowedTypes.Contains(propertyType))
            {
                errorMessage = Resource.FieldMustBeNumericOrDateTimeToBeUsedInFacetRangeException;
                return(false);
            }

            return(true);
        }
Exemple #2
0
 internal SearchFor(SearchFor currentSearch, ISearchParameter newParameter)
 {
     _parameters = new List <ISearchParameter>(currentSearch._parameters)
     {
         newParameter
     };
 }
        public bool IsValid <TDocument>(ISearchParameter searchParameter, out string errorMessage)
            where TDocument : Document
        {
            var anyParameter = searchParameter as IAnyParameter;

            if (anyParameter == null)
            {
                errorMessage = null;
                return(true);
            }

            var specificParameters = new List <string> {
                "facet.field",
                "facet.limit",
                "facet.query",
                "facet.range",
                "fl",
                "fq",
                "mm",
                "q",
                "qf",
                "rows",
                "sort",
                "start"
            };

            errorMessage = string.Format(Resource.UseSpecificParameterRatherThanAnyException, anyParameter.Name);

            return(!specificParameters.Contains(anyParameter.Name.ToLowerInvariant()));
        }
        public static ISearchQuery CreateSearchQuery(IQueryCollection queryCollection, ISearchFunction searchFunction)
        {
            List <SearchParameterSet> sets = new List <SearchParameterSet>();

            List <ISearchParameter> parameters = new List <ISearchParameter>();

            foreach (var kvp in queryCollection)
            {
                foreach (var value in kvp.Value)
                {
                    if (string.IsNullOrEmpty(value))
                    {
                        continue;
                    }
                    ISearchParameter parameter = CreateParameter(kvp.Key, kvp.Value, searchFunction.SearchCriterionSet);
                    if (parameter != null)
                    {
                        parameters.Add(parameter);
                    }
                }
            }
            SearchParameterSet set = new SearchParameterSet(parameters);

            sets.Add(set);

            return(new SearchQuery(sets.LastOrDefault()));
        }
Exemple #5
0
 public BinSearchSpectrumEThcD(ISearchParameter parameter)
 {
     calculator     = UtilMass.Instance;
     option         = UtilMassOption.Instance;
     this.parameter = parameter;
     alpha          = 1.0;
     beta           = 0.0;
 }
Exemple #6
0
 public BinSearchSpectrumEThcD(double tol = 20)
 {
     calculator = UtilMass.Instance;
     option     = UtilMassOption.Instance;
     parameter  = new BinSearchSpectrumEThcDParameter(tol);
     alpha      = 1.0;
     beta       = 0.0;
 }
Exemple #7
0
        public static Expression <Func <T, bool> > GetPredicate <T>(ISearchParameter parameters, ISitecoreContext context) where T : IFacetableContent
        {
            var predicate = PredicateBuilder.True <T>();

            predicate = parameters.FilterOnTemplates.Aggregate(predicate, (current, temp) => current.Or(p => p.TemplateId == temp));
            if (parameters.FilterOnFields == null || !parameters.FilterOnFields.Any())
            {
                return(predicate);
            }
            IEnumerable <Guid> facetOns = parameters.FilterOnFields;
            IEnumerable <Models.Glass.Reboot.Facet> facets =
                facetOns.Select(i => context.GetItem <Models.Glass.Reboot.Facet>(i)).Reverse();

            foreach (var filter in facets)
            {
                string s = HttpContext.Current.Request.QueryString.Get(filter.Name);
                switch (filter.FacetName)
                {
                case "Genres":
                    if (!string.IsNullOrEmpty(s) && ShortID.IsShortID(s))
                    {
                        //w = w.Where(a => a.Genres.Contains(Guid.Parse(s)));
                        predicate = predicate.And(o => o.Genres.Contains(Guid.Parse(s)));
                    }
                    break;

                case "Production Company":
                    if (!string.IsNullOrEmpty(s) && ShortID.IsShortID(s))
                    {
                        //w = w.Where(a => a.ProductionCompanies.Contains(Guid.Parse(s)));
                        predicate = predicate.And(a => a.ProductionCompanies.Contains(Guid.Parse(s)));
                    }
                    break;

                case "Status":
                    if (!string.IsNullOrEmpty(s))
                    {
                        //w = w.Where(a => a.Status.Equals(s));
                        predicate = predicate.And(a => a.Status.Equals(s));
                    }
                    break;

                case "Spoken Language":
                    if (!string.IsNullOrEmpty(s))
                    {
                        //w = w.Where(a => a.Status.Equals(s));
                        predicate = predicate.And(a => a.SpokenLanguages.Contains(Guid.Parse(s)));
                    }
                    break;
                }
            }
            return(predicate);
        }
Exemple #8
0
        public void ParameterCreationTest()
        {
            TypedCriterion <double> criterion = new TypedCriterion <double>("{{test}parameter");

            criterion.ValuePattern = new System.Text.RegularExpressions.Regex(@"^\d*.\d{2}$");
            criterion.ValueRange   = new Model.Implementation.Range <double>(10.0, 20.0);

            ISearchParameter parameter = criterion.CreateParameter("0");

            Assert.IsAssignableFrom <WrongSearchParameter>(parameter);
            Assert.Contains("regular expression", ((WrongSearchParameter)parameter).ErrorMessage);
        }
        public bool IsValid <TDocument>(ISearchParameter searchParameter, out string errorMessage)
            where TDocument : Document
        {
            var searchParameterFieldExpressions = searchParameter as ISearchItemFieldExpressions <TDocument>;
            var searchParameterFieldExpression  = searchParameter as ISearchItemFieldExpression <TDocument>;

            var fieldExpressions =
                searchParameterFieldExpressions?.FieldExpressions ??
                new[] { searchParameterFieldExpression?.FieldExpression };

            var expressionBuilder =
                searchParameterFieldExpressions?.ExpressionBuilder ??
                searchParameterFieldExpression?.ExpressionBuilder;

            if (fieldExpressions.Any(fieldExpression => !expressionBuilder?.GetIsIndexed(fieldExpression) ?? false))
            {
                errorMessage = Resource.FieldMustBeIndexedTrueToBeUsedInThisFunctionException;
                return(false);
            }

            errorMessage = string.Empty;
            return(true);
        }
Exemple #10
0
        /// <summary>
        /// Method to retriev a special Number of Dummy Results
        /// </summary>
        /// <param name="numberOfResults">number of results to retriev</param>
        /// <returns>Results in Reposiotry</returns>
        public IDummySearchResultModel GetDummyResults(ISearchParameter searchParamter, int numberOfResults = 20)
        {
            int totalNumberOfResults;

            if (numberOfResults <= 0)
            {
                return(this.EmptySearchResultModel);
            }

            if (numberOfResults > this.NumberOfEntriesInRepository)
            {
                numberOfResults = this.NumberOfEntriesInRepository;
            }

            totalNumberOfResults = numberOfResults;
            IList <IDummyContentModel> results = new List <IDummyContentModel>();

            for (int i = 0; i < numberOfResults; i++)
            {
                results.Add(new DummyContentModel()
                {
                    Title = $"Title_{i}",
                    Text  = $"Text_{i}",
                    Image = string.Empty,
                    Link  = "http://www.google.de",
                });
            }

            results = results.Skip(ElementsPerPage * (searchParamter.Page - 1)).Take(ElementsPerPage).ToList();

            return(new DummySearchResultModel()
            {
                SearchResults = results,
                TotalNumberOfResults = totalNumberOfResults,
                Paging = CreatePagingModel(searchParamter.Page, totalNumberOfResults, ElementsPerPage)
            });
        }
Exemple #11
0
 public DPSearchSpectrumCID(double tol = 20, double min = 400, double size = 0.01, int distance = 3)
 {
     parameter = new DPSpectrumCIDParameter(tol, min, size, distance);
     dp        = new DynamicProgramming();
 }
Exemple #12
0
 public DPSearchSpectrumCID(DPSpectrumCIDParameter parameter)
 {
     this.parameter = parameter;
     dp             = new DynamicProgramming();
 }
Exemple #13
0
 public void SetParameter(ISearchParameter parameter)
 {
     this.parameter = parameter;
 }
Exemple #14
0
 public virtual void Add(ISearchParameter parameter)
 {
     set.Add(parameter);
 }
Exemple #15
0
 private SearchFor(ISearchParameter parameter)
 {
     _parameters = new List <ISearchParameter> {
         parameter
     };
 }
Exemple #16
0
 public virtual void Insert(int pos, ISearchParameter parameter)
 {
     set.Insert(pos, parameter);
 }
Exemple #17
0
 /// <summary>
 /// Method to retriev all availbalbe Dummy Results
 /// </summary>
 /// <returns>All Results in Repository</returns>
 public IDummySearchResultModel GetAllDummyResults(ISearchParameter searchParameter)
 {
     return(GetDummyResults(searchParameter, this.NumberOfEntriesInRepository));
 }
 public bool Equals(ISearchParameter other)
 {
     throw new NotImplementedException();
 }
 /// <summary>
 /// Dummy Query
 /// </summary>
 /// <param name="sp">search paramter</param>
 /// <returns>dummy results</returns>
 protected IDummySearchResultModel ExecuteDummyQuery(ISearchParameter sp)
 {
     return(DummyRepo.GetDummyResults(sp, Labels.NumberOfWantedResults));
 }
 public BinSearchAnnotatedSpectrumEThcD(
     List <IAccumulatedGlycanStructureProxy> glycans, double tol = 20)
 {
     parameter = new BinSearchSpectrumEThcDParameter(tol);
     Constructor(glycans);
 }
 public BinSearchAnnotatedSpectrumEThcD(
     List <IAccumulatedGlycanStructureProxy> glycans, ISearchParameter parameter)
 {
     this.parameter = parameter;
     Constructor(glycans);
 }