public override void Initialize() { ModelMappers.MapperRegister(); GlobalApplicationObject.Current.EventsManager.OnApplication_InitializeComplete += EventsManager_OnApplication_InitializeComplete; // GlobalConfigurationManager.ODataBuilder.EntitySet<SiteAdminNavigation>("SiteAdminNavigations"); var Token = System.Configuration.ConfigurationManager.AppSettings["TokenStoreType"]; //Database Server Local if (Token == "Database") { //΢ÐÅtoken Êý¾Ý¿â»º´æ CacheStrategyFactory.RegisterContainerCacheStrategy(() => { var obj = DBContainerCacheStrategy.Instance; ((DBContainerCacheStrategy)obj)._unitOfWork = new CodeFirstDbContext(); return(obj); }); } //var Ticket = System.Configuration.ConfigurationManager.AppSettings["TicketStoreType"]; //Database Server Local //if (Ticket == "Database") //{ // //΢ÐÅtoken Êý¾Ý¿â»º´æ // CacheStrategyFactory<JsApiTicketBag>.RegisterContainerCacheStrategy(() => // { // var obj = DBContainerCacheStrategy.Instance; // ((DBContainerCacheStrategy)obj)._unitOfWork = new CodeFirstDbContext(); // return obj; // }); //} }
/// <summary> /// Scape show data from TVMazeApi and persist data in DB /// Skip shows that are already in DB /// </summary> /// <returns></returns> public async Task ScrapeShows() { var maxMazeShowId = await this.showRepository.GetMaxMazeId() ?? 0; var pageNumber = GetCurrentPageNumber(maxMazeShowId); var showsFromMaze = await this.tvMazeApiHttpClient.GetShowsOnPage(pageNumber); var showsCount = showsFromMaze.Count; _ = showsFromMaze.RemoveAll(s => s.Id <= maxMazeShowId); await this.showRepository.InsertRange(ModelMappers.ConvertShowsFromMazeToShows(showsFromMaze)); var isEndOfShowPagesReached = showsCount == 0; while (!isEndOfShowPagesReached) { var tasks = Enumerable.Range(1, 10) .Select(i => this.taskLimiter.LimitAsync(() => ScrapeShowAsync(++pageNumber + i))); var showsCountArray = await Task.WhenAll(tasks).ConfigureAwait(false); isEndOfShowPagesReached = showsCountArray.Any(sc => sc == 0); } }
private async Task <int> ScrapeShowAsync(int pageNumber) { var showsFromMaze = await this.tvMazeApiHttpClient.GetShowsOnPage(++pageNumber); await this.showRepository.InsertRange(ModelMappers.ConvertShowsFromMazeToShows(showsFromMaze)); return(showsFromMaze.Count); }
public void DBConfig() { var Asss = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.FullName.Contains("Innocellence") || a.FullName.Contains("Infrastructure")); foreach (var ass in Asss) { DatabaseInitializer.AddMapperAssembly(ass); } ModelMappers.MapperRegister(); }
public override void Initialize() { GlobalApplicationObject.Current.EventsManager.OnApplication_InitializeComplete += EventsManager_OnApplication_InitializeComplete; ModelMappers.MapperRegister(); // 注册微信消息事件 QyMessageHandler<QyCustomMessageContext>.QyMessageHandlerEvent += QyMessageHandlers.QyCustomMessageHandler.StaticQyMessageEventHandler; // GlobalApplicationObject.Current.EventsManager.OnApplication_InitializeComplete += EventsManager_OnApplication_InitializeComplete; // GlobalConfigurationManager.ODataBuilder.EntitySet<SiteAdminNavigation>("SiteAdminNavigations"); }
public void ConvertShowsFromMazeToShows() { // Arrange var expected = GetShows() as List <Show>; var showsFromMaze = GetShowsFromMaze(); // Act var result = ModelMappers.ConvertShowsFromMazeToShows(showsFromMaze as List <ShowDataMaze>); // Assert _ = result.Should().BeEquivalentTo(expected); }
private async Task ScrapeCastAsync(int showMazeId) { var show = this.showRepository.GetByMazeId(showMazeId); var castFromMaze = await this.tvMazeApiHttpClient.GetCastFromShow(showMazeId); var castFromMazeWithoutDuplicates = castFromMaze.GroupBy(c => c.Person.Id).Select(i => i.First()); var mazeIds = castFromMazeWithoutDuplicates.Select(c => c.Person.Id); var castMemberIdsInDb = this.castMemberRepository.GetIds(mazeIds); await this.castMemberRepository.InsertCastMemberRelationsWithShow(show.Id, castMemberIdsInDb); var castFromMazeNotInDb = castFromMazeWithoutDuplicates .Where(cm => castMemberIdsInDb.All(cmi => cmi.MazeId != cm.Person.Id)); await this.castMemberRepository .InsertRange(ModelMappers.ConvertCastFromMazeToCastMembers(show, castFromMazeNotInDb)); }
public override void Initialize() { ModelMappers.MapperRegister(); // GlobalApplicationObject.Current.EventsManager.OnApplication_InitializeComplete += EventsManager_OnApplication_InitializeComplete; // GlobalConfigurationManager.ODataBuilder.EntitySet<SiteAdminNavigation>("SiteAdminNavigations"); }