Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }