public static List <IRegistrationSetting> GetDoubleSettings(IRegistrationSetting setting) { var conflictedSettings = new List <IRegistrationSetting>(); #region Конфликт по условиям var allSettings = RegistrationSettings.GetAll(s => !Equals(s, setting) && setting.SettingType == s.SettingType && s.Status.Value == CoreEntities.DatabookEntry.Status.Active).ToList(); foreach (var documentKind in setting.DocumentKinds) { conflictedSettings.AddRange(allSettings.Where(s => s.DocumentKinds.Any(o => o.DocumentKind == documentKind.DocumentKind)).ToList()); } allSettings = conflictedSettings.ToList(); conflictedSettings.Clear(); if (setting.BusinessUnits.Any()) { foreach (var unit in setting.BusinessUnits) { conflictedSettings.AddRange(allSettings.Where(s => s.BusinessUnits.Any(o => o.BusinessUnit == unit.BusinessUnit)).ToList()); } } else { conflictedSettings.AddRange(allSettings.Where(s => !s.BusinessUnits.Any()).ToList()); } allSettings = conflictedSettings.ToList(); conflictedSettings.Clear(); if (setting.Departments.Any()) { foreach (var department in setting.Departments) { conflictedSettings.AddRange(allSettings.Where(s => s.Departments.Any(o => o.Department == department.Department)).ToList()); } } else { conflictedSettings.AddRange(allSettings.Where(s => !s.Departments.Any()).ToList()); } #endregion return(conflictedSettings.Distinct().ToList()); }
private static string GetSettingType(IDocumentKind kind, IRegistrationSetting setting) { if (kind.AutoNumbering == true) { return(Reports.Resources.RegistrationSettingReport.AutoNumeration); } if (setting != null) { return(RegistrationSettings.Info.Properties.SettingType.GetLocalizedValue(setting.SettingType)); } if (kind.NumberingType == DocumentKind.NumberingType.Registrable) { return(RegistrationSettings.Info.Properties.SettingType.GetLocalizedValue(SettingType.Registration)); } if (kind.NumberingType == DocumentKind.NumberingType.Numerable) { return(RegistrationSettings.Info.Properties.SettingType.GetLocalizedValue(SettingType.Numeration)); } return(string.Empty); }