コード例 #1
0
        public JsonResult Save(Domain domain)
        {
            #region Демо режим
            if (Platform.IsDemo)
            {
                return(Json(new Text("Операция недоступна в демо-режиме")));
            }
            #endregion

            // Поиск шаблона
            var FindDomain = FindAndInclude(coreDB.RequestsFilter_Domains, domain.Id);
            if (FindDomain == null)
            {
                return(Json(new Text("Домен не найден")));
            }

            // Обновляем настройки журнала
            CommonModels.Update(FindDomain.limitRequest, domain.limitRequest);

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

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

            //
            Trigger.OnChange((domain.Id, "LimitRequest"));

            // Отдаем сообщение
            return(Json(new Text("Настройки домена сохранены")));
        }
コード例 #2
0
ファイル: GeneralHelpers.cs プロジェクト: tamilselvamr/branch
        public static int GetHighestCsr(CommonModels.CurrentSkillRank topSkillRank)
        {
            if (topSkillRank == null || topSkillRank.CompetitiveSkillRank == null)
                return 0;

            return (int) topSkillRank.CompetitiveSkillRank;
        }
コード例 #3
0
        public JsonResult Save(AntiBot antiBot, LimitRequest limit, bool IsAPI = false)
        {
            #region Демо режим
            if (Platform.IsDemo)
            {
                return(Json(new Text("Операция недоступна в демо-режиме")));
            }
            #endregion

            // Лимит запросов
            jsonDB.AntiBot.limitRequest = limit;

            // Обновляем параметры AntiBot
            CommonModels.Update(jsonDB.AntiBot, antiBot);

            // Сохраняем базу
            jsonDB.AntiBot.LastUpdateToConf = DateTime.Now;
            jsonDB.Save();

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

            // Ответ
            if (IsAPI)
            {
                return(Json(new TrueOrFalse(true)));
            }
            return(Json(new Text("Настройки успешно сохранены")));
        }
コード例 #4
0
ファイル: av.cs プロジェクト: vincenthfrance/ISPCore
        public JsonResult Save(Domain domain, AntiVirus av)
        {
            #region Демо режим
            if (Platform.IsDemo)
            {
                return(Json(new Text("Операция недоступна в демо-режиме")));
            }
            #endregion

            if (string.IsNullOrWhiteSpace(av.path))
            {
                return(Json(new Text("Укажите каталог для сканирования")));
            }

            // Поиск шаблона
            var FindDomain = FindAndInclude(coreDB.RequestsFilter_Domains, domain.Id);
            if (FindDomain == null)
            {
                return(Json(new Text("Домен не найден")));
            }

            // Обновляем настройки антивируса
            CommonModels.Update(FindDomain.av, av);

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

            //
            Trigger.OnChange((domain.Id, "av"));

            // Отдаем сообщение
            return(Json(new Text("Настройки домена сохранены")));
        }
コード例 #5
0
 /// <summary>
 /// Сохранить [Тип устройства]
 /// </summary>
 /// <param name="obj">Не нужно</param>
 private void Save(object obj)
 {
     if (!CommonModels.Contains(SelectedCommonModel))
     {
         if (deviceCommonRepository.AddNew(SelectedCommonModel))
         {
             CommonModels.Add(SelectedCommonModel);
             messageShow.ShowMessage("Данные добавлены!", "Добавление", TypeMessage.Information);
         }
         else
         {
             messageShow.ShowMessage(deviceCommonRepository.ErrorText, "Ошибка добавления", TypeMessage.Error);
             return;
         }
     }
     else
     {
         if (deviceCommonRepository.Update(SelectedCommonModel))
         {
             messageShow.ShowMessage("Данные обновлены!", "Обновление", TypeMessage.Information);
         }
         else
         {
             messageShow.ShowMessage(deviceCommonRepository.ErrorText, "Ошибка обновления", TypeMessage.Error);
             return;
         }
     }
     SelectedCommonModel.EndEdit();
     IsEditing    = false;
     SearchString = searchString;
 }
