public async Task <IActionResult> EditScenario(string id, ScenarioModel model) { var map = await MapModel.GetAsync(AppSettings.DefaultRepo); var mapScenario = map.FindScenario(id); if (mapScenario != null) { mapScenario.Title = model.Title; mapScenario.Summary = model.Summary; using (await LockingService.LockAsync()) { await map.SaveAsync(); await ScenarioModel.SaveContentsAsync(id, AppSettings.DefaultRepo, model.Contents); await ChangesService.Get(AppSettings.DefaultRepo).PushChangesAsync(); } } dynamic parameters = new ExpandoObject(); parameters.id = id; return(RedirectToAction(nameof(ViewScenario), parameters)); }
public async Task <IActionResult> AddChildScenario(string parentId, ScenarioModel model) { var map = await MapModel.GetAsync(AppSettings.DefaultRepo); var parent = map.FindScenario(parentId); if (parent != null) { if (parent.Children == null) { parent.Children = new List <MapScenarioModel>(); } var newScenario = new MapScenarioModel() { Id = Guid.NewGuid().ToString(), Title = model.Title, Summary = model.Summary }; parent.Children.Add(newScenario); using (await LockingService.LockAsync()) { await map.SaveAsync(); await ScenarioModel.SaveContentsAsync(newScenario.Id, AppSettings.DefaultRepo, model.Contents); await ChangesService.Get(AppSettings.DefaultRepo).PushChangesAsync(); } dynamic parameters = new ExpandoObject(); parameters.id = newScenario.Id; return(RedirectToAction(nameof(ViewScenario), parameters)); } dynamic failedParameters = new ExpandoObject(); failedParameters.id = parentId; return(RedirectToAction(nameof(ViewScenario), failedParameters)); }