Ejemplo n.º 1
0
        public JsonResult Base(int Id, string Name)
        {
            if (string.IsNullOrWhiteSpace(Name))
            {
                return(Json(new Text("Имя шаблона не может быть пустым")));
            }

            // Поиск шаблона
            if (coreDB.RequestsFilter_Templates.Where(i => i.Id == Id).FirstOrDefault() is Template item)
            {
                // Меняем имя
                item.Name = Name;

                // Сохраняем базу
                coreDB.SaveChanges();

                // Удаляем кеш для шаблона
                ISPCache.RemoveTemplate(Id);

                //
                Trigger.OnChange((Id, 0));

                // Успех
                return(Json(new TrueOrFalse(true)));
            }

            return(Json(new Text("Шаблон не найден")));
        }
Ejemplo n.º 2
0
        public JsonResult RemoveToRuleOverride(int DomainId, int TemplateId, int Id)
        {
            #region Демо режим
            if (Platform.IsDemo)
            {
                return(Json(new Text("Операция недоступна в демо-режиме")));
            }
            #endregion

            // Удаляем кеш для домена
            ISPCache.RemoveDomain(DomainId);
            ISPCache.RemoveTemplate(TemplateId);

            // Удаляем правило из шаблона
            if (TemplateId != 0 && coreDB.RequestsFilter_Template_RuleOverrides.RemoveAttach(coreDB, Id))
            {
                Trigger.Template.OnChange((TemplateId, 0));
                return(Json(new TrueOrFalse(true)));
            }

            // Удаляем правило из домена
            if (DomainId != 0 && coreDB.RequestsFilter_Domain_RuleOverrides.RemoveAttach(coreDB, Id))
            {
                Trigger.Domain.OnChange((DomainId, "Rules"));
                return(Json(new TrueOrFalse(true)));
            }

            // Отдаем результат
            return(Json(new TrueOrFalse(false)));
        }
Ejemplo n.º 3
0
        public JsonResult Remove(int Id)
        {
            #region Демо режим
            if (Platform.IsDemo)
            {
                return(Json(new Text("Операция недоступна в демо-режиме")));
            }
            #endregion

            // Удаляем шаблон
            if (coreDB.RequestsFilter_Templates.RemoveAttach(coreDB, Id))
            {
                // Удаляем кеш для шаблона
                ISPCache.RemoveTemplate(Id);

                // Отдаем результат
                return(Json(new TrueOrFalse(true)));
            }

            return(Json(new Text("Ошибка ;(")));
        }
Ejemplo n.º 4
0
        public JsonResult Save(Template tpl, IDictionary <string, Rule> rules = null, IDictionary <string, RuleReplace> RuleReplaces = null, IDictionary <string, RuleOverride> RuleOverrides = null, IDictionary <string, RuleArg> RuleArgs = null, bool IsAPI = false)
        {
            #region Демо режим
            if (Platform.IsDemo)
            {
                return(Json(new Text("Операция недоступна в демо-режиме")));
            }
            #endregion

            if (string.IsNullOrWhiteSpace(tpl.Name))
            {
                return(Json(new Text("Имя шаблона не может быть пустым")));
            }

            // Новый шаблон
            if (tpl.Id == 0)
            {
                // Создаем правила
                tpl.Rules.UpdateOrAddRange(rules, out var NewRules);
                tpl.RuleReplaces.UpdateOrAddRange(RuleReplaces, out var NewRuleReplace);
                tpl.RuleOverrides.UpdateOrAddRange(RuleOverrides, out var NewRuleOverrides);
                tpl.RuleArgs.UpdateOrAddRange(RuleArgs, out var NewRuleArgs);

                // Добовляем в базу
                coreDB.RequestsFilter_Templates.Add(tpl);

                // Сохраняем базу
                coreDB.SaveChanges();

                // Отдаем новый Id шаблона и Id новых правил
                return(Json(new UpdateToIds(IsAPI ? "accepted" : null, tpl.Id, NewRules, NewRuleReplace, NewRuleOverrides, NewRuleArgs)));
            }

            // Старый шаблон
            else
            {
                // Поиск шаблона
                if (coreDB.RequestsFilter_Templates.FindAndInclude(tpl.Id) is var FindTPL && FindTPL == null)
                {
                    return(Json(new Text("Шаблон не найден")));
                }

                // Обновляем параметры шаблона
                if (!IsAPI)
                {
                    CommonModels.Update(FindTPL, tpl);
                }

                // Записываем новые правила и перезаписываем старые
                FindTPL.Rules.UpdateOrAddRange(rules, out var NewRules);
                FindTPL.RuleReplaces.UpdateOrAddRange(RuleReplaces, out var NewRuleReplace);
                FindTPL.RuleOverrides.UpdateOrAddRange(RuleOverrides, out var NewRuleOverrides);
                FindTPL.RuleArgs.UpdateOrAddRange(RuleArgs, out var NewRuleArgs);

                // Сохраняем базу
                coreDB.SaveChanges();

                // Удаляем кеш для шаблона
                ISPCache.RemoveTemplate(tpl.Id);

                // API
                if (IsAPI)
                {
                    return(Json(new UpdateToIds("accepted", tpl.Id, NewRules, NewRuleReplace, NewRuleOverrides, NewRuleArgs)));
                }

                // Отдаем сообщение и Id новых правил
                return(Json(new UpdateToIds("Настройки шаблона сохранены", 0, NewRules, NewRuleReplace, NewRuleOverrides, NewRuleArgs)));
            }
        }