public async Task <IActionResult> Create(string name) { if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageBackgroundTasks)) { return(Forbid()); } var model = new BackgroundTaskViewModel() { Name = name }; var task = _backgroundTasks.GetTaskByName(name); if (task != null) { var settings = task.GetDefaultSettings(); model.Enable = settings.Enable; model.Schedule = settings.Schedule; model.DefaultSchedule = settings.Schedule; model.Description = settings.Description; } return(View(model)); }
public async Task <IActionResult> Edit(string name) { if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageBackgroundTasks)) { return(Forbid()); } var document = await _backgroundTaskManager.GetDocumentAsync(); if (!document.Settings.ContainsKey(name)) { return(RedirectToAction("Create", new { name })); } var task = _backgroundTasks.GetTaskByName(name); var settings = document.Settings[name]; var model = new BackgroundTaskViewModel { Name = name, Enable = settings.Enable, Schedule = settings.Schedule, DefaultSchedule = task?.GetDefaultSettings().Schedule, Description = settings.Description }; return(View(model)); }
public async Task <IActionResult> Edit(BackgroundTaskViewModel model) { if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageBackgroundTasks)) { return(Forbid()); } if (ModelState.IsValid) { if (String.IsNullOrWhiteSpace(model.Name)) { ModelState.AddModelError(nameof(BackgroundTaskViewModel.Name), S["The name is mandatory."]); } } if (ModelState.IsValid) { var settings = new BackgroundTaskSettings { Name = model.Name, Enable = model.Enable, Schedule = model.Schedule?.Trim(), Description = model.Description }; await _backgroundTaskManager.UpdateAsync(model.Name, settings); return(RedirectToAction(nameof(Index))); } // If we got this far, something failed, redisplay form return(View(model)); }
public void Add() { var destDataBaseName = this.SelectDataBase(); if (destDataBaseName == null) { return; } var task = new BackgroundTask((p, c) => { p.Report(0, "현재 데이터 베이스 가져오는중"); var dataSet1 = this.cremaHost.Dispatcher.Invoke(() => { var dataBase = this.cremaHost.DataBases[this.cremaAppHost.DataBaseName]; return(dataBase.GetDataSet(this.authenticator, -1)); }); p.Report(0.33, "대상 데이터 베이스 가져오는중"); var dataSet2 = this.cremaHost.Dispatcher.Invoke(() => { var dataBase = this.cremaHost.DataBases[destDataBaseName]; if (dataBase.IsLoaded == false) { dataBase.Load(this.authenticator); } dataBase.Enter(this.authenticator); try { return(dataBase.GetDataSet(this.authenticator, -1)); } finally { dataBase.Leave(this.authenticator); } }); p.Report(0.66, "비교하는중"); return(new DiffDataSet(dataSet2, dataSet1, DiffMergeTypes.ReadOnly2) { Header1 = destDataBaseName, Header2 = this.cremaAppHost.DataBaseName }); }); task.ProgressChanged += Task_ProgressChanged; var dialog = new BackgroundTaskViewModel(task) { DisplayName = "데이터 베이스 비교하기", }; dialog.ShowDialog(); }
public async Task AddAsync() { var destDataBaseName = await this.SelectDataBaseAsync(); if (destDataBaseName == null) { return; } var task = new BackgroundViewModel(this.authenticator, this.cremaHost, this.cremaAppHost.DataBaseName, destDataBaseName); task.ProgressChanged += Task_ProgressChanged; var dialog = new BackgroundTaskViewModel(this.statusBarService, task: task) { DisplayName = "데이터 베이스 비교하기", }; await dialog.ShowDialogAsync(); }