private async Task <List <Post> > FetchNewPosts(FanBentoDatabase database) { var posts = new List <Post>(); var hasNextPage = false; var idList = database.Post.Select(t => t.Id).ToHashSet(); do { List <Post> list; (list, hasNextPage) = await FanboxApi.GetPostsList(hasNextPage); var newPostsList = list.AsParallel().Where(t => !idList.Contains(t.Id)).ToList(); if (newPostsList.Count != list.Count && Configuration.Config["Fanbox:FetchToEnd"] != "true") { // some posts already exists, next page should all be old posts hasNextPage = false; } await DownloadPostsImages(newPostsList); await DownloadPostsFiles(newPostsList); posts.AddRange(newPostsList); } while (hasNextPage); return(posts); }
public PostsController(FanBentoDatabase context, IWebHostEnvironment environment) { _context = context; _environment = environment; }
private async Task InitDatabase() { Database = new FanBentoDatabase(Configuration.Config["Database:ConnectionString"]); await Database.Database.EnsureCreatedAsync(); }