using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MW5.Shared
{
///
/// Simple implementation of IConvertible as a workaround for issue with Syncfusion's GridGroupingControl
/// described here: http ://www.syncfusion.com/forums/54409/data-binding-custom-object-ilist-with-descendant-objects-in-the-list
/// Wouldn't it be better if Syncfusion guys added this check in their source, rather than force everybody to maim
/// their business objects?
///
public class ConvertibleBase: IConvertible
{
TypeCode IConvertible.GetTypeCode()
{
throw new NotImplementedException();
}
bool IConvertible.ToBoolean(IFormatProvider provider)
{
throw new NotImplementedException();
}
char IConvertible.ToChar(IFormatProvider provider)
{
throw new NotImplementedException();
}
sbyte IConvertible.ToSByte(IFormatProvider provider)
{
throw new NotImplementedException();
}
byte IConvertible.ToByte(IFormatProvider provider)
{
throw new NotImplementedException();
}
short IConvertible.ToInt16(IFormatProvider provider)
{
throw new NotImplementedException();
}
ushort IConvertible.ToUInt16(IFormatProvider provider)
{
throw new NotImplementedException();
}
int IConvertible.ToInt32(IFormatProvider provider)
{
throw new NotImplementedException();
}
uint IConvertible.ToUInt32(IFormatProvider provider)
{
throw new NotImplementedException();
}
long IConvertible.ToInt64(IFormatProvider provider)
{
throw new NotImplementedException();
}
ulong IConvertible.ToUInt64(IFormatProvider provider)
{
throw new NotImplementedException();
}
float IConvertible.ToSingle(IFormatProvider provider)
{
throw new NotImplementedException();
}
double IConvertible.ToDouble(IFormatProvider provider)
{
throw new NotImplementedException();
}
decimal IConvertible.ToDecimal(IFormatProvider provider)
{
throw new NotImplementedException();
}
DateTime IConvertible.ToDateTime(IFormatProvider provider)
{
throw new NotImplementedException();
}
public virtual string ToString(IFormatProvider provider)
{
return GetType().FullName;
}
object IConvertible.ToType(Type conversionType, IFormatProvider provider)
{
if (conversionType.IsAssignableFrom(GetType()))
{
return this;
}
throw new NullReferenceException("Can't convert to: " + conversionType.FullName);
}
}
}