public Album Insert(CreateAlbum value) { using (var tran = db.Database.BeginTransaction(System.Data.IsolationLevel.RepeatableRead)) { if (db.Albums.Any(t => EF.Functions.Like(t.Title, value.Title))) { throw new ArgumentException("name must be unique"); } DbGenre genre; if (db.Genres.Any(s => EF.Functions.Like(s.Name, value.Genre))) { genre = db.Genres.FirstOrDefault(s => EF.Functions.Like(s.Name, value.Genre)); } else { var toInsert2 = new DbGenre() { Name = value.Genre }; db.Genres.Add(toInsert2); db.SaveChanges(); genre = toInsert2; } DbArtist artist; if (db.Artists.Any(s => EF.Functions.Like(s.Name, value.Artist))) { artist = db.Artists.FirstOrDefault(s => EF.Functions.Like(s.Name, value.Artist)); } else { var toInsert2 = new DbArtist() { Name = value.Artist }; db.Artists.Add(toInsert2); db.SaveChanges(); artist = toInsert2; } var toInsert = new DbAlbum() { Title = value.Title, ArtistId = artist.Id, GenreId = genre.Id }; db.Albums.Add(toInsert); db.SaveChanges(); tran.Commit(); return(FindById(toInsert.Id)); } }
private async void BookCreateForm_Load(object sender, EventArgs e) { var Genres = await DbGenre.GetGenres(); foreach (string Genre in Genres) { cmbWriterGenre.Items.Add(Genre); } }
public async Task PopulateBooks() { var dbCtx = new LibraryDbContext(); var genre1 = new DbGenre() { Genre = "Education" }; var hashtagAgile = new DbHashtag() { Hastag = "#agile" }; var hashtagCosmos = new DbHashtag() { Hastag = "#cosmos" }; var hashtagCoding = new DbHashtag() { Hastag = "#coding" }; var book1 = new DbBook() { Title = "Clean Code: A Handbook of Agile Software Craftmanship", Author = "Robert C. Martin", Hashtags = new List <DbHashtag>() }; var book2 = new DbBook() { Title = "Cosmos", Author = "Carl Sagan", Hashtags = new List <DbHashtag>() }; dbCtx.Books.Add(book1); dbCtx.Books.Add(book2); dbCtx.Genres.Add(genre1); dbCtx.Hashtags.Add(hashtagAgile); dbCtx.Hashtags.Add(hashtagCosmos); dbCtx.Hashtags.Add(hashtagCoding); book1.Genre = genre1; book1.Hashtags.Add(hashtagAgile); book1.Hashtags.Add(hashtagCoding); book2.Genre = genre1; book1.Hashtags.Add(hashtagCosmos); await dbCtx.SaveChangesAsync(); }
private async void BookUpdateForm_Load(object sender, EventArgs e) { var Genres = await DbGenre.GetGenres(); foreach (string Genre in Genres) { cmbWriterGenre.Items.Add(Genre); if (Book.Genre == Genre) { cmbWriterGenre.SelectedItem = Genre; } } }
public Genre Insert(CreateGenre value) { using (var tran = db.Database.BeginTransaction(System.Data.IsolationLevel.RepeatableRead)) { if (db.Genres.Any(t => EF.Functions.Like(t.Name, value.Name))) { throw new ArgumentException("name must be unique"); } var toInsert = new DbGenre() { Name = value.Name }; db.Genres.Add(toInsert); db.SaveChanges(); tran.Commit(); return(ToModel(toInsert)); } }
private async Task <DbGenre> CreateGenre(string name) { var dbGenre = await _context.Genres.FirstOrDefaultAsync(x => x.Name == name); if (dbGenre == null) { var newGenre = new DbGenre() { Name = name, CreatedUtc = DateTime.UtcNow, UpdatedUtc = DateTime.UtcNow }; _context.Genres.Add(newGenre); await _context.SaveChangesAsync(); return(newGenre); } else { return(dbGenre); } }
public async Task <GenreDetail> AddAsync(string genre) { var dbGenre = await _context.Genres.SingleOrDefaultAsync(x => x.Name == genre); if (dbGenre == null) { dbGenre = new DbGenre() { Name = genre, CreatedUtc = DateTime.UtcNow }; _context.Genres.Add(dbGenre); await _context.SaveChangesAsync(); return(new GenreDetail() { Name = dbGenre.Name, TotalAlbums = 0, TotalArtists = 0, Created = new DateTime(dbGenre.CreatedUtc.Ticks, DateTimeKind.Utc) }); } else { var numAlbums = await _context.Genres.Where(g => g.Name == genre).SelectMany(x => x.AlbumGenres).CountAsync(x => x.Album.PublishStatus == DbPublishedStatus.PUBLISHED); var numArtists = await _context.Genres.Where(g => g.Name == genre).SelectMany(x => x.ArtistGenres).CountAsync(x => x.Artist.PublishStatus == DbPublishedStatus.PUBLISHED); return(new GenreDetail() { Name = dbGenre.Name, TotalAlbums = numAlbums, TotalArtists = numArtists, Created = new DateTime(dbGenre.CreatedUtc.Ticks, DateTimeKind.Utc) }); } }
/// <summary> /// gets a list of all genres /// </summary> /// <returns>list of all genres</returns> public static List <Genre> AllGenres() { return((from DataRow row in DbGenre.AllGenres().Rows select new Genre(row)).ToList()); }
/// <summary> /// inserts a game genre connection /// </summary> /// <param name="genre">genre object</param> /// <param name="gameId">id of game</param> /// <returns></returns> public static int InsertGameGenre(Genre genre, int gameId) { return(DbGenre.InsertGameGenre(genre.Id, gameId)); }
/// <summary> /// gets genre by id /// </summary> /// <param name="id">id of genre</param> public Genre(int id) : this(DbGenre.GetGenre(id)) { }
/// <summary> /// clears all genres from game /// </summary> /// <param name="game">id of game</param> public static void ClearGenres(int game) { DbGenre.DeleteGenresForGame(game); }
/// <summary> /// inserts a genre into the database /// </summary> /// <param name="genreName">name of genres</param> public Genre(string genreName) { GenreName = genreName; Id = DbGenre.InsertGenre(GenreName); }
public void UpdateGenre(DbGenre genre) { _genreRepository.Update(genre); _unitOfWork.Commit(); }
public void CreateGenre(DbGenre genre) { _genreRepository.Add(genre); _unitOfWork.Commit(); }
private Genre ToModel(DbGenre value) { return(new Genre(value.Id, value.Name)); }