public CategoriesDonationsRelation Delete(CategoriesDonationsRelation donation) { var entity = _dbContext.CategoryDonationRelations.SingleOrDefault(x => x.ID == donation.ID); if (entity != null) { _dbContext.CategoryDonationRelations.Remove(entity); _dbContext.SaveChanges(); } return(entity); }
public CategoriesDonationsRelation Update(CategoriesDonationsRelation relation) { var entity = _dbContext.CategoryDonationRelations .SingleOrDefault(x => x.ID == relation.ID); if (entity != null) { entity.Category = relation.Category; entity.CategoryID = relation.CategoryID; entity.Donation = relation.Donation; entity.DonationID = relation.DonationID; _dbContext.CategoryDonationRelations.Update(entity); _dbContext.SaveChanges(); } return(entity); }
public CategoriesDonationsRelation Add(int donationId, int categoryId) { var donation = _dbContext.Donations.Single(x => x.ID == donationId); var category = _dbContext.Categories.Single(x => x.ID == categoryId); var relation = new CategoriesDonationsRelation { ID = 0, Category = category, CategoryID = categoryId, Donation = donation, DonationID = donationId }; _dbContext.CategoryDonationRelations.Add(relation); _dbContext.SaveChanges(); return(relation); }
private CategoriesDonationsRelation CreateRelation(Donation donation, Category category) { var relation = _dbContext.CategoryDonationRelations .SingleOrDefault(x => x.CategoryID == category.ID && x.DonationID == donation.ID); if (relation is null) { relation = new CategoriesDonationsRelation { ID = 0, Category = category, CategoryID = category.ID, Donation = donation, DonationID = donation.ID }; _dbContext.CategoryDonationRelations.Add(relation); _dbContext.SaveChanges(); } return(relation); }
public Donation Add(Donation donation, IEnumerable <Category> categories) { using var transaction = _dbContext.Database.BeginTransaction(); try { _dbContext.Donations.Add(donation); _dbContext.SaveChanges(); } catch (Exception) { transaction.Rollback(); throw; } if (donation.DonationCategories is null) { donation.DonationCategories = new List <CategoriesDonationsRelation>(); } foreach (var item in categories) { Category category = null; try { category = CreateCategory(category); } catch (Exception) { transaction.Rollback(); throw; } if (category.DonationCategories is null) { category.DonationCategories = new List <CategoriesDonationsRelation>(); } CategoriesDonationsRelation relation = null; try { relation = CreateRelation(donation, category); } catch (Exception) { transaction.Rollback(); throw; } try { AddRelationToDonationAndCategory(donation, category, relation); } catch (Exception) { transaction.Rollback(); throw; } } transaction.Commit(); return(donation); }
private void AddRelationToDonationAndCategory(Donation donation, Category category, CategoriesDonationsRelation relation) { if (donation.DonationCategories.SingleOrDefault(x => x.ID == relation.ID) is null) { donation.DonationCategories.Add(relation); } if (category.DonationCategories.SingleOrDefault(x => x.ID == relation.ID) is null) { category.DonationCategories.Add(relation); } _dbContext.SaveChanges(); }
public CategoriesDonationsRelation Add(CategoriesDonationsRelation relation) { _dbContext.CategoryDonationRelations.Add(relation); _dbContext.SaveChanges(); return(relation); }