public async Task SetParsedGallery(ParsedGallery parsedGallery)
        {
            using (var db = new DataContext())
            {
                await db.ParsedGalleries.AddAsync(parsedGallery);

                await db.SaveChangesAsync();
            }
        }
Exemple #2
0
        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);
        }