private List <contractUIObject> typeSort(List <contractUIObject> cL, bool B) { List <int> position = new List <int>(); List <contractUIObject> altList = new List <contractUIObject>(); for (int i = 0; i < cL.Count; i++) { foreach (ContractParameter cP in cL[i].Container.Root.AllParameters) { if (cP.GetType() == typeof(ReachAltitudeEnvelope)) { altList.Add(cL[i]); position.Add(i); break; } } } if (altList.Count > 1) { altList.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(B, ((ReachAltitudeEnvelope)a.Container.Root.AllParameters.First(s => s.GetType() == typeof(ReachAltitudeEnvelope))).minAltitude.CompareTo(((ReachAltitudeEnvelope)b.Container.Root.AllParameters.First(s => s.GetType() == typeof(ReachAltitudeEnvelope))).minAltitude), a.Container.Title.CompareTo(b.Container.Title))); for (int j = 0; j < position.Count; j++) { cL[position[j]] = altList[j]; } } //ReachFlightEnvelop doesn't actually seem to be used by anything //position.Clear(); //List<contractContainer> flightList = new List<contractContainer>(); //for (int i = 0; i < cL.Count; i++) //{ // foreach (parameterContainer cP in cL[i].paramList) // { // if (cP.cParam.ID == "testFlightEnvelope") // { // flightList.Add(cL[i]); // position.Add(i); // } // } //} //if (flightList.Count > 1) //{ // flightList.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(B, ((ReachFlightEnvelope)a.contract.AllParameters.First(s => s.ID == "testFlightEnvelope")).minAltitude.CompareTo(((ReachFlightEnvelope)b.contract.AllParameters.First(s => s.ID == "testFlightEnvelope")).minAltitude), a.contract.Title.CompareTo(b.contract.Title))); // for (int j = 0; j < position.Count; j++) // { // cL[position[j]] = flightList[j]; // } //} return(cL); }
private List <TrackingStationWidget> SortWidgetsAlpha(List <TrackingStationWidget> widgets, bool asc) { List <KeyValuePair <TrackingStationWidget, double> > maneuvers = GetManeuvers(widgets); widgets.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(!asc, a.vessel.vesselName.CompareTo(b.vessel.vesselName), a.vessel.launchTime.CompareTo(b.vessel.launchTime))); int count = maneuvers.Count; for (int i = 0; i < count; i++) { widgets.Add(maneuvers[i].Key); } return(widgets); }
//Returns an ordered list of missions for the main window; the master mission is always first internal List <contractMission> getAllMissions() { List <contractMission> mList = new List <contractMission>(); List <contractMission> tempList = new List <contractMission>(); for (int i = 0; i < missionList.Count; i++) { contractMission m = missionList.At(i); if (m == null) { continue; } if (m.MasterMission) { mList.Add(m); } else { tempList.Add(m); } } if (mList.Count == 0) { if (addMissionList("MasterMission")) { mList.Add(getMissionList("MasterMission")); } } tempList.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(false, a.ActiveContracts.CompareTo(b.ActiveContracts), a.MissionTitle.CompareTo(b.MissionTitle))); if (tempList.Count > 0) { mList.AddRange(tempList); } return(mList); }
private List <Guid> sortContracts(List <Guid> list, contractSortClass sortClass, bool dsc) { sortList.Clear(); int l = list.Count; for (int i = 0; i < l; i++) { Guid id = list[i]; contractUIObject cC = currentMission.getContract(id); if (cC == null) { continue; } if (cC.Order != null) { continue; } sortList.Add(cC); } switch (sortClass) { case contractSortClass.Expiration: sortList.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(!dsc, a.Container.Duration.CompareTo(b.Container.Duration), a.Container.Title.CompareTo(b.Container.Title))); break; case contractSortClass.Acceptance: sortList.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(!dsc, a.Container.Root.DateAccepted.CompareTo(b.Container.Root.DateAccepted), a.Container.Title.CompareTo(b.Container.Title))); break; case contractSortClass.Reward: sortList.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(!dsc, a.Container.TotalReward.CompareTo(b.Container.TotalReward), a.Container.Title.CompareTo(b.Container.Title))); break; case contractSortClass.Difficulty: sortList.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(!dsc, a.Container.Root.Prestige.CompareTo(b.Container.Root.Prestige), a.Container.Title.CompareTo(b.Container.Title))); break; case contractSortClass.Planet: sortList.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(!dsc, a.Container.TargetPlanet.CompareTo(b.Container.TargetPlanet), a.Container.Title.CompareTo(b.Container.Title))); break; case contractSortClass.Type: sortList.Sort((a, b) => RUIutils.SortAscDescPrimarySecondary(!dsc, a.Container.Root.GetType().Name.CompareTo(b.Container.Root.GetType().Name), a.Container.Title.CompareTo(b.Container.Title))); sortList = typeSort(sortList, !dsc); break; } list.Clear(); if (pinnedList.Count > 0) { list.AddRange(pinnedList); } int k = sortList.Count; for (int i = 0; i < k; i++) { contractUIObject c = sortList[i]; if (c == null) { continue; } list.Add(c.ID); } return(list); }