AirScout/AirScout.Core/PlaneCategory.cs

128 wiersze
3.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ScoutBase.Core;
using System.Reflection;
namespace AirScout.Core
{
public enum PLANECATEGORY
{
[StringCustomAttribute("None")]
NONE = 0,
[StringCustomAttribute("Light")]
LIGHT = 1,
[StringCustomAttribute("Medium")]
MEDIUM = 2,
[StringCustomAttribute("Heavy")]
HEAVY = 3,
[StringCustomAttribute("Superheavy")]
SUPERHEAVY = 4,
}
public static class PlaneCategories
{
public static string GetName(PLANECATEGORY cat)
{
return Enum.GetName(typeof(PLANECATEGORY), cat);
}
public static string[] GetNames()
{
return Enum.GetNames(typeof(PLANECATEGORY));
}
public static string[] GetNamesExceptNone()
{
PLANECATEGORY[] bandsexceptnone = GetValuesExceptNone();
string[] namesexceptnone = new string[bandsexceptnone.Length];
for (int i = 0; i < bandsexceptnone.Length; i++)
namesexceptnone[i] = GetName(bandsexceptnone[i]);
return namesexceptnone;
}
public static PLANECATEGORY[] GetValues()
{
return (PLANECATEGORY[])Enum.GetValues(typeof(PLANECATEGORY));
}
public static PLANECATEGORY[] GetValuesExceptNone()
{
PLANECATEGORY[] cats = (PLANECATEGORY[])Enum.GetValues(typeof(PLANECATEGORY));
PLANECATEGORY[] catsexceptnone = new PLANECATEGORY[cats.Length - 1];
int i = 0;
foreach (PLANECATEGORY cat in cats)
{
if (cat != PLANECATEGORY.NONE)
{
catsexceptnone[i] = cat;
i++;
}
}
return catsexceptnone;
}
public static string GetStringValue(PLANECATEGORY cat)
{
string output = null;
FieldInfo fi = typeof(PLANECATEGORY).GetField(cat.ToString());
StringCustomAttribute[] attrs = fi.GetCustomAttributes(typeof(StringCustomAttribute), false) as StringCustomAttribute[];
if (attrs.Length > 0)
{
output = attrs[0].Value;
}
return output;
}
public static string GetShortStringValue (PLANECATEGORY cat)
{
string output = null;
FieldInfo fi = typeof(PLANECATEGORY).GetField(cat.ToString());
StringCustomAttribute[] attrs = fi.GetCustomAttributes(typeof(StringCustomAttribute), false) as StringCustomAttribute[];
if (attrs.Length > 0)
{
output = attrs[0].Value.Substring(0, 1).ToUpper();
}
return output;
}
public static string[] GetStringValues()
{
List<string> cats = new List<string>();
foreach (PLANECATEGORY cat in Enum.GetValues(typeof(PLANECATEGORY)))
{
cats.Add(GetStringValue(cat));
}
if (cats.Count > 0)
return cats.ToArray();
return null;
}
public static string[] GetStringValuesExceptNone()
{
List<string> cats = new List<string>();
foreach (PLANECATEGORY cat in Enum.GetValues(typeof(PLANECATEGORY)))
{
if (cat != PLANECATEGORY.NONE)
cats.Add(GetStringValue(cat));
}
if (cats.Count > 0)
return cats.ToArray();
return null;
}
public static PLANECATEGORY ParseStringValue(string catstr)
{
foreach (PLANECATEGORY c in PlaneCategories.GetValuesExceptNone())
{
if (PlaneCategories.GetStringValue(c) == catstr)
return c;
}
return PLANECATEGORY.NONE;
}
}
}