Пример #1
0
        public IActionResult RepositoryDetails(int id)
        {
            GitRepos litem;

            try
            {
                using (var db = new AteliwareContext())
                {
                    var lrepo = from b in db.GitRepositories
                                where b.gitID == id
                                select new GitRepos()
                    {
                        description = b.description,
                        gitID       = b.gitID,
                        language    = b.language,
                        name        = b.name,
                        SearchDate  = b.SearchDate,
                        stars       = b.stars,
                        url         = b.url
                    };

                    litem = lrepo.FirstOrDefault();
                }
            }
            catch (HttpRequestException exc)
            {
                return(BadRequest(exc.Message));
            }

            return(Ok(litem));
        }
Пример #2
0
        private void InitContext()
        {
            var builder = new DbContextOptionsBuilder <AteliwareContext>()
                          .UseInMemoryDatabase();

            var context      = new AteliwareContext(builder.Options);
            var repositories = Enumerable.Range(1, 8)
                               .Select(i => new Entities.Repository(i, $"Foo {i}", $"http{i}", (Language)i));

            context.Repositories.AddRange(repositories);
            var changed = context.SaveChanges();

            _ateliwareContext = context;
        }
Пример #3
0
        public async Task <IActionResult> GitRepositories([FromQuery] string[] lang)
        {
            List <GitRepoDTO> listRepos = new List <GitRepoDTO>();

            try
            {
                var client = _clientFactory.CreateClient("github");

                foreach (var lng in lang)
                {
                    var response = await client.GetAsync(requestRepos + $"?q=language:{lng}&sort=stars&order=desc");

                    response.EnsureSuccessStatusCode();

                    listRepos.Add(await response.Content.ReadAsAsync <GitRepoDTO>());
                }

                List <Item> listItems = new List <Item>();

                //Record this repo infos in database using EF
                using (var db = new AteliwareContext())
                {
                    //Get All repos items separately
                    foreach (var repoUnit in listRepos)
                    {
                        foreach (var itemUnit in repoUnit.items)
                        {
                            listItems.Add(itemUnit);
                        }
                    }
                    //Get just repos which are not in DB
                    var notindbYet = from b in listItems
                                     where !(from c in db.GitRepositories
                                             select c.gitID)
                                     .Contains(b.id)
                                     select b;
                    foreach (var recRepo in notindbYet)
                    {
                        GitRepos lnewrepo = new GitRepos()
                        {
                            gitID       = recRepo.id,
                            description = recRepo.description,
                            name        = recRepo.name,
                            SearchDate  = DateTime.Now,
                            stars       = recRepo.stargazers_count,
                            url         = recRepo.html_url,
                            language    = recRepo.language
                        };

                        db.GitRepositories.Add(lnewrepo);

                        await db.SaveChangesAsync();
                    }
                }
            }
            catch (HttpRequestException exc)
            {
                return(BadRequest(exc.Message));
            }

            return(Ok(listRepos));
        }
 public HomeController(AteliwareContext ateliwareContext)
 {
     _ateliwareContext = ateliwareContext;
 }
Пример #5
0
 public RepositoryRepository(AteliwareContext context)
 {
     _context = context;
 }