public ActionResult StartMission(int id, string userID) { if (userID == null) { userID = User.Identity.Name; } Character character = db.Characters.Where(y => y.ApplicationUserID == userID).FirstOrDefault(); Mission mission = db.Missions.Find(id); mission.MissionTasks = db.MissionTasks.Where(x => x.MissionID == mission.MissionID).ToList(); CharacterMission charMiss = new CharacterMission { CharacterID = character.CharacterID, MissionID = mission.MissionID, IsCompleted = false }; db.CharacterMissions.Add(charMiss); db.SaveChanges(); foreach (var m in mission.MissionTasks) { CharacterMissionTask characterMissionTask = new CharacterMissionTask { CharacterMissionTaskID = 1, CharacterID = character.CharacterID, MissionTaskID = m.MissionTaskID, CharacterMissionID = charMiss.CharacterMissionID, IsCompleted = false }; db.CharacterMissionTasks.Add(characterMissionTask); db.SaveChanges(); } var result = new MissionsController().CheckMission(charMiss.CharacterMissionID, userID); return(RedirectToAction("Index", "Missions", new { id = userID })); }
public IHttpActionResult GenerateDailyMissions() { Character character = db.Characters.Where(y => y.ApplicationUserID == User.Identity.Name).FirstOrDefault(); List <CharacterMission> characterMissions = db.CharacterMissions.Where(x => x.CharacterID == character.CharacterID).ToList(); List <CharacterMissionTask> characterMissionTasks = db.CharacterMissionTasks.Where(x => x.CharacterID == character.CharacterID).ToList(); foreach (var mission in db.DailyMissions) { foreach (var cm in characterMissions) { if (mission.MissionID == cm.MissionID) { foreach (var cmt in characterMissionTasks.Where(x => x.CharacterMissionTaskID == cm.CharacterMissionID).ToList()) { db.CharacterMissionTasks.Remove(cmt); } } } } db.SaveChanges(); foreach (var mission in db.DailyMissions) { foreach (var cm in characterMissions) { if (mission.MissionID == cm.MissionID) { if (cm.CharacterMissionTasks.Count == 0) { db.CharacterMissions.Remove(cm); } } } } db.SaveChanges(); Random rand = new Random(); List <DailyMission> dailyCollectMissions = new List <DailyMission>(); List <CollectMissionTask> dailyCollectMissionTasks = db.CollectMissionTasks.ToList(); foreach (var mission in db.DailyMissions) { foreach (var taskk in dailyCollectMissionTasks) { if (taskk.MissionID == mission.MissionID) { dailyCollectMissions.Add(mission); } } } int missionIndex = rand.Next(0, dailyCollectMissions.Count()); DailyMission selectedMission = dailyCollectMissions.ElementAt <DailyMission>(missionIndex); selectedMission.MissionTasks = db.MissionTasks.Where(x => x.MissionID == selectedMission.MissionID).ToList(); CharacterMission charMiss = new CharacterMission { CharacterID = character.CharacterID, MissionID = selectedMission.MissionID, IsCompleted = false }; db.CharacterMissions.Add(charMiss); db.SaveChanges(); foreach (var m in selectedMission.MissionTasks) { CharacterMissionTask characterMissionTask = new CharacterMissionTask { CharacterID = character.CharacterID, MissionTaskID = m.MissionTaskID, CharacterMissionID = charMiss.CharacterMissionID, IsCompleted = false }; db.CharacterMissionTasks.Add(characterMissionTask); db.SaveChanges(); } selectedMission = db.DailyMissions.Find(27); selectedMission.MissionTasks = db.MissionTasks.Where(x => x.MissionID == selectedMission.MissionID).ToList(); charMiss = new CharacterMission { CharacterID = character.CharacterID, MissionID = selectedMission.MissionID, IsCompleted = false }; db.CharacterMissions.Add(charMiss); db.SaveChanges(); foreach (var m in selectedMission.MissionTasks) { CharacterMissionTask characterMissionTask = new CharacterMissionTask { CharacterID = character.CharacterID, MissionTaskID = m.MissionTaskID, CharacterMissionID = charMiss.CharacterMissionID, IsCompleted = false }; db.CharacterMissionTasks.Add(characterMissionTask); db.SaveChanges(); } selectedMission = db.DailyMissions.Find(28); selectedMission.MissionTasks = db.MissionTasks.Where(x => x.MissionID == selectedMission.MissionID).ToList(); charMiss = new CharacterMission { CharacterID = character.CharacterID, MissionID = selectedMission.MissionID, IsCompleted = false }; db.CharacterMissions.Add(charMiss); db.SaveChanges(); foreach (var m in selectedMission.MissionTasks) { CharacterMissionTask characterMissionTask = new CharacterMissionTask { CharacterID = character.CharacterID, MissionTaskID = m.MissionTaskID, CharacterMissionID = charMiss.CharacterMissionID, IsCompleted = false }; db.CharacterMissionTasks.Add(characterMissionTask); db.SaveChanges(); } selectedMission = db.DailyMissions.Find(29); selectedMission.MissionTasks = db.MissionTasks.Where(x => x.MissionID == selectedMission.MissionID).ToList(); charMiss = new CharacterMission { CharacterID = character.CharacterID, MissionID = selectedMission.MissionID, IsCompleted = false }; db.CharacterMissions.Add(charMiss); db.SaveChanges(); foreach (var m in selectedMission.MissionTasks) { CharacterMissionTask characterMissionTask = new CharacterMissionTask { CharacterID = character.CharacterID, MissionTaskID = m.MissionTaskID, CharacterMissionID = charMiss.CharacterMissionID, IsCompleted = false }; db.CharacterMissionTasks.Add(characterMissionTask); db.SaveChanges(); } character.DailyMissionDate = DateTime.Now; db.SaveChanges(); return(Ok()); }