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)); }
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; }
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; }
public RepositoryRepository(AteliwareContext context) { _context = context; }