/// <summary> /// Removes the association between a check and a language. /// If the association doesn't exist, nothing happens. /// </summary> /// <param name="checkName">Check to disable on language.</param> /// <param name="language">Language to disable check on.</param> public void DisableCheckForLanguage(string checkName, string language) { var candidates = LanguageChecks.Where(lc => lc.LanguagesRow.Name.Equals(language) && lc.ChecksRow.Name.Equals(checkName)); if (candidates.Count() == 0) { return; } LanguageChecks.RemoveLanguageChecksRow(candidates.First()); }
/// <summary> /// Establishes an association between a check and a language. /// </summary> /// <param name="checkName">Check to enable on language.</param> /// <param name="language">Language to enable check on.</param> public void EnableCheckForLanguage(string checkName, string language) { var checkRow = Checks.Single(c => c.Name.Equals(checkName)); var languageRow = Languages.Single(l => l.Name.Equals(language)); if (LanguageChecks.Any(row => row.CheckID == checkRow.ID && row.LanguageID == languageRow.ID)) { return; } LanguageChecks.AddLanguageChecksRow(checkRow, languageRow); }
/// <summary> /// Establishes or removes an association between a check and all languages. /// </summary> /// <param name="checkName">Check to enable or disable on all languages.</param> /// <param name="enable">If true, an association will be established. If false, the association will be removed if any.</param> public void EnableCheckForAllLanguages(string checkName, bool enable) { var checkRow = Checks.Single(c => c.Name.Equals(checkName)); if (enable) { //Add any missing entries for this check foreach (var languageRow in Languages) { if (LanguageChecks.Any(row => row.CheckID == checkRow.ID && row.LanguageID == languageRow.ID)) { continue; } LanguageChecks.AddLanguageChecksRow(checkRow, languageRow); } } else { //Remove existing entries for this check LanguageChecks.Where(c => c.ChecksRow.Name.Equals(checkName)).ToList().ForEach(LanguageChecks.RemoveLanguageChecksRow); } }