コード例 #6
0
 public CsrDetailViewModel(ServiceRecord serviceRecord, PlaylistOrientationEntity playlistOrientation, CommonModels.CurrentSkillRank currentSkillRank, MetadataModels.Playlist playlist)
     : base(serviceRecord)
 {
     Playlist = playlist;
     PlaylistOrientation = playlistOrientation;
     CurrentSkillRank = currentSkillRank;
 }
コード例 #7
0
        public JsonResult Save(Domain domain, IDictionary <string, IgnoreToLog> IgnoreToLogs = null)
        {
            #region Демо режим
            if (Platform.IsDemo)
            {
                return(Json(new Text("Операция недоступна в демо-режиме")));
            }
            #endregion

            // Поиск шаблона
            var FindDomain = coreDB.RequestsFilter_Domains.Where(i => i.Id == domain.Id).Include(c => c.confToLog).FirstOrDefault();
            if (FindDomain == null)
            {
                return(Json(new Text("Домен не найден")));
            }

            // Обновляем настройки журнала
            CommonModels.Update(FindDomain.confToLog, domain.confToLog);

            // Удаляем запись с игнорированием логов
            coreDB.RequestsFilter_Domain_IgnoreToLogs.RemoveAll(i => i.DomainId == domain.Id);

            // Создаем данные для игнорирования логов
            coreDB.RequestsFilter_Domain_IgnoreToLogs.AddRange(domain.Id, IgnoreToLogs, out _);

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

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

            // Отдаем сообщение
            return(Json(new Text("Настройки домена сохранены")));
        }
コード例 #8
0
 public IHttpActionResult QRLogin(QRRequest request)
 {
     try
     {
         if (string.IsNullOrEmpty(request.QrCode))
         {
             return(BadRequest("QR code is required"));
         }
         var      qrCodeID         = request.QrCode.Split('?');
         string[] stringSeparators = new string[] { "Num" };
         var      splitCode        = qrCodeID[1].Split(stringSeparators, StringSplitOptions.None);
         var      qrId             = splitCode[0].Split('=')[1];
         var      model            = new QRLoginUserModel
         {
             Id = qrId
         };
         var apiresult = new CommonModels().
                         Post <QRLoginUserModel>("Personnel_InfoClass", model);
         apiresult.Wait();
         if (apiresult.Result.IsSuccessStatusCode)
         {
             var readTask = apiresult.Result.Content.ReadAsAsync <QRLoginUserModel>();
             readTask.Wait();
             var info = readTask.Result;
             if (info.IsActive)
             {
                 string token = CreateToken(info.FirstName + "." + info.LastName);
                 Logger.Log(info.FirstName + "." + info.LastName + " Logged in");
                 return(Ok(new UserDetails()
                 {
                     Firstname = info.FirstName,
                     Lastname = info.LastName,
                     Username = info.FirstName + "." + info.LastName,
                     IsAdmin = false,
                     Token = token,
                     TokenValidity = DateTime.UtcNow.AddDays(Convert.ToInt16(ConfigurationManager.AppSettings["jwtValidity"])),
                     IsActive = true
                 }));
             }
             else
             {
                 Logger.Log(info.FirstName + "." + info.LastName + " is inactive");
                 return(BadRequest("User is inactive"));
             }
         }
         else
         {
             return(BadRequest("Saleforce server unable to validate"));
         }
     }
     catch (Exception ex)
     {
         return(BadRequest(ex.Message));
     }
 }
コード例 #9
0
ファイル: Files.cs プロジェクト: vincenthfrance/ISPCore
        public JsonResult Edit <T>(T oldItem, T newItem) where T : class
        {
            if (newItem == null)
            {
                return(Json(new TrueOrFalse(false)));
            }

            // Обновляем настройки
            CommonModels.Update(oldItem, newItem, HttpContext);

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

            // Успех
            return(Json(new TrueOrFalse(true)));
        }
