public async Task <IActionResult> Post([FromBody] ScenarioRequest model)
        {
            Scenario newRecord = null;

            if (ModelState.IsValid)
            {
                InitUserCredentials();

                newRecord = new Scenario
                {
                    Guid             = Guid.NewGuid(),
                    UserGuid         = UserGuid,
                    CompanyGuid      = CompanyGuid,
                    CreationTime     = DateTime.UtcNow,
                    CreationUserGuid = UserGuid
                };

                newRecord = _mapper.Map(model, newRecord);

                try
                {
                    await _scenarioService.Save(newRecord);
                }
                catch (Exception e)
                {
                    Log.Error(e.StackTrace);
                    throw;
                }
            }

            return(CreatedAtAction(nameof(Post), _mapper.Map(newRecord, new ScenarioResponse())));
        }
Example #2
0
        public IActionResult Update([FromBody] ScenarioRequest scenario)
        {
            var scenarioModel = scenario.ToScenarioModel();

            // Assign new serial number to indicate the scenario has changed to the player
            scenarioModel.SerialNumber = _scenarioCoreController.GetNewSerialNumber();
            scenarioModel = _scenarioCoreController.Update(scenarioModel, true);
            var scenarioContract = scenarioModel.ToScenarioContract();

            return(new ObjectResult(scenarioContract));
        }
Example #3
0
        public IActionResult Create([FromBody] ScenarioRequest newStory)
        {
            var scenario = newStory.ToScenarioModel();

            // Assign new serial number to indicate the scenario has changed to the player
            scenario.SerialNumber = _scenarioCoreController.GetNewSerialNumber();
            if (scenario.Comment == null)
            {
                scenario.Comment = "";
            }
            _scenarioCoreController.Create(scenario, true);
            var scenarioContract = scenario.ToScenarioContract();

            return(new ObjectResult(scenarioContract));
        }
Example #4
0
        public static Scenario ToScenarioModel(this ScenarioRequest scenarioContract)
        {
            var metadata = new Metadata(scenarioContract.Metadata.ToString());

            return(new Scenario
            {
                Id = metadata.Id,
                CreatorId = metadata.CreatorId,
                Title = metadata.Title,
                Submitted = metadata.Submitted,
                Language = metadata.Language,
                Region = metadata.Region,
                Content = scenarioContract.Content.ToString(),
                CompleteContent = metadata.CompleteContent
            });
        }
Example #5
0
        public IActionResult UpdateMetadata([FromBody] ScenarioRequest metadata)
        {
            var metadataModel = metadata.ToScenarioMetadata();

            // Assign new serial number to indicate the scenario has changed to the player
            metadataModel.SerialNumber = _scenarioCoreController.GetNewSerialNumber();

            var scenario = _scenarioCoreController.Get(metadataModel.Id);

            scenario.UpdateMetadata(metadataModel);

            scenario = _scenarioCoreController.Update(scenario, false);

            var scenarioContract = scenario.ToScenarioContract();

            return(new ObjectResult(scenarioContract));
        }
        public async Task <IActionResult> Put([FromBody] ScenarioRequest model, Guid guid)
        {
            if (ModelState.IsValid)
            {
                if (guid == Guid.Empty)
                {
                    return(new BadRequestResult());
                }

                Scenario record = await _scenarioService.Get(guid);

                if (record == null)
                {
                    return(new NoContentResult());
                }

                InitUserCredentials();

                if (record.UserGuid != UserGuid)
                {
                    return(new UnauthorizedResult());
                }

                var mapped = _mapper.Map(model, record);
                mapped.LastUpdateTime     = DateTime.Now;
                mapped.LastUpdateUserGuid = UserGuid;

                try
                {
                    await _scenarioService.Save(mapped);
                }
                catch (Exception e)
                {
                    Log.Error(e.StackTrace);
                    throw;
                }
            }

            return(new OkResult());
        }
Example #7
0
        public static Metadata ToScenarioMetadata(this ScenarioRequest scenarioContract)
        {
            var metadata = new Metadata(scenarioContract.Metadata.ToString());

            return(metadata);
        }