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")); }
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); } }
public void ClaimIndividualQuest(OwnedQuestStudent claimedOwnedQuest) { _ownedStudentDAO.AddRecord(claimedOwnedQuest); }