Пример #1
0
 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);
 }
Пример #2
0
        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();
        }
Пример #3
0
        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());
        }
Пример #4
0
        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);
        }
Пример #5
0
 public static string[] GetDatabaseEntriesIDs(DatabaseEntryType entryType, string parameter = "")
 {
     return((from DatabaseEntryInfo entryInfo in GetDatabaseEntriesInfo(entryType, parameter) select entryInfo.ID).ToArray());
 }
Пример #6
0
        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()));
        }