Ejemplo n.º 1
0
        /// <summary>
        /// Loads the deserialized operationModel objects from the flat files.
        /// </summary>
        private void LoadDeserializedOperationObjects(IRestClient restClient = null, ISolrLog log = null)
        {
            IEnumerable <string> jobFiles = _directoryInfoWrapper.GetFileContentsFromDirectory();

            foreach (string jobFileText in jobFiles)
            {
                ISolrOperationModel operationModel      = JsonConvert.DeserializeObject <SolrOperationModel>(jobFileText);
                IRestClient         operationRestClient = restClient ?? GetSolrRestClient(operationModel);

                SolrOperations.Add(new SolrOperation(operationModel, operationRestClient, log));
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Gets the solr response.
        /// </summary>
        /// <param name="client">The client.</param>
        /// <param name="solrOperationModel">The solr operationModel.</param>
        /// <param name="responseTimeInTicks">The response time in ticks.</param>
        /// <returns>SolrScheduler.Objects.Models.SolrResponseObject.</returns>
        private ISolrResponseObject GetSolrResponse(IRestClient client, ISolrOperationModel solrOperationModel, out long responseTimeInTicks)
        {
            //Create request
            IRestRequest request = CreateRequestFromSolrOperation(solrOperationModel);

            //Start the timer and execute the request
            DateTime startResponseTime = DateTime.Now;

            IRestResponse response = client.Execute(request);

            //Get the time it took for the response to resolve
            DateTime stopResponseTime = DateTime.Now;

            responseTimeInTicks = stopResponseTime.Ticks;

            //Return the deserialized response
            ISolrResponseObject solrResponse = JsonConvert.DeserializeObject <SolrResponseObject>(response.Content);

            //Log the action
            _solrLog.AppendSolrAction(startResponseTime, stopResponseTime, solrOperationModel.Name, solrResponse);

            return(solrResponse);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Creates the request from solr operationModel.
        /// </summary>
        /// <param name="solrOperationModel">The solr operationModel.</param>
        /// <returns>RestSharp.IRestRequest.</returns>
        private IRestRequest CreateRequestFromSolrOperation(ISolrOperationModel solrOperationModel)
        {
            RestRequest request = new RestRequest("/dataimport", Method.GET);

            request.AddQueryParameter("wt", "json");
            request.AddQueryParameter("command", solrOperationModel.ImportType);

            if (solrOperationModel.Clean)
            {
                request.AddQueryParameter("clean", "true");
            }

            if (solrOperationModel.Commit)
            {
                request.AddQueryParameter("commit", "true");
            }

            if (solrOperationModel.Optimize)
            {
                request.AddQueryParameter("optimize", "true");
            }

            return(request);
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SolrOperation"/> class.
 /// </summary>
 /// <param name="operationModel">The operation model.</param>
 /// <param name="restClient">The rest client.</param>
 /// <param name="solrLog">The solr log.</param>
 public SolrOperation(ISolrOperationModel operationModel, IRestClient restClient, ISolrLog solrLog)
 {
     OperationModel = operationModel;
     RestClient     = restClient;
     _solrLog       = solrLog;
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Gets the solr rest client.
 /// </summary>
 /// <param name="solrOperationModel">The solr operationModel.</param>
 /// <returns>RestSharp.IRestClient.</returns>
 private IRestClient GetSolrRestClient(ISolrOperationModel solrOperationModel)
 {
     return(new RestClient($"http://{solrOperationModel.Server}/{solrOperationModel.Core}/"));
 }