public Task <IEnumerable <Contest> > GetByTermID(string termID, int indexPage, int sizePage, string keyword) { var result = _contestRepo.GetByTermID(termID, indexPage, sizePage, keyword); return(Task.FromResult(result)); }
public async Task <IEnumerable <Contest> > GetByTermID(string termID, int indexPage, int sizePage, string keyword) { var result = _contestRepo.GetByTermID(termID, indexPage, sizePage, keyword); var contests = new List <Contest>(); if (result.Count() == 0) { //Thuc hien call ben kia ve var term = await _termBaseRepository.GetEntityByIdAsync(termID); if (term == null) { return(null); } else { var inteTerm = term.IntegrationTermID; var baseUrl = String.Format("http://qbms-public-api.azurewebsites.net/"); var url = new Uri(baseUrl + $"api/Contest/GetContestBySubjectCode/{inteTerm}"); var httpClient = new HttpClient(); var jsonSettings = new JsonSerializerSettings() { ReferenceLoopHandling = ReferenceLoopHandling.Ignore, NullValueHandling = NullValueHandling.Ignore, }; var res = (await httpClient.GetAsync(url)); if (res.StatusCode == System.Net.HttpStatusCode.OK) { var response = JsonConvert.DeserializeObject <G10Res <List <G10ContestByTerm> > >(res.Content.ReadAsStringAsync().Result); if (response.Status) { foreach (var resp in response.Data) { var contest = new Contest() { TermId = Guid.Parse(termID), ContestName = resp.ContestName, FinishTime = resp.FinishTime, StartTime = resp.StartTime, ContestId = Guid.NewGuid(), IntegrationContestID = resp.Id, TimeToDo = resp.TimeToDo }; var existContest = (await _contestBaseRepository.GetEntitites("Proc_GetContestByIntegrationId", new object[] { contest.IntegrationContestID })).FirstOrDefault(); if (existContest == null) { await _contestBaseRepository.AddAsync(contest, true); } contests.Add(existContest ?? contest); } return(contests); } } } } return(result); }