diff --git a/Helper.cs b/Helper.cs new file mode 100644 index 0000000..b513754 --- /dev/null +++ b/Helper.cs @@ -0,0 +1,98 @@ +using System; +using System.ComponentModel; +using System.Reflection; + +namespace BlubbFish.Utils { + public static class Helper { + #region PropertyHelper + public static Boolean HasProperty(this Object o, String type) { + Type t = o.GetType(); + foreach (PropertyInfo item in t.GetProperties()) { + if (item.Name == type) { + return true; + } + } + return false; + } + + public static Object GetProperty(this Object o, String name) { + PropertyInfo prop = o.GetType().GetProperty(name); + if (prop.CanRead) { + return prop.GetValue(o); + } + return null; + } + + public static void SetProperty(this Object o, String name, String value) { + PropertyInfo prop = o.GetType().GetProperty(name); + if (prop.CanWrite) { + if (prop.PropertyType == typeof(Boolean) && Boolean.TryParse(value, out Boolean vb)) { + prop.SetValue(o, vb); + } else if (prop.PropertyType == typeof(Byte) && Byte.TryParse(value, out Byte v8)) { + prop.SetValue(o, v8); + } else if (prop.PropertyType == typeof(Int32) && Int32.TryParse(value, out Int32 v32)) { + prop.SetValue(o, v32); + } else if (prop.PropertyType == typeof(Single) && Single.TryParse(value, out Single vs)) { + prop.SetValue(o, vs); + } else if (prop.PropertyType == typeof(Double) && Double.TryParse(value, out Double vd)) { + prop.SetValue(o, vd); + } else if (prop.PropertyType == typeof(Int64) && Int64.TryParse(value, out Int64 v64)) { + prop.SetValue(o, v64); + } else if (prop.PropertyType.BaseType == typeof(Enum)) { + try { + prop.SetValue(o, Enum.Parse(prop.PropertyType, value)); + } catch (Exception) { } + } + } + } + #endregion + + #region InterfaceHelper + public static Boolean HasInterface(this Type o, Type interf) { + foreach (Type item in o.GetInterfaces()) { + if (item == interf) { + return true; + } + } + return false; + } + + public static Boolean HasAbstract(this Type o, Type type) { + if (o.BaseType == type) { + return true; + } + return false; + } + #endregion + + #region StringHelper + public static String GetEnumDescription(Enum value) { + FieldInfo fi = value.GetType().GetField(value.ToString()); + + DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false); + + if (attributes != null && attributes.Length > 0) { + return attributes[0].Description; + } else { + return value.ToString(); + } + } + + public static String ToUpperLower(this String s) { + if (s.Length == 0) { + return ""; + } + if (s.Length == 1) { + return s.ToUpper(); + } + return s[0].ToString().ToUpper() + s.Substring(1).ToLower(); + } + + public static void WriteError(String text) { + Console.ForegroundColor = ConsoleColor.Red; + Console.Error.WriteLine("ERROR: " + text); + Console.ResetColor(); + } + #endregion + } +} diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index cd49385..ed13983 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -32,5 +32,9 @@ using System.Runtime.InteropServices; // Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern // übernehmen, indem Sie "*" eingeben: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.1.3")] -[assembly: AssemblyFileVersion("1.1.3")] +[assembly: AssemblyVersion("1.4.0")] +[assembly: AssemblyFileVersion("1.4.0")] + +/** + * 1.4.0 Add Helper to Utils + */ diff --git a/Utils.csproj b/Utils.csproj index 83cfa61..770adde 100644 --- a/Utils.csproj +++ b/Utils.csproj @@ -45,6 +45,7 @@ + diff --git a/bin/Release/Utils.dll b/bin/Release/Utils.dll index 1bc8581..a28cada 100644 Binary files a/bin/Release/Utils.dll and b/bin/Release/Utils.dll differ