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); }
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); }