예제 #1
0
 public SystemController(ApplicationDbContext dbContext, IDirectoryPopulationService directoryPopulationService, IScholarService scholarService, ISiteFarmService siteFarmService)
 {
     this.dbContext = dbContext;
     this.directoryPopulationService = directoryPopulationService;
     this.scholarService             = scholarService;
     this.siteFarmService            = siteFarmService;
 }
예제 #2
0
        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);
                }
            }
        }