コード例 #1
0
        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 }));
        }
コード例 #2
0
        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());
        }