コード例 #10
0
        public JsonResult Edit <T>(int DomainId, T oldItem, T newItem) where T : class
        {
            if (newItem == null)
            {
                return(Json(new TrueOrFalse(false)));
            }

            // Обновляем настройки
            CommonModels.Update(oldItem, newItem, HttpContext);

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

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

            // Успех
            return(Json(new TrueOrFalse(true)));
        }
コード例 #11
0
        /// <summary>
        /// Удалить выбранный [Тип устройства]
        /// </summary>
        /// <param name="obj">Не нужно</param>
        private void Delete(object obj)
        {
            messageShow.ShowMessage("Данные будут удалены. Продолжить?", "Удаление", TypeMessage.Question);
            if (!messageShow.Result)
            {
                return;
            }
            if (deviceCommonRepository.Delete(SelectedCommonModel))
            {
                messageShow.ShowMessage("Данные удалены!", "Удаление", TypeMessage.Information);
            }
            else
            {
                messageShow.ShowMessage(deviceCommonRepository.ErrorText, "Ошибка удаления", TypeMessage.Error);
                return;
            }

            CommonModels.Remove(SelectedCommonModel);
            SelectedCommonModel = null;
            IsEditing           = false;
            SearchString        = searchString;
        }
コード例 #12
0
 public JsonResult Limit(LimitRequest limit)
 {
     CommonModels.Update(limit, jsonDB.AntiBot.limitRequest, HttpContext, updateType: UpdateType.skip);
     return(new SecurityToAntiBotController().Save(jsonDB.AntiBot, limit, IsAPI: true));
 }
コード例 #13
0
ファイル: Service.cs プロジェクト: vincenthfrance/ISPCore
 public JsonResult SMS(SmsBot sms)
 {
     CommonModels.Update(sms, jsonDB.ServiceBot.SMS, HttpContext, updateType: UpdateType.skip);
     return(new SettingsToServiceController().Save(jsonDB.ServiceBot.Telegram, jsonDB.ServiceBot.Email, sms, IsAPI: true));
 }
コード例 #14
0
ファイル: Service.cs プロジェクト: vincenthfrance/ISPCore
 public JsonResult Email(EmailBot email)
 {
     CommonModels.Update(email, jsonDB.ServiceBot.Email, HttpContext, updateType: UpdateType.skip);
     return(new SettingsToServiceController().Save(jsonDB.ServiceBot.Telegram, email, jsonDB.ServiceBot.SMS, IsAPI: true));
 }
コード例 #15
0
        public JsonResult Save(Domain domain, IDictionary <string, TemplateId> templates = null)
        {
            #region Демо режим
            if (Platform.IsDemo)
            {
                return(Json(new Text("Операция недоступна в демо-режиме")));
            }
            #endregion

            #region Проверка данных на правильность
            // Проверяем имя домена на null
            if (string.IsNullOrWhiteSpace(domain?.host))
            {
                return(Json(new Text("Имя домена не может быть пустым")));
            }

            // Форматируем host
            domain.host = Regex.Replace(domain.host.ToLower().Trim(), "^www\\.", "");

            // Проверяем нету ли в имени домена лишних символов
            if (!Regex.IsMatch(domain.host, "^[a-z0-9-\\.]+$", RegexOptions.IgnoreCase))
            {
                return(Json(new Text($"Домен {domain.host} не должен содержать тип протокола или url")));
            }
            #endregion

            // Пароль 2FA
            if (!string.IsNullOrWhiteSpace(domain.Auth2faToPasswd))
            {
                domain.Auth2faToPasswd = domain.Auth2faToPasswd.StartsWith("sha256:") ? domain.Auth2faToPasswd.Replace("sha256:", "") : SHA256.Text(domain.Auth2faToPasswd);
            }

            // Новый домен
            if (domain.Id == 0)
            {
                // Добовляем в базу
                coreDB.RequestsFilter_Domains.Add(domain);

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

                // Создаем шаблоны
                coreDB.RequestsFilter_Domain_TemplatesId.AddRange(domain.Id, templates, out _);

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

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

                // Отдаем ответ
                return(Json(new RewriteToId(domain.Id)));
            }

            // Существующий
            else
            {
                // Поиск домена
                var FindDomain = coreDB.RequestsFilter_Domains.Where(i => i.Id == domain.Id).Include(i => i.Aliases).FirstOrDefault();
                if (FindDomain == null)
                {
                    return(Json(new Text("Домен не найден")));
                }

                // Обновляем параметры домена
                CommonModels.Update(FindDomain, domain);

                // Удаляем текущие шаблоны
                coreDB.RequestsFilter_Domain_TemplatesId.RemoveAll(i => i.DomainId == domain.Id);

                // Записываем новые шаблоны
                coreDB.RequestsFilter_Domain_TemplatesId.AddRange(domain.Id, templates, out _);

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

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

                // Отдаем сообщение и Id новых алиасов
                return(Json(new Text("Настройки домена сохранены")));
            }
        }
