コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }