public Tag CreateTagAndAddTagInApplicant(TagCreate tagAddApplicant) { var linqTag = (from iTag in Tags where iTag.TagName.ToLower().CompareTo(tagAddApplicant.TagName.ToLower()) == 0 select iTag); if (linqTag.Count() == 0) { Tag tag = new Tag(tagAddApplicant); tag.Applicants = new List <Applicant>(); tag.Applicants.Add(Applicants.Find(tagAddApplicant.ApplicantId)); Tags.Add(tag); SaveChanges(); return(tag); } else if (linqTag.Count() == 1) { if (linqTag.First().Applicants.Where(p => p.ApplicantId == tagAddApplicant.ApplicantId).Count() == 0) { linqTag.First().Applicants.Add(Applicants.Find(tagAddApplicant.ApplicantId)); SaveChanges(); } return(linqTag.First()); } else { throw new Exception("Ошибка добавления тега. Несколько тегов с одним названием"); } }
public void DeleteTag(TagCreate tagCreate) { Applicant applicant = Applicants.Find(tagCreate.ApplicantId); Tag tag = Tags.Find(tagCreate.TagId); applicant.Tags.Remove(tag); if (tag.Applicants.Count == 0) { Tags.Remove(tag); } }