public JsonResult DumpConf(int Id, DumpConf conf) { // Поиск задания if (coreDB.SyncBackup_db_Tasks.Where(i => i.Id == Id).Include(i => i.DumpConf).FirstOrDefault() is Task item) { // Проверка данных if (string.IsNullOrWhiteSpace(conf.Whence)) { return(Json(new Text("Локальный каталог не может быть пустым"))); } Trigger.OnChange((Id, 0)); return(Edit(item.DumpConf, conf)); } return(Json(new Text("Задание не найдено"))); }
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("Задание сохранено"))); } }
public JsonResult Task(Task tk, DumpConf dumpConf, ConnectionConf connectionConf) { return(new SyncBackupDatabaseToTask().Save(tk, dumpConf, connectionConf)); }