public static void IfNotNull <ObjT>(this Nullable <ObjT> value, Action action)
     where ObjT : struct
 {
     if (value.NotNull())
     {
         action();
     }
 }
 public static T IfNotNull <ObjT, T>(this Nullable <ObjT> value, Func <T> action)
     where ObjT : struct
 {
     if (value.NotNull())
     {
         action();
     }
     return(default(T));
 }
 public static T IfNotNull <ObjT, T>(this Nullable <ObjT> value, Func <T> actionIfNotNull, Func <T> actionIfNull)
     where ObjT : struct
 {
     if (value.NotNull())
     {
         return(actionIfNotNull());
     }
     else
     {
         return(actionIfNull());
     }
 }