public RoleService(IGoblinUnitOfWork goblinUnitOfWork, IGoblinRepository <PermissionEntity> permissionRepo, IGoblinRepository <RolePermissionEntity> rolePermissionRepo, IGoblinRepository <RoleEntity> roleRepo) : base(goblinUnitOfWork) { _permissionRepo = permissionRepo; _rolePermissionRepo = rolePermissionRepo; _roleRepo = roleRepo; }
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 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"; }
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 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"; }
public UserService(IGoblinUnitOfWork goblinUnitOfWork, IGoblinRepository <UserEntity> userRepo, IGoblinRepository <RoleEntity> roleRepo, IGoblinRepository <UserRoleEntity> userRoleRepo ) : base( goblinUnitOfWork) { _userRepo = userRepo; _roleRepo = roleRepo; _userRoleRepo = userRoleRepo; }
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; }
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; }
public FileService(IGoblinUnitOfWork goblinUnitOfWork, IGoblinRepository <FileEntity> fileRepo) : base(goblinUnitOfWork) { _fileRepo = fileRepo; }
public SampleService(IGoblinUnitOfWork goblinUnitOfWork, IGoblinRepository <SampleEntity> sampleRepo) : base( goblinUnitOfWork) { _sampleRepo = sampleRepo; }
protected CrawlerService(IGoblinUnitOfWork goblinUnitOfWork, IGoblinRepository <SourceEntity> sourceRepo, IGoblinRepository <PostEntity> postRepo) : base(goblinUnitOfWork) { _sourceRepo = sourceRepo; _postRepo = postRepo; }
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); } } }