Ejemplo n.º 1
0
        private static void SeedCategoryMenuItems()
        {
            FoxEbookDbService      foxEbookDbService      = new FoxEbookDbService();
            FoxEbookCrawlerService foxEbookCrawlerService = new FoxEbookCrawlerService();

            var categories = foxEbookCrawlerService.GetCategoryItems();

            foreach (var category in categories)
            {
                var productsCount = foxEbookCrawlerService.GetNetProductsCountUnderCategory(category);
                int i;
                if (category.PageCount > 1)
                {
                    for (i = 1; i < category.PageCount; i++)
                    {
                        category.Pages.Add(new FoxePage()
                        {
                            PageNo    = i,
                            Category  = category,
                            CreatedOn = DateTime.Now,
                            DownloadableProductsCount = category.FirstPageProductCount
                        });
                    }
                    category.Pages.Add(new FoxePage()
                    {
                        PageNo    = i,
                        Category  = category,
                        CreatedOn = DateTime.Now,
                        DownloadableProductsCount = category.LastPageProductCount
                    });
                }
                else
                {
                    category.Pages.Add(new FoxePage()
                    {
                        PageNo    = 1,
                        Category  = category,
                        CreatedOn = DateTime.Now,
                        DownloadableProductsCount = category.FirstPageProductCount
                    });
                }
                LogManager.WriteToLog(new LogMessage()
                {
                    Message = string.Format("{0} has  #{1} Products under #{2} Pages", category.Name, category.ProductCount, category.PageCount)
                });
            }

            var rootCategory = new FoxeCategory()
            {
                Name             = "FoxeWeb",
                SEOFriendlyName  = "foxeweb",
                ParentCategoryId = null,
                CreatedOn        = DateTime.Now,
                Rank             = 0,
                Weight           = 0
            };

            rootCategory.ChildCategories = categories;
            foxEbookDbService.AddCategoryMenuItem(rootCategory);
        }
Ejemplo n.º 2
0
        private static void SeedSortmenuItems()
        {
            FoxEbookDbService      foxEbookDbService      = new FoxEbookDbService();
            FoxEbookCrawlerService foxEbookCrawlerService = new FoxEbookCrawlerService();
            var sortItems = foxEbookCrawlerService.GetSortMenuItems();

            foxEbookDbService.AddSortMenuItems(sortItems);
        }
Ejemplo n.º 3
0
        private static void ExceuteJob(Job j)
        {
            try
            {
                IFoxEbookCrawlerService foxEbookCrawlerService = new FoxEbookCrawlerService();
                j.StartTime = DateTime.Now;
                j.JobStatus = JobStatus.Running;
                j.JobNotifications.OnJobRunning(new JobRunningEventArgs()
                {
                    Job = j
                });
                string msg = String.Format("Fetching Products Under Category: {0} In Page #{1}",
                                           j.FoxePage.Category.SEOFriendlyName,
                                           j.FoxePage.PageNo);
                LogManager.WriteToLog(new LogMessage()
                {
                    Message = msg
                });

                IList <FoxeProduct> foxeProducts = foxEbookCrawlerService.GetProductsUnderPage(j.FoxePage);

                msg = String.Format("Found '{0}' Products Under Category: {1} In Page #{2}",
                                    foxeProducts.Count,
                                    j.FoxePage.Category.SEOFriendlyName,
                                    j.FoxePage.PageNo);

                LogManager.WriteToLog(new LogMessage()
                {
                    Message = msg
                });
                j.JobStatus = JobStatus.Completed;
                j.EndTime   = DateTime.Now;
                j.DownloadedProductsCount          = foxeProducts.Count;
                j.FoxePage.DownloadedProductsCount = foxeProducts.Count;
                j.JobNotifications.OnJobCompleted(new JobCompletedEventArgs()
                {
                    Job = j, FoxeProducts = foxeProducts
                });

                if (JobScheduler.State == SchedulerState.Paused)
                {
                    LogManager.WriteToLog(new LogMessage()
                    {
                        Message = "Scheduler Paused."
                    });
                }
            }
            catch (Exception e)
            {
                j.EndTime   = DateTime.Now;
                j.JobStatus = JobStatus.Faulted;
                LogManager.WriteToLog(new LogMessage()
                {
                    Message = "e.ToString()", Level = LogLevel.Critical
                });
                j.JobNotifications.OnJobFauled(new JobFauledEventArgs()
                {
                    Job       = j,
                    Exception = e
                });
            }
        }