Example #1
0
        public async Task <ActionResult <WatsonResponse> > PostWatsonPayload(WatsonPayload watsonPayload)
        {
            // _context.WatsonPayload.Add(watsonPayload);
            // await _context.SaveChangesAsync();
            WatsonResponse response = new WatsonResponse();
            NewsAPIClient  newsAPI  = new NewsAPIClient(_appSettings);

            switch (watsonPayload.Action)
            {
            case WatsonAction.News_Highlights:
                response.articles = await newsAPI.FindNewsHighlights(watsonPayload);

                response.status = true;
                break;

            case WatsonAction.News_Keyphrase:
                response.articles = await newsAPI.FindNewsKeyphrase(watsonPayload);

                response.status = true;
                break;

            default:
                response.status = false;
                break;
            }
            return(response);
        }
        public override async Task UpdateWithResults(RatedComment comment, WatsonResponse watsonResponse)
        {
            var cacheClearTask = ClearFromCache(comment);
            var dbUpdateTask   = base.UpdateWithResults(comment, watsonResponse);

            _logger.LogInformation($"Message id {comment.UniqueID} updating flushing from cache");
            await Task.WhenAll(cacheClearTask, dbUpdateTask);
        }
        public virtual async Task UpdateWithResults(RatedComment comment, WatsonResponse watsonResponse)
        {
            var filter = Builders <RatedComment> .Filter.Eq(AppConstants.DbKeyField, comment.UniqueID);

            var updates = Builders <RatedComment> .Update.Combine(new[]
            {
                Builders <RatedComment> .Update.Set(AppConstants.WatsonResponseField, watsonResponse),
                Builders <RatedComment> .Update.Set(AppConstants.WatsonStatusField, ResponseStatus.Complete)
            });

            await _mongoCollection.Value.UpdateOneAsync(filter, updates);

            _logger.LogInformation($"Document ID - {comment.UniqueID}, updated with watson results");
        }