Ejemplo n.º 1
0
        public Task <IEnumerable <Term> > Paging(string userID, int pageIndex, int pageSize, string keyword)
        {
            var result = _termRepo.Paging(userID, pageIndex, pageSize, keyword);

            return(Task.FromResult(result));
        }
Ejemplo n.º 2
0
        public async Task <ActionServiceResult> Paging(string userID, int pageIndex = 1, int pageSize = 99, string keyword = null)
        {
            try
            {
                var result = (_termRepo.Paging(userID, pageIndex, pageSize, keyword)).ToList();

                if (result.Count == 0)
                {
                    var user = await _baseUserRepository.GetEntityByIdAsync(userID);

                    if (user == null)
                    {
                        return(new ActionServiceResult()
                        {
                            Success = false,
                            Code = Code.NotFound
                        });
                    }
                    else
                    {
                        var baseUrl = String.Format("http://my-app-dkmh.herokuapp.com");
                        var url     = new Uri($"{baseUrl}/api/getclassbyid?id={user.IntegrationID}");

                        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 <List <IntegrationTerm> >(res.Content.ReadAsStringAsync().Result);
                            var terms    = new List <Term>();
                            foreach (var resp in response)
                            {
                                var term = new Term()
                                {
                                    TermId   = Guid.NewGuid(),
                                    TermCode = resp.Class_id,
                                    TermName = resp.Subject_name
                                };
                                terms.Add(term);
                                var existterm = (await _baseRepository.GetEntitites("Proc_GetTermByTermCode", new object[] { term.TermCode })).FirstOrDefault();
                                if (existterm == null)
                                {
                                    var t = await _baseRepository.AddAsync(term, true);

                                    if (t == null)
                                    {
                                        return(new ActionServiceResult()
                                        {
                                            Success = false,
                                            Code = Code.ErrorAddEntity,
                                            Data = null,
                                            Message = "Term code la duy nhat"
                                        });
                                    }
                                    var existUserTerm = await _baseUserTermRepository.GetEntitites("Proc_GetUserTermByKey", new object[] { userID, term.TermCode });

                                    if (existUserTerm.Count() == 0)
                                    {
                                        await _baseUserTermRepository.AddAsync(new Userterm()
                                        {
                                            TermId = term.TermId, UserId = Guid.Parse(userID), UserTermId = Guid.NewGuid()
                                        }, true);
                                    }
                                }
                                else
                                {
                                    var existUserTerm = await _baseUserTermRepository.GetEntitites("Proc_GetUserTermByKey", new object[] { userID, term.TermCode });

                                    if (existUserTerm.Count() == 0)
                                    {
                                        await _baseUserTermRepository.AddAsync(new Userterm()
                                        {
                                            TermId = existterm.TermId, UserId = Guid.Parse(userID), UserTermId = Guid.NewGuid()
                                        }, true);
                                    }
                                }
                            }
                            return(new ActionServiceResult()
                            {
                                Success = true,
                                Code = Code.Success,
                                Data = terms
                            });
                        }
                    }
                }
                return(new ActionServiceResult()
                {
                    Success = true,
                    Code = Code.Success,
                    Data = result
                });
            }
            catch (Exception ex)
            {
                var err = ex.Message;
            }

            return(new ActionServiceResult()
            {
                Success = false,
                Code = Code.NotFound
            });
        }