public SystemController(ApplicationDbContext dbContext, IDirectoryPopulationService directoryPopulationService, IScholarService scholarService, ISiteFarmService siteFarmService) { this.dbContext = dbContext; this.directoryPopulationService = directoryPopulationService; this.scholarService = scholarService; this.siteFarmService = siteFarmService; }
private static async Task ProcessSitePeople(ApplicationDbContext dbContext, ISiteFarmService siteFarmService) { // grab N people who haven't been sync'd in a while var sitePeople = await dbContext.SitePeople.Where(sp => sp.ShouldSync) .OrderBy(sp => sp.LastSync).Include(sp => sp.Person).Take(50).ToArrayAsync(); _log.Information("Syncing {num} people to SiteFarm", sitePeople.Length); foreach (var sitePerson in sitePeople) { try { _log.Information("Processing {name} ({id})", sitePerson.Person.FullName, sitePerson.Person.Id); await siteFarmService.PublishPerson(sitePerson); } catch { _log.Warning("Could not process user {id}", sitePerson.Person.Id); } } }