Esempio n. 1
0
 public RoleService(IGoblinUnitOfWork goblinUnitOfWork,
                    IGoblinRepository <PermissionEntity> permissionRepo,
                    IGoblinRepository <RolePermissionEntity> rolePermissionRepo,
                    IGoblinRepository <RoleEntity> roleRepo) : base(goblinUnitOfWork)
 {
     _permissionRepo     = permissionRepo;
     _rolePermissionRepo = rolePermissionRepo;
     _roleRepo           = roleRepo;
 }
        public HanselManCrawlerService(IGoblinUnitOfWork goblinUnitOfWork, IGoblinRepository <SourceEntity> sourceRepo, IGoblinRepository <PostEntity> postRepo) : base(goblinUnitOfWork, sourceRepo, postRepo)
        {
            Name = "Scott Hanselman";

            Domain = "https://www.hanselman.com/blog";

            UrlPattern = $"{Domain}?page={{pageNo}}";

            PostUrlQuerySelector = ".TitleLinkStyle";
        }
        public CodeOpinionCrawlerService(IGoblinUnitOfWork goblinUnitOfWork, IGoblinRepository <SourceEntity> sourceRepo, IGoblinRepository <PostEntity> postRepo) : base(goblinUnitOfWork, sourceRepo, postRepo)
        {
            Name = "Code Opinion";

            Domain = "https://codeopinion.com";

            UrlPattern = $"{Domain}/page/{{pageNo}}";

            PostUrlQuerySelector = ".entry-title a";
        }
Esempio n. 4
0
        public HaackedCrawlerService(IGoblinUnitOfWork goblinUnitOfWork, IGoblinRepository <SourceEntity> sourceRepo, IGoblinRepository <PostEntity> postRepo) : base(goblinUnitOfWork, sourceRepo, postRepo)
        {
            Name = "You've Been Haacked | Phil Haack";

            Domain = "https://haacked.com";

            UrlPattern = $"{Domain}/archive/page/{{pageNo}}";

            PostUrlQuerySelector = ".post-title a";
        }
        public BlogCwaMeUkCrawlerService(IGoblinUnitOfWork goblinUnitOfWork, IGoblinRepository <SourceEntity> sourceRepo, IGoblinRepository <PostEntity> postRepo) : base(goblinUnitOfWork, sourceRepo, postRepo)
        {
            Name = "The Morning Brew";

            Domain = "http://blog.cwa.me.uk";

            UrlPattern = $"{Domain}/page/{{pageNo}}";

            PostUrlQuerySelector = "div.post-content li a";
        }
        public TalkingDotNetCrawlerService(IGoblinUnitOfWork goblinUnitOfWork, IGoblinRepository <SourceEntity> sourceRepo, IGoblinRepository <PostEntity> postRepo) : base(goblinUnitOfWork, sourceRepo, postRepo)
        {
            Name = "Talking Dotnet";

            Domain = "https://www.talkingdotnet.com";

            UrlPattern = $"{Domain}/page/{{pageNo}}";

            PostUrlQuerySelector = ".entry-title a";
        }
Esempio n. 7
0
 public UserService(IGoblinUnitOfWork goblinUnitOfWork,
                    IGoblinRepository <UserEntity> userRepo,
                    IGoblinRepository <RoleEntity> roleRepo,
                    IGoblinRepository <UserRoleEntity> userRoleRepo
                    ) : base(
         goblinUnitOfWork)
 {
     _userRepo     = userRepo;
     _roleRepo     = roleRepo;
     _userRoleRepo = userRoleRepo;
 }
Esempio n. 8
0
        public DotNetWeeklyCrawlerService(IGoblinUnitOfWork goblinUnitOfWork, IGoblinRepository <SourceEntity> sourceRepo, IGoblinRepository <PostEntity> postRepo) : base(goblinUnitOfWork, sourceRepo, postRepo)
        {
            Name = "dotNET Weekly";

            Domain = "https://www.dotnetweekly.com";

            UrlPattern = $"{Domain}/week/{{week}}/year/{{year}}";

            PostUrlQuerySelector = ".post-title a";

            var dateTimeNow = GoblinDateTimeHelper.SystemTimeNow;

            _weekNow = _weekCurr = CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(dateTimeNow.DateTime, CalendarWeekRule.FirstDay, DayOfWeek.Sunday);

            _yearCurr = dateTimeNow.Year;
        }
