Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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);
        }