89 lines
2.6 KiB
C#
89 lines
2.6 KiB
C#
using System.Collections;
|
|
using System.Reflection;
|
|
|
|
namespace NetinaShop.Common.Models.Report
|
|
{
|
|
public interface IReportableItem
|
|
{
|
|
string Name { get; set; }
|
|
string PropertyName { get; set; }
|
|
object DefaultValue { get; set; }
|
|
object SelectedValue { get; set; }
|
|
string ItemType { get; }
|
|
object Element { get; set; }
|
|
}
|
|
|
|
public class BoolReportable : IReportableItem
|
|
{
|
|
public BoolReportable()
|
|
{
|
|
ItemType = GetType().Name;
|
|
}
|
|
|
|
public string Name { get; set; }
|
|
public string PropertyName { get; set; }
|
|
public object DefaultValue { get; set; }
|
|
public object SelectedValue { get; set; }
|
|
public string ItemType { get; }
|
|
public object Element { get; set; }
|
|
}
|
|
|
|
public class ListReportable : IReportableItem
|
|
{
|
|
public ListReportable()
|
|
{
|
|
ItemType = GetType().Name;
|
|
}
|
|
|
|
public IList List { get; set; }
|
|
public IList ConvertedList { get; set; }
|
|
public string DisplayMemberPath { get; set; }
|
|
public string SelectedMemberPath { get; set; }
|
|
public string ListItemType { get; set; }
|
|
public string Name { get; set; }
|
|
public string PropertyName { get; set; }
|
|
public object DefaultValue { get; set; }
|
|
public object SelectedValue { get; set; }
|
|
public string ItemType { get; }
|
|
public object Element { get; set; }
|
|
}
|
|
|
|
public class EnumReportable : IReportableItem
|
|
{
|
|
public EnumReportable()
|
|
{
|
|
ItemType = GetType().Name;
|
|
}
|
|
|
|
public string EnumTypeName { get; set; }
|
|
|
|
public string Name { get; set; }
|
|
public string PropertyName { get; set; }
|
|
public object DefaultValue { get; set; }
|
|
public object SelectedValue { get; set; }
|
|
public string ItemType { get; }
|
|
public object Element { get; set; }
|
|
|
|
public Type EnumType(Assembly domainAssembly)
|
|
{
|
|
var types = domainAssembly.GetTypes();
|
|
var type = types.FirstOrDefault(t => t.Name == EnumTypeName);
|
|
return type;
|
|
}
|
|
}
|
|
|
|
public class NumericReportable : IReportableItem
|
|
{
|
|
public NumericReportable()
|
|
{
|
|
ItemType = GetType().Name;
|
|
}
|
|
|
|
public string Name { get; set; }
|
|
public string PropertyName { get; set; }
|
|
public object DefaultValue { get; set; }
|
|
public object SelectedValue { get; set; }
|
|
public string ItemType { get; }
|
|
public object Element { get; set; }
|
|
}
|
|
} |