コード例 #1
0
        public IActionResult ClaimQuest(int id)
        {
            var claimedQuest = _questDAO.FindOneRecordBy(id);

            switch (claimedQuest.Type)
            {
            case TypeClassification.Individual:
                var ownedIndividualQuest = new OwnedQuestStudent()
                {
                    StudentId        = _loggedStudent.Id,
                    QuestId          = claimedQuest.Id,
                    CompletionStatus = CompletionStatus.Unfinished,
                };
                _questManager.ClaimIndividualQuest(ownedIndividualQuest);
                break;

            case TypeClassification.Group:
                var ownedGroupQuest = new OwnedQuestGroup()
                {
                    GroupId          = _loggedStudent.GroupID,
                    QuestId          = claimedQuest.Id,
                    CompletionStatus = CompletionStatus.Unfinished,
                };
                _questManager.ClaimGroupQuest(ownedGroupQuest);
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            TempData["QuestMessage"] = $"You have claimed the \"{claimedQuest.Name}\" Quest!";
            return(RedirectToAction($"ViewAllQuests", $"Quest"));
        }
コード例 #2
0
        private void AddCoolCoinsIfAccomplished(OwnedQuestStudent ownedQuestStudent)
        {
            if (ownedQuestStudent.CompletionStatus == CompletionStatus.Finished)
            {
                var studentToUpdate         = _studentDAO.FetchAllRecords().SingleOrDefault(s => s.Id == studentId);
                var studentGroupToBeUpdated = _groupDAO.FetchAllRecords().SingleOrDefault(g => g.Id == studentToUpdate.GroupID);
                var quest = _questDAO.FetchAllRecords().SingleOrDefault(q => q.Id == ownedQuestStudent.QuestId);

                studentToUpdate.Wallet              += quest.Cost;
                studentToUpdate.OverallWalletLevel  += quest.Cost;
                studentGroupToBeUpdated.GroupWallet += quest.Cost;

                _groupDAO.UpdateRecord(studentGroupToBeUpdated);
                _studentDAO.UpdateRecord(studentToUpdate);
            }
        }
コード例 #3
0
 public void ClaimIndividualQuest(OwnedQuestStudent claimedOwnedQuest)
 {
     _ownedStudentDAO.AddRecord(claimedOwnedQuest);
 }