private bool IsThereAnInteraction(MissionVM m1) { Mission m = new Mission(); m.Id = m1.Code; return(!(missionsInteractionsBL.GetNextMissions(m).Count == 0 && missionsInteractionsBL.GetPreviousMissions(m).Count == 0)); }
private bool IsThereAnInteraction(MissionVM m1, MissionVM m2) { Mission m = new Mission(); m.Id = m1.Code; foreach (var mission in missionsInteractionsBL.GetNextMissions(m)) { if (mission.Id == m2.Code) { return(true); } } foreach (var mission2 in missionsInteractionsBL.GetPreviousMissions(m)) { if (mission2.Id == m2.Code) { return(true); } } return(false); }
private Activity[] Convert(List <Mission> list) { Activity[] activityArr = new Activity[list.Count + 2]; Dictionary <String, List <Mission> > missionInteractions = new Dictionary <string, List <Mission> >(); List <Mission> prevMissions; List <Mission> nextMissions; List <int> startActivityIndexes = new List <int>(); List <int> endActivityIndexes = new List <int>(); int i = 0, index; activityArr[list.Count + 1] = new Activity(); //the final mission activityArr[list.Count + 1].Duration = 1; activityArr[list.Count + 1].Id = "-1"; activityArr[list.Count] = new Activity(); //the start mission activityArr[list.Count].Duration = 1; activityArr[list.Count].Id = "-2"; foreach (var mission in list) { Activity temp = new Activity(); temp.Duration = mission.Duration; temp.Description = mission.Description; temp.Id = mission.Id.ToString(); prevMissions = missionsInteractionsBL.GetPreviousMissions(mission); missionInteractions.Add(temp.Id, prevMissions); if (prevMissions.Count == 0)//connect the start missions to the global start mission { startActivityIndexes.Add(i); } nextMissions = missionsInteractionsBL.GetNextMissions(mission); if (nextMissions.Count == 0)//connect the end missions to the global end mission { endActivityIndexes.Add(i); } activityArr[i] = temp; i++; } activityArr[list.Count].Predecessors = new Activity[0]; foreach (int startIndex in startActivityIndexes) { activityArr[startIndex].Predecessors = new Activity[1]; activityArr[startIndex].Predecessors[0] = activityArr[list.Count]; activityArr[list.Count] = activityArr[list.Count].SetSuccessors(activityArr[list.Count], activityArr[startIndex]); } activityArr[list.Count + 1].Predecessors = new Activity[endActivityIndexes.Count]; i = 0; foreach (int endIndex in endActivityIndexes) { activityArr[list.Count + 1].Predecessors[i] = activityArr[endIndex]; i++; activityArr[endIndex] = activityArr[endIndex].SetSuccessors(activityArr[endIndex], activityArr[list.Count + 1]); } foreach (var mission in list) { List <Mission> Predecessors = missionInteractions[mission.Id.ToString()]; //missionsInteractionsBL.GetPreviousMissions(mission); int activityIndex = GetIndexWhereIdEquals(activityArr, mission.Id.ToString()); if (!startActivityIndexes.Contains(activityIndex)) { activityArr[activityIndex].Predecessors = new Activity[Predecessors.Count]; for (i = 0; i < Predecessors.Count; i++) { index = GetIndexWhereIdEquals(activityArr, Predecessors[i].Id.ToString()); activityArr[activityIndex].Predecessors[i] = activityArr[index]; activityArr[index] = activityArr[index].SetSuccessors(activityArr[index], activityArr[activityIndex]); } } } Activity first = activityArr[list.Count]; activityArr[list.Count] = activityArr[0]; activityArr[0] = first; return(activityArr); }