コード例 #16
0
ファイル: Base.cs プロジェクト: vincenthfrance/ISPCore
 public JsonResult AntiVirus(AntiVirus av)
 {
     CommonModels.Update(av, jsonDB.AntiVirus, HttpContext, updateType: UpdateType.skip);
     return(new SecurityToAntiVirusController().Save(av, IsAPI: true));
 }
コード例 #17
0
ファイル: Base.cs プロジェクト: vincenthfrance/ISPCore
 public JsonResult AntiDdos(AntiDdos antiDdos)
 {
     CommonModels.Update(antiDdos, jsonDB.AntiDdos, HttpContext, updateType: UpdateType.skip);
     return(new SecurityToAntiDdosController().Save(antiDdos, null, UpdateIgnoreToIP: false, IsAPI: true));
 }
コード例 #18
0
ファイル: Base.cs プロジェクト: vincenthfrance/ISPCore
 public JsonResult BruteForce(BruteForceConf conf)
 {
     CommonModels.Update(conf, jsonDB.BruteForceConf, HttpContext, updateType: UpdateType.skip);
     return(new SettingsToBaseController().Save(jsonDB.Base, jsonDB.API, jsonDB.Security, jsonDB.Cache, conf, null, IsAPI: true));
 }
コード例 #19
0
        public JsonResult Save(Task task, DumpConf dumpConf, ConnectionConf connectionConf)
        {
            #region Демо режим
            if (Platform.IsDemo)
            {
                return(Json(new Text("Операция недоступна в демо-режиме")));
            }
            #endregion

            #region Проверка данных
            if (string.IsNullOrWhiteSpace(task.Description))
            {
                return(Json(new Text("Имя задания не может быть пустым")));
            }

            if (string.IsNullOrWhiteSpace(dumpConf.Whence))
            {
                return(Json(new Text("Локальный каталог не может быть пустым")));
            }

            switch (task.TypeDb)
            {
            case TypeDb.MySQL:
            case TypeDb.PostgreSQL:
            {
                if (string.IsNullOrWhiteSpace(connectionConf.Host) || string.IsNullOrWhiteSpace(connectionConf.User) || (task.Id == 0 && string.IsNullOrWhiteSpace(connectionConf.Password)))
                {
                    return(Json(new Text($"Настройки '{task.TypeDb.ToString()}' имеют недопустимое значение")));
                }
                break;
            }
            }
            #endregion

            // Настройки
            task.DumpConf       = dumpConf;
            task.ConnectionConf = connectionConf;

            // Новое задание
            if (task.Id == 0)
            {
                // Добовляем в базу
                coreDB.SyncBackup_db_Tasks.Add(task);

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

                //
                Trigger.OnCreate((task.Id, -1));

                // Отдаем Id записи в базе
                return(Json(new RewriteToId(task.Id)));
            }

            // Старое задание
            else
            {
                // Поиск задания
                if (coreDB.SyncBackup_db_Tasks.FindAndInclude(task.Id) is var FindTask && FindTask == null)
                {
                    return(Json(new Text("Задание не найдено")));
                }

                #region Используем старый пароль для 'MySQL/PostgreSQL'
                switch (task.TypeDb)
                {
                case TypeDb.MySQL:
                case TypeDb.PostgreSQL:
                {
                    if (string.IsNullOrWhiteSpace(task.ConnectionConf.Password))
                    {
                        if (!string.IsNullOrWhiteSpace(FindTask.ConnectionConf.Password))
                        {
                            task.ConnectionConf.Password = FindTask.ConnectionConf.Password;
                        }
                        else
                        {
                            return(Json(new Text("Пароль для 'MySQL' не может быть пустым")));
                        }
                    }
                    break;
                }
                }
                #endregion

                // Обновляем параметры задания
                CommonModels.Update(FindTask, task);

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

                //
                Trigger.OnChange((task.Id, -1));

                // Отдаем результат
                return(Json(new Text("Задание сохранено")));
            }
        }
