public static string GetDBDisplayName(DatabaseEntryType entryType, string id) { if (String.IsNullOrEmpty(id)) { return("Random"); } return(BriefingRoom4DCS.BriefingRoom.GetDatabaseEntriesInfo(entryType).First(x => x.ID == id).Name); }
public DatabaseSourceTypeAttribute(DatabaseEntryType entryType, bool allowEmpty = false) { EntryType = entryType; List <string> allowableValuesList = new List <string>(); if (allowEmpty) { allowableValuesList.Add(""); } allowableValuesList.AddRange(BriefingRoom.GetDatabaseEntriesIDs(entryType)); AllowableValues = allowableValuesList.ToArray(); }
public static DatabaseEntryInfo?GetSingleDatabaseEntryInfo(DatabaseEntryType entryType, string id) { // Database entry ID doesn't exist if (!GetDatabaseEntriesIDs(entryType).Contains(id)) { return(null); } DatabaseEntryInfo[] databaseEntryInfos = GetDatabaseEntriesInfo(entryType); return ((from DatabaseEntryInfo databaseEntryInfo in databaseEntryInfos where databaseEntryInfo.ID.ToLowerInvariant() == id.ToLowerInvariant() select databaseEntryInfo).First()); }
public static DatabaseEntryInfo[] GetDatabaseEntriesInfo(DatabaseEntryType entryType, string parameter = "") { switch (entryType) { case DatabaseEntryType.Airbase: if (string.IsNullOrEmpty(parameter)) // No parameter, return none { return new DatabaseEntryInfo[] { } } ; else // A parameter was provided, return all airbases from specified theater { return((from DBEntryAirbase airbase in Database.Instance.GetAllEntries <DBEntryAirbase>() where airbase.Theater == parameter.ToLowerInvariant() select airbase.GetDBEntryInfo()).OrderBy(x => x.Name).ToArray()); } case DatabaseEntryType.Situation: if (string.IsNullOrEmpty(parameter)) // No parameter, return none { return new DatabaseEntryInfo[] { } } ; else // A parameter was provided, return all airbases from specified theater { return((from DBEntrySituation situation in Database.Instance.GetAllEntries <DBEntrySituation>() where situation.Theater == parameter.ToLowerInvariant() select situation.GetDBEntryInfo()).OrderBy(x => x.Name).ToArray()); } case DatabaseEntryType.ObjectiveTarget: if (string.IsNullOrEmpty(parameter)) // No parameter, return none { return((from DBEntryObjectiveTarget objectiveTarget in Database.Instance.GetAllEntries <DBEntryObjectiveTarget>() select objectiveTarget.GetDBEntryInfo()).OrderBy(x => x.Name).ToArray()); } else { return((from DBEntryObjectiveTarget objectiveTarget in Database.Instance.GetAllEntries <DBEntryObjectiveTarget>() where Database.Instance.GetEntry <DBEntryObjectiveTask>(parameter).ValidUnitCategories.Contains(objectiveTarget.UnitCategory) select objectiveTarget.GetDBEntryInfo()).OrderBy(x => x.Name).ToArray()); } case DatabaseEntryType.ObjectiveTargetBehavior: if (string.IsNullOrEmpty(parameter)) // No parameter, return none { return((from DBEntryObjectiveTargetBehavior objectiveTargetBehavior in Database.Instance.GetAllEntries <DBEntryObjectiveTargetBehavior>() select objectiveTargetBehavior.GetDBEntryInfo()).OrderBy(x => x.Name).ToArray()); } else { return((from DBEntryObjectiveTargetBehavior objectiveTargetBehavior in Database.Instance.GetAllEntries <DBEntryObjectiveTargetBehavior>() where objectiveTargetBehavior.ValidUnitCategories.Contains(Database.Instance.GetEntry <DBEntryObjectiveTarget>(parameter).UnitCategory) select objectiveTargetBehavior.GetDBEntryInfo()).OrderBy(x => x.Name).ToArray()); } case DatabaseEntryType.Coalition: return((from DBEntryCoalition coalition in Database.Instance.GetAllEntries <DBEntryCoalition>() select coalition.GetDBEntryInfo()).OrderBy(x => x.Name).ToArray()); case DatabaseEntryType.DCSMod: return((from DBEntryDCSMod dcsMod in Database.Instance.GetAllEntries <DBEntryDCSMod>() select dcsMod.GetDBEntryInfo()).OrderBy(x => x.Name).ToArray()); case DatabaseEntryType.MissionFeature: return((from DBEntryFeatureMission missionFeature in Database.Instance.GetAllEntries <DBEntryFeatureMission>() select missionFeature.GetDBEntryInfo()).OrderBy(x => x.Name).ToArray()); case DatabaseEntryType.OptionsMission: return((from DBEntryOptionsMission missionFeature in Database.Instance.GetAllEntries <DBEntryOptionsMission>() select missionFeature.GetDBEntryInfo()).OrderBy(x => x.Name).ToArray()); case DatabaseEntryType.ObjectiveFeature: return((from DBEntryFeatureObjective objectiveFeature in Database.Instance.GetAllEntries <DBEntryFeatureObjective>() select objectiveFeature.GetDBEntryInfo()).OrderBy(x => x.Name).ToArray()); case DatabaseEntryType.ObjectivePreset: return((from DBEntryObjectivePreset objectivePreset in Database.Instance.GetAllEntries <DBEntryObjectivePreset>() select objectivePreset.GetDBEntryInfo()).OrderBy(x => x.Name).ToArray()); case DatabaseEntryType.ObjectiveTask: return((from DBEntryObjectiveTask objectiveTask in Database.Instance.GetAllEntries <DBEntryObjectiveTask>() select objectiveTask.GetDBEntryInfo()).OrderBy(x => x.Name).ToArray()); case DatabaseEntryType.Theater: return((from DBEntryTheater theater in Database.Instance.GetAllEntries <DBEntryTheater>() select theater.GetDBEntryInfo()).OrderBy(x => x.Name).ToArray()); case DatabaseEntryType.Unit: return((from DBEntryUnit unit in Database.Instance.GetAllEntries <DBEntryUnit>() select unit.GetDBEntryInfo()).OrderBy(x => x.Name).ToArray()); case DatabaseEntryType.UnitCarrier: return((from DBEntryUnit unitCarrier in Database.Instance.GetAllEntries <DBEntryUnit>() where Toolbox.CARRIER_FAMILIES.Intersect(unitCarrier.Families).Count() > 0 select unitCarrier.GetDBEntryInfo()).OrderBy(x => x.Name).ToArray()); case DatabaseEntryType.UnitFlyableAircraft: return((from DBEntryUnit unitFlyable in Database.Instance.GetAllEntries <DBEntryUnit>() where unitFlyable.AircraftData.PlayerControllable select unitFlyable.GetDBEntryInfo()).OrderBy(x => x.Name).ToArray()); case DatabaseEntryType.WeatherPreset: return((from DBEntryWeatherPreset weatherPreset in Database.Instance.GetAllEntries <DBEntryWeatherPreset>() select weatherPreset.GetDBEntryInfo()).OrderBy(x => x.Name).ToArray()); } return(null); }
public static string[] GetDatabaseEntriesIDs(DatabaseEntryType entryType, string parameter = "") { return((from DatabaseEntryInfo entryInfo in GetDatabaseEntriesInfo(entryType, parameter) select entryInfo.ID).ToArray()); }
public static Task <List <DatabaseEntryInfo> > SearchDB(DatabaseEntryType entryType, string searchText) { var list = BriefingRoom4DCS.BriefingRoom.GetDatabaseEntriesInfo(entryType); return(Task.FromResult(list.Where(x => x.Name.ToLower().Contains(searchText.ToLower())).ToList())); }