コード例 #1
0
        public async Task <List <Artist> > GetArtistsFromDb()
        {
            List <Artist> artists = new List <Artist>();

            using (var dbContext = new DatabaseManager.DataBaseContext())
            {
                var artistsDb = dbContext.Artists.Include(x => x.Videos);
                artists = await artistsDb.ToListAsync();
            }

            return(artists);
        }
コード例 #2
0
        public async Task <Artist> SetArtistAsync(Artist artist)
        {
            Artist existingArtist = null;

            using (var dbContext = new DatabaseManager.DataBaseContext())
            {
                existingArtist = dbContext.Artists.Where(x => x.Id == artist.Id || x.FolderPath == artist.FolderPath || x.Name == artist.Name).FirstOrDefault();

                if (existingArtist != null)
                {
                    existingArtist.Name = artist.Name;
                    existingArtist.Url  = artist.Url;

                    // Add Videos to db Artist which are not yet in db
                    foreach (var video in artist.Videos.Where(x => x.Id == 0))
                    {
                        var existingVideo = existingArtist.Videos.FirstOrDefault(x => x.FilePath == video.FilePath && x.Id != 0);
                        if (existingVideo != null)
                        {
                            existingVideo.ThumbnailUrl = video.ThumbnailUrl;
                            existingVideo.UrlIwara     = video.UrlIwara;
                        }
                        else
                        {
                            existingArtist.Videos.Add(video);
                        }
                    }
                }
                else
                {
                    existingArtist = (await dbContext.AddAsync(artist)).Entity;
                }

                await dbContext.SaveChangesAsync();
            }

            return(existingArtist);
        }