public async Task SetParsedGallery(ParsedGallery parsedGallery) { using (var db = new DataContext()) { await db.ParsedGalleries.AddAsync(parsedGallery); await db.SaveChangesAsync(); } }
private ParsedGallery GetParsedGallery(IGallery galleryResult, IParser parser, ParsingState currentParsingState) { var parsedGallery = new ParsedGallery { ParsingStateId = currentParsingState.Id }; var @switch = new Dictionary <Type, Action> { { typeof(ChaikaParser), () => parsedGallery.Source = Source.Chaika }, { typeof(LocalDbParser), () => parsedGallery.Source = Source.LocalDb }, { typeof(EHentaiParser), () => { var ehp = parser as EHentaiParser; parsedGallery.Source = ehp.Type == EhentaiType.Ehentai ? Source.Ehentai : Source.Exhentai; } }, }; @switch[parser.GetType()](); // Common properties parsedGallery.GalleryId = galleryResult.Id; parsedGallery.Category = galleryResult.Category; parsedGallery.FileCount = galleryResult.FileCount; parsedGallery.FileSize = galleryResult.FileSize; parsedGallery.IsExpunged = galleryResult.IsExpunged; parsedGallery.PostedDate = galleryResult.PostedDateTime; parsedGallery.Rating = galleryResult.Rating; parsedGallery.Tags = galleryResult.Tags.Select(x => $"{x.Namespace}:{x.Name}"); parsedGallery.Title = galleryResult.Title; parsedGallery.TitleJpn = galleryResult.TitleJpn; parsedGallery.Uploader = galleryResult.Uploader; parsedGallery.Url = galleryResult.Url; parsedGallery.DateAdded = DateTime.Now; // Chaika extra if (galleryResult is ChaikaGallery) { var chaikaGallery = galleryResult as ChaikaGallery; parsedGallery.Fjord = chaikaGallery.Fjord; } // Ehentai extra if (galleryResult is ExGallery) { var exGallery = galleryResult as ExGallery; parsedGallery.Torrentcount = exGallery.Torrentcount; parsedGallery.Thumb = exGallery.Thumb; parsedGallery.Token = exGallery.Token; parsedGallery.ArchiverKey = exGallery.ArchiverKey; } return(parsedGallery); }