public BranchModel AddBranch(BranchModel branch) { if (DB.Branches.SingleOrDefault(p => p.Name == branch.Name) != null) { throw new ExistingBranchNameException(); } if (DB.Adresses.SingleOrDefault(p => p.City == branch.City && p.AdressLine == branch.AdressLine) != null) { throw new ExistingAdressException(); } using (DB.Database.BeginTransaction()) { if (branch.Latitude == 0 || branch.Longitude == 0) { GetLatLngByAdress(branch); } Location addedLocation = branch.ConvertToLocation(); DB.Locations.Add(addedLocation); DB.SaveChanges(); branch.LocationId = addedLocation.LocationId; Branch addedBranch = branch.ConvertToBranch(); DB.Branches.Add(addedBranch); DB.SaveChanges(); branch.BranchId = addedBranch.BranchId; Adress addedAdress = branch.ConvertToAdress(); DB.Adresses.Add(addedAdress); DB.SaveChanges(); BranchesAdress branchesAdress = new BranchesAdress(); branchesAdress.AdressId = addedAdress.AdressId; branchesAdress.BranchId = addedBranch.BranchId; DB.BranchesAdresses.Add(branchesAdress); DB.SaveChanges(); DB.Database.CommitTransaction(); } return(branch); }
public BranchesAdressModel(BranchesAdress branchesAdress) { BranchAdressId = branchesAdress.BranchAdressId; BranchId = branchesAdress.BranchId; AdressId = branchesAdress.AdressId; }