コード例 #20
0
ファイル: GeneralHelpers.cs プロジェクト: tamilselvamr/branch
 public static string GetRawAssetUrl(CommonModels.ImageUrl imageUrl, int size)
 {
     return string.Format("{0}{1}", GlobalStorage.H4Manager.RegisteredWebApp.Settings[imageUrl.BaseUrl],
         imageUrl.AssetUrl.Replace("{size}", size.ToString(CultureInfo.InvariantCulture)));
 }
コード例 #21
0
        /// <summary>
        /// Обновить записи
        /// </summary>
        /// <typeparam name="T">Тип данных</typeparam>
        /// <param name="collection">Исходные данные</param>
        /// <param name="data">Новые данные</param>
        /// <param name="NewIds">Id новых записей в SQL</param>
        public static void UpdateOrAddRange <T>(this IList <T> collection, IDictionary <string, T> data, out IDictionary <string, IId> NewIds) where T : class, IId
        {
            NewIds = new Dictionary <string, IId>();
            if (data == null)
            {
                return;
            }

            foreach (var item in data)
            {
                #region Проверяем данные
                switch ((dynamic)item.Value)
                {
                    #region WhiteList
                case WhiteListModel whiteList:
                {
                    if (string.IsNullOrWhiteSpace(whiteList?.Value))
                    {
                        continue;
                    }

                    // Убириаем лишнее с правила
                    whiteList.Value = Regex.Replace(whiteList.Value, "(^\\^|\\$$)", "");
                    break;
                }
                    #endregion

                    #region IRule
                case IRule rule:
                {
                    if (string.IsNullOrWhiteSpace(rule?.rule))
                    {
                        continue;
                    }
                    break;
                }
                    #endregion

                    #region RuleReplace
                case RuleReplace ruleReplace:
                {
                    // URL для замены ответа
                    if (string.IsNullOrWhiteSpace(ruleReplace?.uri))
                    {
                        continue;
                    }

                    // Если не указано какие аргументы заменять
                    if (string.IsNullOrWhiteSpace(ruleReplace?.RegexWhite) || (string.IsNullOrWhiteSpace(ruleReplace?.GetArgs) && string.IsNullOrWhiteSpace(ruleReplace?.PostArgs)))
                    {
                        // Если не указан url куда  отправить пользователя или код ответа
                        if ((ruleReplace.TypeResponse == TypeResponseRule._302 && string.IsNullOrWhiteSpace(ruleReplace?.ResponceUri)) ||
                            (ruleReplace.TypeResponse == TypeResponseRule.kode && string.IsNullOrWhiteSpace(ruleReplace?.kode)))
                        {
                            continue;
                        }
                    }

                    break;
                }
                    #endregion

                    #region Domain - Alias
                case Alias alias:
                {
                    if (string.IsNullOrWhiteSpace(alias?.host) || item.Key == "domain")
                    {
                        continue;
                    }

                    // Обновляем имя домена
                    alias.host = Regex.Replace(alias.host.ToLower(), "^www\\.", "");
                    break;
                }
                    #endregion

                default:
                    continue;
                }
                #endregion

                #region Записываем новые данные и перезаписываем старые
                if (item.Value.Id > 0)
                {
                    // Обновляем старые значения
                    if (collection.FirstOrDefault(i => i.Id == item.Value.Id) is T value)
                    {
                        CommonModels.Update(value, item.Value);
                    }
                }
                else
                {
                    // Добовлям новые значения
                    collection.Add(item.Value);
                    NewIds.Add(item.Key, item.Value);
                }
                #endregion
            }
        }
