Example #1
0
 public SolrQueryExecuter(ISolrQueryResultParser <T> resultParser, ISolrConnection connection, ISolrQuerySerializer querySerializer, ISolrFacetQuerySerializer facetQuerySerializer)
 {
     this.resultParser         = resultParser;
     this.connection           = connection;
     this.querySerializer      = querySerializer;
     this.facetQuerySerializer = facetQuerySerializer;
     DefaultRows = ConstDefaultRows;
 }
 /// <summary>
 /// Make a new CrownPeakQueryExecuter
 /// </summary>
 /// <param name="resultParser"></param>
 /// <param name="connection"></param>
 /// <param name="querySerializer"></param>
 /// <param name="facetQuerySerializer"></param>
 /// <param name="mlthResultParser"></param>
 public CrownPeakQueryExecuter(ISolrAbstractResponseParser <T> resultParser,
                               ISolrConnection connection, ISolrQuerySerializer querySerializer,
                               ISolrFacetQuerySerializer facetQuerySerializer,
                               ISolrMoreLikeThisHandlerQueryResultsParser <T> mlthResultParser)
     : base(resultParser, connection, querySerializer, facetQuerySerializer, mlthResultParser)
 {
     _parser     = resultParser as ICrownPeakResponseParser <T>;
     _connection = connection;
 }
Example #3
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="resultParser"></param>
 /// <param name="connection"></param>
 /// <param name="querySerializer"></param>
 /// <param name="facetQuerySerializer"></param>
 /// <param name="mlthResultParser"></param>
 public SolrQueryExecuter(ISolrConnection connection, ISolrQuerySerializer querySerializer, ISolrFacetQuerySerializer facetQuerySerializer)
 {
     this.connection           = connection;
     this.querySerializer      = querySerializer;
     this.facetQuerySerializer = facetQuerySerializer;
     DefaultRows         = ConstDefaultRows;
     Handler             = DefaultHandler;
     MoreLikeThisHandler = DefaultMoreLikeThisHandler;
 }
Example #4
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="resultParser"></param>
 /// <param name="connection"></param>
 /// <param name="querySerializer"></param>
 /// <param name="facetQuerySerializer"></param>
 /// <param name="mlthResultParser"></param>
 public SolrQueryExecuter(ISolrAbstractResponseParser <T> resultParser, ISolrConnection connection, ISolrQuerySerializer querySerializer, ISolrFacetQuerySerializer facetQuerySerializer, ISolrMoreLikeThisHandlerQueryResultsParser <T> mlthResultParser)
 {
     this.resultParser         = resultParser;
     this.mlthResultParser     = mlthResultParser;
     this.connection           = connection;
     this.querySerializer      = querySerializer;
     this.facetQuerySerializer = facetQuerySerializer;
     DefaultRows         = ConstDefaultRows;
     MoreLikeThisHandler = DefaultMoreLikeThisHandler;
 }
 public AggregateFacetQuerySerializer(ISolrFacetQuerySerializer[] serializers)
 {
     this.serializers = serializers;
 }
 public SolrQueryBuilderOperation(ISolrQuerySerializer querySerializer, ISolrFacetQuerySerializer facetQuerySerializer)
 {
     this.querySerializer      = querySerializer;
     this.facetQuerySerializer = facetQuerySerializer;
 }
Example #7
0
 public SolrInjectionQueryExecuter(ISolrAbstractResponseParser <TModel> resultParser, ISolrInjectedConnection <TModel> injectionConnection, ISolrQuerySerializer querySerializer, ISolrFacetQuerySerializer facetQuerySerializer, ISolrMoreLikeThisHandlerQueryResultsParser <TModel> mlthResultParser)
     : base(resultParser, injectionConnection.Connection, querySerializer, facetQuerySerializer, mlthResultParser)
 {
 }
        public static IExecuter <TNew> ChangeType <TNew, TOld>(
            this IExecuter <TOld> executer,
            MethodCallExpression expression,
            SelectExpressionsCollection selectExpressionsCollection)
        {
            if (executer == null)
            {
                throw new ArgumentNullException(nameof(executer));
            }
            if (expression == null)
            {
                throw new ArgumentNullException(nameof(expression));
            }
            if (selectExpressionsCollection == null)
            {
                throw new ArgumentNullException(nameof(selectExpressionsCollection));
            }

            try
            {
                SolrQueryExecuter <TOld> oldExecuter = executer.Executer;

                ISolrConnection           connection           = oldExecuter.GetFieldRecursive <ISolrConnection>();
                ISolrQuerySerializer      serializer           = oldExecuter.GetFieldRecursive <ISolrQuerySerializer>();
                ISolrFacetQuerySerializer facetQuerySerializer = oldExecuter.GetFieldRecursive <ISolrFacetQuerySerializer>();

                ISolrDocumentResponseParser <TOld> oldParser =
                    oldExecuter.GetFieldRecursive <ISolrDocumentResponseParser <TOld> >();

                ISolrFieldParser fieldParser = oldParser.GetFieldRecursive <ISolrFieldParser>();
                SolrDictionaryDocumentResponseParser dictionaryParser = new SolrDictionaryDocumentResponseParser(fieldParser);

                ISolrDocumentResponseParser <TNew> docParser;

                if (expression.Method.DeclaringType == typeof(Queryable) && expression.Method.Name == nameof(Queryable.Cast))
                {
                    docParser = new CastResponseParser <TNew, TOld>(oldParser, dictionaryParser);
                }
                else if (expression.Method.DeclaringType == typeof(Queryable) && expression.Method.Name == nameof(Queryable.Select))
                {
                    docParser = new SelectResponseParser <TNew, TOld>(oldParser,
                                                                      dictionaryParser, expression,
                                                                      selectExpressionsCollection);
                }
                else
                {
                    throw new InvalidOperationException(
                              $"Unable to change query type from {typeof(TOld).Name} to {typeof(TNew).Name}. Method {expression.Method.Name} not supported");
                }

                ISolrAbstractResponseParser <TNew> parser = new DefaultResponseParser <TNew>(docParser);

                SolrQueryExecuter <TNew> newExecuter = new SolrQueryExecuter <TNew>(parser, connection, serializer,
                                                                                    facetQuerySerializer,
                                                                                    new SolrMoreLikeThisHandlerQueryResultsParser <TNew>(Enumerable.Repeat(parser, 1)));

                newExecuter.DefaultHandler      = oldExecuter.DefaultHandler;
                newExecuter.DefaultRows         = oldExecuter.DefaultRows;
                newExecuter.MoreLikeThisHandler = oldExecuter.MoreLikeThisHandler;

                return(new SelectQueryExecutor <TNew>(newExecuter));
            }
            catch (Exception e)
            {
                throw new InvalidOperationException(
                          $"Unable to change solr query executer from {typeof(TOld)} to {typeof(TNew)}.", e);
            }
        }
 public SolrQueryBuilderOperation(ISolrQuerySerializer querySerializer, ISolrFacetQuerySerializer facetQuerySerializer)
 {
     this.querySerializer = querySerializer;
     this.facetQuerySerializer = facetQuerySerializer;
 }