Esempio n. 9
0
 public PostService(IGoblinUnitOfWork goblinUnitOfWork,
                    IGoblinRepository <PostEntity> postRepo,
                    ICrawlerService <BlogCwaMeUkCrawlerService> blogCwaMeUkCrawlerService,
                    ICrawlerService <DotNetWeeklyCrawlerService> dotNetWeeklyCrawlerService,
                    ICrawlerService <HanselManCrawlerService> hanselManCrawlerService,
                    ICrawlerService <HaackedCrawlerService> haackedCrawlerService,
                    ICrawlerService <TalkingDotNetCrawlerService> talkingDotNetCrawlerService,
                    ICrawlerService <CodeOpinionCrawlerService> codeOpinionCrawlerService
                    ) : base(
         goblinUnitOfWork)
 {
     _postRepo = postRepo;
     _blogCwaMeUkCrawlerService   = blogCwaMeUkCrawlerService;
     _dotNetWeeklyCrawlerService  = dotNetWeeklyCrawlerService;
     _hanselManCrawlerService     = hanselManCrawlerService;
     _haackedCrawlerService       = haackedCrawlerService;
     _talkingDotNetCrawlerService = talkingDotNetCrawlerService;
     _codeOpinionCrawlerService   = codeOpinionCrawlerService;
 }
Esempio n. 10
0
 protected Service(IGoblinUnitOfWork goblinUnitOfWork)
 {
     GoblinUnitOfWork = goblinUnitOfWork;
 }
Esempio n. 11
0
 public BootstrapperService(IGoblinUnitOfWork goblinUnitOfWork, IBootstrapper bootstrapper) : base(
         goblinUnitOfWork)
 {
     _bootstrapper = bootstrapper;
 }
Esempio n. 12
0
 public FileService(IGoblinUnitOfWork goblinUnitOfWork, IGoblinRepository <FileEntity> fileRepo) : base(goblinUnitOfWork)
 {
     _fileRepo = fileRepo;
 }
Esempio n. 13
0
        public static async Task SavePostEntitiesAsync(string sourceDomain, IEnumerable <MetadataModel> metadataModels, DateTimeOffset crawledTime, IGoblinRepository <PostEntity> postRepo, IGoblinUnitOfWork goblinUnitOfWork)
        {
            // Posts Metadata to Post Crawled Database
            foreach (var postMetadata in metadataModels)
            {
                var postEntity = new PostEntity
                {
                    SourceUrl       = sourceDomain,
                    Url             = postMetadata.OriginalUrl,
                    Title           = postMetadata.Title,
                    ImageUrl        = postMetadata.Image,
                    Description     = postMetadata.Description,
                    SiteName        = postMetadata.SiteName,
                    AuthorName      = postMetadata.Author,
                    AuthorAvatarUrl = null,
                    PublishTime     = postMetadata.PublishedTime == default ? crawledTime : postMetadata.PublishedTime,
                    LastCrawledTime = crawledTime
                };

                if (postMetadata.Tags?.Any() == true)
                {
                    postEntity.Tags = string.Join(",", postMetadata.Tags);
                }

                // Save to Database

                postRepo.Add(postEntity);

                await goblinUnitOfWork.SaveChangesAsync().ConfigureAwait(true);
            }
        }
    }
Esempio n. 14
0
        protected CrawlerService(IGoblinUnitOfWork goblinUnitOfWork, IGoblinRepository <SourceEntity> sourceRepo, IGoblinRepository <PostEntity> postRepo) : base(goblinUnitOfWork)
        {
            _sourceRepo = sourceRepo;

            _postRepo = postRepo;
        }
Esempio n. 15
0
 public BootstrapperService(IGoblinUnitOfWork goblinUnitOfWork, IPostService postService, IBootstrapper bootstrapper) : base(goblinUnitOfWork)
 {
     _postService  = postService;
     _bootstrapper = bootstrapper;
 }
Esempio n. 16
0
 public SampleService(IGoblinUnitOfWork goblinUnitOfWork, IGoblinRepository <SampleEntity> sampleRepo) : base(
         goblinUnitOfWork)
 {
     _sampleRepo = sampleRepo;
 }
 public EmailService(IGoblinUnitOfWork goblinUnitOfWork) : base(goblinUnitOfWork)
 {
 }