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)])); }
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)); }