コード例 #22
0
        public JsonResult Save(Task task, FTP ftp, Models.SyncBackup.Tasks.WebDav webDav, OneDrive oneDrive, IDictionary <string, IgnoreFileOrFolders> ignr = null)
        {
            #region Демо режим
            if (Platform.IsDemo)
            {
                return(Json(new Text("Операция недоступна в демо-режиме")));
            }
            #endregion

            #region Проверка данных
            if (string.IsNullOrWhiteSpace(task.Description))
            {
                return(Json(new Text("Имя задания не может быть пустым")));
            }

            if (string.IsNullOrWhiteSpace(task.Whence))
            {
                return(Json(new Text("Локальный каталог не может быть пустым")));
            }

            if (string.IsNullOrWhiteSpace(task.Where))
            {
                return(Json(new Text("Удаленный каталог не может быть пустым")));
            }

            switch (task.TypeSunc)
            {
            case TypeSunc.SFTP:
            case TypeSunc.FTP:
            {
                if (string.IsNullOrWhiteSpace(ftp.HostOrIP) || string.IsNullOrWhiteSpace(ftp.Login) || (task.Id == 0 && string.IsNullOrWhiteSpace(ftp.Passwd)))
                {
                    return(Json(new Text("Настройки 'FTP/SFTP' имеют недопустимое значение")));
                }
                break;
            }

            case TypeSunc.WebDav:
            {
                if (string.IsNullOrWhiteSpace(webDav.url) || string.IsNullOrWhiteSpace(webDav.Login) || (task.Id == 0 && string.IsNullOrWhiteSpace(webDav.Passwd)))
                {
                    return(Json(new Text("Настройки 'WebDav' имеют недопустимое значение")));
                }
                break;
            }

            case TypeSunc.OneDrive:
            {
                if (string.IsNullOrWhiteSpace(oneDrive.ApplicationId) || (task.Id == 0 && string.IsNullOrWhiteSpace(oneDrive.RefreshToken)))
                {
                    return(Json(new Text("Настройки 'OneDrive' имеют недопустимое значение")));
                }
                break;
            }
            }
            #endregion

            // Уленный сервер
            task.FTP      = ftp;
            task.WebDav   = webDav;
            task.OneDrive = oneDrive;

            // Новое задание
            if (task.Id == 0)
            {
                // Проверка данных AES256
                if (task.EncryptionAES && string.IsNullOrWhiteSpace(task.PasswdAES))
                {
                    return(Json(new Text("Пароль для шифрования файлов не может быть пустым")));
                }

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

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

                // Список игнорируемых файлов и папок
                coreDB.SyncBackup_Task_IgnoreFileOrFolders.AddRange(task.Id, ignr, out _);

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

                //
                Trigger.OnCreate((task.Id, -1));

                // Отдаем Id записи в базе
                return(Json(new RewriteToId(task.Id)));
            }

            // Старое задание
            else
            {
                // Поиск задания
                if (coreDB.SyncBackup_Tasks.FindAndInclude(task.Id) is var FindTask && FindTask == null)
                {
                    return(Json(new Text("Задание не найдено")));
                }

                #region Используем старый пароль для шифрования файлов
                if (task.EncryptionAES)
                {
                    if (string.IsNullOrWhiteSpace(task.PasswdAES))
                    {
                        if (!string.IsNullOrWhiteSpace(FindTask.PasswdAES))
                        {
                            task.PasswdAES = FindTask.PasswdAES;
                        }
                        else
                        {
                            return(Json(new Text("Пароль для шифрования файлов не может быть пустым")));
                        }
                    }
                }
                #endregion

                #region Используем старый пароль для 'SFTP/FTP/WebDav/OneDrive'
                switch (task.TypeSunc)
                {
                case TypeSunc.SFTP:
                case TypeSunc.FTP:
                {
                    if (string.IsNullOrWhiteSpace(task.FTP.Passwd))
                    {
                        if (!string.IsNullOrWhiteSpace(FindTask.FTP.Passwd))
                        {
                            task.FTP.Passwd = FindTask.FTP.Passwd;
                        }
                        else
                        {
                            return(Json(new Text("Пароль для 'FTP/SFTP' не может быть пустым")));
                        }
                    }
                    break;
                }

                case TypeSunc.WebDav:
                {
                    if (string.IsNullOrWhiteSpace(task.WebDav.Passwd))
                    {
                        if (!string.IsNullOrWhiteSpace(FindTask.WebDav.Passwd))
                        {
                            task.WebDav.Passwd = FindTask.WebDav.Passwd;
                        }
                        else
                        {
                            return(Json(new Text("Пароль для 'WebDav' не может быть пустым")));
                        }
                    }
                    break;
                }

                case TypeSunc.OneDrive:
                {
                    if (string.IsNullOrWhiteSpace(task.OneDrive.RefreshToken))
                    {
                        if (!string.IsNullOrWhiteSpace(FindTask.OneDrive.RefreshToken))
                        {
                            task.OneDrive.RefreshToken = FindTask.OneDrive.RefreshToken;
                        }
                        else
                        {
                            return(Json(new Text("Пароль для 'OneDrive' не может быть пустым")));
                        }
                    }
                    break;
                }
                }
                #endregion

                // Обновляем параметры задания
                CommonModels.Update(FindTask, task);

                // Удаляем список игнорируемых файлов
                coreDB.SyncBackup_Task_IgnoreFileOrFolders.RemoveAll(i => i.TaskId == task.Id);

                // Добовляем список игнорируемых файлов
                coreDB.SyncBackup_Task_IgnoreFileOrFolders.AddRange(task.Id, ignr, out _);

                // Обновляем кеш
                FindTask.CacheExpires = DateTime.Now.AddDays(12);

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

                //
                Trigger.OnChange((task.Id, -1));

                // Отдаем результат
                return(Json(new Text("Задание сохранено")));
            }
        }
コード例 #23
0
 /// <summary>
 /// Обновить поля
 /// </summary>
 /// <param name="item">Новые данные</param>
 void IUpdate.Update(dynamic item) => CommonModels.Update(this, item);
コード例 #24
0
 public JsonResult TelegramBot(Telega tlg)
 {
     CommonModels.Update(tlg, jsonDB.TelegramBot, HttpContext, updateType: UpdateType.skip);
     return(new SettingsController().Save(jsonDB.Base, jsonDB.API, jsonDB.Security, tlg, jsonDB.BruteForceConf, null, IsAPI: true));
 }
コード例 #25
0
ファイル: GeneralHelpers.cs プロジェクト: tamilselvamr/branch
 public static string GetRawAssetUrl(CommonModels.ImageUrl imageUrl, string size = "medium")
 {
     return string.Format("{0}{1}", GlobalStorage.H4Manager.RegisteredWebApp.Settings[imageUrl.BaseUrl],
         imageUrl.AssetUrl.Replace("{size}", size));
 }
コード例 #26
0
ファイル: Template.cs プロジェクト: loreps-all-site/ISPCore
        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)));
            }
        }