Beispiel #1
0
        public Task <Job> SearchNews(CriteriaSearchNews criteria)
        {
            var client = new RestClient(_uri);

            var request = new RestRequest(_postSearchNews, Method.POST);

            request.AddHeader("Accept", "application/json");
            request.Parameters.Clear();
            request.AddParameter("application/json", JsonConvert.SerializeObject(criteria), ParameterType.RequestBody);

            var response = client.Execute(request);
            var content  = response.Content; // raw content as string

            var job = JsonConvert.DeserializeObject <Job>(content);

            return(Task.FromResult <Job>(job));
        }
Beispiel #2
0
        public IActionResult AddQueue([FromBody] CriteriaSearchNews inputModel)
        {
            CriteriaSearchNews message = new CriteriaSearchNews
            {
                Target = inputModel.Target
            };

            var jobId = BackgroundJob.Enqueue <ISearchNewsCommand>(x => x.SearchNewsBankOfThailand(message));

            BackgroundJob.ContinueWith <ISearchNewsCommand>(jobId, x => x.AnalysisResult(message));

            BackgroundJob.ContinueWith <ISearchNewsCommand>(jobId, x => x.ReportingResult(message));

            var job = new Job()
            {
                Id = jobId, Application = "Batch", Procedure = "SearchNews", Status = "Created", Created = DateTime.Now
            };

            return(Ok(job));
        }
Beispiel #3
0
 public void ReportingResult(CriteriaSearchNews criteriaSearchNews)
 {
     //Logger.Info("ReportingResult");
     Task.Delay(TimeSpan.FromSeconds(2)).Wait();
 }
Beispiel #4
0
 public void AnalysisResult(CriteriaSearchNews criteriaSearchNews)
 {
     //Logger.Info("AnalysisResult");
     Task.Delay(TimeSpan.FromSeconds(5)).Wait();
 }
Beispiel #5
0
 public void SearchNewsBankOfThailand(CriteriaSearchNews criteriaSearchNews)
 {
     //Logger.Info("SearchNewsBankOfThailand");
     Task.Delay(TimeSpan.FromSeconds(10)).Wait();
 }