예제 #1
0
        public void Add_SavesToDatabase()
        {
            var options = new DbContextOptionsBuilder <GameInfoContext>()
                          .UseInMemoryDatabase(databaseName: "AddQuest_ToDb")
                          .Options;

            using (var context = new GameInfoContext(options))
            {
                var questToAdd = new AddQuestInputModel()
                {
                    Title = "QuestTitle", QuestText = "QuestText", CompletionCondition = "None"
                };

                questToAdd.QuestGiver = null;

                var service = new QuestsService(context, null);
                service.Add(questToAdd);

                var expectedQuest = new Quest()
                {
                    Title = questToAdd.Title, QuestText = questToAdd.QuestText, CompletionCondition = questToAdd.CompletionCondition
                };

                Assert.NotEmpty(context.Quests);
                Assert.Equal(expectedQuest.Title, context.Quests.First().Title);
                Assert.Equal(expectedQuest.QuestText, context.Quests.First().QuestText);
                Assert.Equal(expectedQuest.CompletionCondition, context.Quests.First().CompletionCondition);
            }
        }
예제 #2
0
        public IActionResult Add(AddQuestInputModel inputModel)
        {
            if (!ModelState.IsValid)
            {
                inputModel = new AddQuestInputModel
                {
                    NPCs = _NPCsService.All()?.ToList()
                };
                return(View(inputModel));
            }

            _questsService.Add(inputModel);

            return(Redirect(Quests_Root_Path));
        }
예제 #3
0
        public async Task <IActionResult> Add()
        {
            var user = await _authorizerService.Authorize(HttpContext);

            if (user != null)
            {
                var model = new AddQuestInputModel
                {
                    NPCs = _NPCsService.All()?.ToList()
                };

                return(View(model));
            }

            return(Redirect(GlobalConstants.Default_Login_Page));
        }
예제 #4
0
        public void Add(AddQuestInputModel model)
        {
            var quest = new Quest
            {
                Title               = model.Title,
                QuestText           = model.QuestText,
                CompletionCondition = model.CompletionCondition
            };

            if (model.QuestGiver != null)
            {
                quest.QuestGiver = _npcsService.ByName(model.QuestGiver);
            }

            this._db.Quests.Add(quest);
            this._db.SaveChanges();
        }