public void AddCandidateToAdvertisement(int advertisementId, int candidateId) { var advertisement = this.context.Advertisements.FirstOrDefault(a => a.Id == advertisementId); if (advertisement == null) { throw new ArgumentException("Invalid advertisement id.", "advertisementId"); } var candidate = this.context.Candidates.FirstOrDefault(c => c.Id == candidateId); if (candidate == null) { throw new ArgumentException("Invalid candidate id.", "candidateId"); } var relation = new AdvertisementCandidate() { Advertisement = advertisement, Candidate = candidate }; advertisement.Candidates.Add(relation); candidate.Advertisements.Add(relation); this.context.SaveChanges(); }
public void Candidate_CanBeRemovedFromAdvertisement() { var otherCandidate = new Candidate(); var relation1 = new AdvertisementCandidate() { Advertisement = this.advertisement, Candidate = this.candidate }; var relation2 = new AdvertisementCandidate() { Advertisement = this.advertisement, Candidate = otherCandidate }; advertisement.Candidates.Add(relation1); advertisement.Candidates.Add(relation2); candidate.Advertisements.Add(relation1); otherCandidate.Advertisements.Add(relation2); this.context.SaveChanges(); var service = new AdvertisementCandidateService(context); Assert.AreEqual(2, this.context.AdvertisementsCandidates.Count()); service.RemoveCandidateFromAdvertisement(this.advertisement.Id, this.candidate.Id); Assert.AreEqual(1, this.context.AdvertisementsCandidates.Count()); }