Ejemplo n.º 1
0
        /// <summary>
        /// Добавить настройку если нет в систему и в торговый центр
        /// </summary>
        /// <param name="context">Контекст</param>
        /// <param name="customerID">Ид торгового центра</param>
        /// <param name="settings">Коллекция настроек</param>
        public static void AddSettings(this ISystemSettingsContext context, int customerID,
                                       IEnumerable <SystemSettingType> settings)
        {
            foreach (SystemSettingType settingType in settings)
            {
                var systemSettingType = context.SystemSettingTypes.FirstOrDefault(i => i.Name == settingType.Name);
                if (systemSettingType == null)
                {
                    systemSettingType = settingType;
                    context.SystemSettingTypes.Add(systemSettingType);
                }

                var setting = systemSettingType.Settings.FirstOrDefault(i => i.CustomerID == customerID);
                if (setting == null)
                {
                    context.SystemSettings.Add(new Model.SystemSetting()
                    {
                        CustomerID        = customerID,
                        SystemSettingType = systemSettingType,
                        TerminalID        = null
                    });
                }
            }

            context.SaveChanges();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Получить системную настройку
        /// </summary>
        /// <param name="context">Контекст</param>
        /// <param name="customerID">Ид торгового центра</param>
        /// <param name="name">Название настройки</param>
        /// <param name="def">Значение по умолчанию</param>
        /// <returns>Настройка</returns>
        public static string GetSystemSetting(this ISystemSettingsContext context, int customerID, string name,
                                              string def)
        {
            var setting = context.SystemSettings.FirstOrDefault(i =>
                                                                i.CustomerID == customerID && i.SystemSettingType.Name == name && i.TerminalID == null);
            var history = setting?.History.OrderByDescending(i => i.ModifiedDate).FirstOrDefault();
            var value   = history?.SettingValue;

            return(value ?? def);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Получить системную настройку как число
        /// </summary>
        /// <param name="context">Контекст</param>
        /// <param name="customerID">Ид торгового центра</param>
        /// <param name="name">Название настройки</param>
        /// <param name="def">Значение по умолчанию</param>
        /// <returns>Настройка</returns>
        public static int GetSystemSetting(this ISystemSettingsContext context, int customerID, string name, int def)
        {
            var result = context.GetSystemSetting(customerID, name, null);

            if (string.IsNullOrEmpty(result))
            {
                return(def);
            }

            return(int.Parse(result));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Получить значение системной настройки, если нет то добавить
        /// </summary>
        /// <param name="context">Контекст</param>
        /// <param name="customerID">Ид торгового центра</param>
        /// <param name="name">Название настройки</param>
        /// <param name="settingsFormat">Формат настройки</param>
        /// <param name="description">Описание</param>
        /// <param name="type">Тип настройки</param>
        /// <param name="changeAction">Действие при изменении настройки</param>
        /// <param name="def">Значение по умолчанию</param>
        /// <returns>Значение настройки</returns>
        public static string GetOrCreateSystemSetting(this ISystemSettingsContext context, int customerID, string name,
                                                      string settingsFormat, string description, SystemType type, string changeAction, string def)
        {
            var setting =
                context.SystemSettings.FirstOrDefault(i =>
                                                      i.CustomerID == customerID && i.SystemSettingType.Name == name);

            if (setting == null)
            {
                var st = context.SystemSettingTypes.FirstOrDefault(i => i.Name == name);
                if (st == null)
                {
                    st = new SystemSettingType()
                    {
                        Name        = name,
                        Description = description,
                        SystemType  = type,
                        Format      = settingsFormat
                    };
                    context.SystemSettingTypes.Add(st);
                }

                var ss = new Model.SystemSetting()
                {
                    SystemSettingType = st,
                    CustomerID        = customerID,
                    ChangeAction      = changeAction,
                    TerminalID        = null
                };
                context.SystemSettings.Add(ss);
                ss.History.Add(new SystemSettingHistory()
                {
                    SettingValue = def,
                    ModifiedDate = DateTime.Now
                });
                context.SaveChanges();
                return(def);
            }

            var history = setting.History.OrderByDescending(i => i.ModifiedDate).FirstOrDefault();
            var value   = history?.SettingValue;

            return(value ?? def);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Установить значение настройки
        /// </summary>
        /// <param name="context">Контекст</param>
        /// <param name="customerID">Ид торгового центра</param>
        /// <param name="name">Название настройки</param>
        /// <param name="value">Значение по умолчанию</param>
        public static void SetSystemSetting(this ISystemSettingsContext context, int customerID, string name,
                                            string value)
        {
            var setting = context.GetSystemSetting(customerID, name, null);

            if (setting != value)
            {
                var ss = context.SystemSettings.FirstOrDefault(i =>
                                                               i.CustomerID == customerID &&
                                                               i.SystemSettingType.Name == name &&
                                                               i.TerminalID == null);
                ss.History.Add(new SystemSettingHistory()
                {
                    SettingValue = value,
                    ModifiedDate = DateTime.Now
                });
                context.SaveChanges();
            }
        }