Esempio n. 1
0
        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;
            //    });
            //}
        }
Esempio n. 2
0
        /// <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);
            }
        }
Esempio n. 3
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);
        }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
        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);
        }
Esempio n. 7
0
        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));
        }
Esempio n. 8
0
 public override void Initialize()
 {
     ModelMappers.MapperRegister();
     // GlobalApplicationObject.Current.EventsManager.OnApplication_InitializeComplete += EventsManager_OnApplication_InitializeComplete;
     // GlobalConfigurationManager.ODataBuilder.EntitySet<SiteAdminNavigation>("SiteAdminNavigations");
 }