Esempio n. 1
0
        public async Task <IActionResult> Random()
        {
            // await Task.Delay(1000);
            // return Ok(EmptySummary);

            var request = MakeRequest();

            if (!request.IsValid())
            {
                return(BadRequest("Invalid Data Request"));
            }
            Console.WriteLine($"last req: {_lastRequest}");
            if (!request.Equals(_lastRequest) || _lastResponse == null)
            {
                _lastResponse = await GetResponse(request);
            }
            _lastRequest = request;
            var doajArticles  = GetDoajArticles();
            var arXivArticles = GetArXivArticles();
            var allArticles   = arXivArticles.Concat(doajArticles).ToList();
            var len           = allArticles.Count;

            if (len == 0)
            {
                return(Ok(EmptySummary));
            }
            var rnd = new Random();

            return(Ok(allArticles[rnd.Next(0, len)]));
        }
Esempio n. 2
0
        private async Task <dynamic> GetResponse(InspirationRequest data)
        {
            Console.WriteLine($"Request Fresh Data, query: {data.Queries.FirstOrDefault()}");
            var client  = new HttpClient();
            var content = new StringContent(JsonConvert.SerializeObject(data),
                                            Encoding.UTF8, "application/json");
            var response = await client.PostAsync(uri, content);

            var responseContent = await response.Content.ReadAsStringAsync();

            return(JsonConvert.DeserializeObject <dynamic>(responseContent));
        }