Files
raven/server/AyaNova/DataList/ServiceBankDataList.cs
2021-02-08 21:37:16 +00:00

168 lines
7.1 KiB
C#

using System.Collections.Generic;
using AyaNova.Models;
using AyaNova.Biz;
using System.Linq;
namespace AyaNova.DataList
{
internal class ServiceBankDataList : DataListProcessingBase, IDataListInternalCriteria
{
public ServiceBankDataList()
{
DefaultListObjectType = AyaType.ServiceBank;
SQLFrom = "from aservicebank";
var RoleSet = BizRoles.GetRoleSet(DefaultListObjectType);
AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change;
DefaultColumns = new List<string>() {
"ServiceBankCreated", "Object", "ServiceBankCurrency", "ServiceBankCurrencyBalance", "ServiceBankIncidents",
"ServiceBankIncidentsBalance", "ServiceBankHours", "ServiceBankHoursBalance", "ServiceBankDescription"
};
DefaultSortBy = new Dictionary<string, string>() { { "ServiceBankCreated", "-" } };
FieldDefinitions = new List<DataListFieldDefinition>();
FieldDefinitions.Add(new DataListFieldDefinition
{
TKey = "ServiceBankSourceRootObjectType",
FieldKey = "ServiceBankSourceRootObjectType",
UiFieldDataType = (int)UiFieldDataType.Text,
SqlIdColumnName = "aservicebank.sourceid",
SqlValueColumnName = "AYGETNAME(aservicebank.sourceid, aservicebank.sourcetype)",
SqlAyTypeColumnName = "aservicebank.sourcetype"
});
FieldDefinitions.Add(new DataListFieldDefinition
{
TKey = "Object",
FieldKey = "Object",
UiFieldDataType = (int)UiFieldDataType.Text,
SqlIdColumnName = "aservicebank.objectid",
SqlValueColumnName = "AYGETNAME(aservicebank.objectid, aservicebank.objecttype)",
SqlAyTypeColumnName = "aservicebank.objecttype"
});
FieldDefinitions.Add(new DataListFieldDefinition
{
TKey = "AyaType",
FieldKey = "AyaType",
UiFieldDataType = (int)UiFieldDataType.Enum,
EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(AyaType).ToString()),
SqlValueColumnName = "aservicebank.objecttype"
});
FieldDefinitions.Add(new DataListFieldDefinition
{
TKey = "ServiceBankDescription",
FieldKey = "ServiceBankDescription",
AyaObjectType = (int)AyaType.ServiceBank,
UiFieldDataType = (int)UiFieldDataType.Text,
SqlIdColumnName = "aservicebank.id",
SqlValueColumnName = "aservicebank.name",
IsRowId = true
});
FieldDefinitions.Add(new DataListFieldDefinition
{
TKey = "ServiceBankCreated",
FieldKey = "ServiceBankCreated",
UiFieldDataType = (int)UiFieldDataType.DateTime,
SqlValueColumnName = "aservicebank.entrydate"
});
FieldDefinitions.Add(new DataListFieldDefinition
{
TKey = "ServiceBankCurrency",
FieldKey = "ServiceBankCurrency",
UiFieldDataType = (int)UiFieldDataType.Currency,
SqlValueColumnName = "aservicebank.currency"
});
FieldDefinitions.Add(new DataListFieldDefinition
{
TKey = "ServiceBankCurrencyBalance",
FieldKey = "ServiceBankCurrencyBalance",
UiFieldDataType = (int)UiFieldDataType.Currency,
SqlValueColumnName = "aservicebank.currencybalance"
});
FieldDefinitions.Add(new DataListFieldDefinition
{
TKey = "ServiceBankIncidents",
FieldKey = "ServiceBankIncidents",
UiFieldDataType = (int)UiFieldDataType.Decimal,
SqlValueColumnName = "aservicebank.incidents"
});
FieldDefinitions.Add(new DataListFieldDefinition
{
TKey = "ServiceBankIncidentsBalance",
FieldKey = "ServiceBankIncidentsBalance",
UiFieldDataType = (int)UiFieldDataType.Decimal,
SqlValueColumnName = "aservicebank.incidentsbalance"
});
FieldDefinitions.Add(new DataListFieldDefinition
{
TKey = "ServiceBankHours",
FieldKey = "ServiceBankHours",
UiFieldDataType = (int)UiFieldDataType.Decimal,
SqlValueColumnName = "aservicebank.hours"
});
FieldDefinitions.Add(new DataListFieldDefinition
{
TKey = "ServiceBankHoursBalance",
FieldKey = "ServiceBankHoursBalance",
UiFieldDataType = (int)UiFieldDataType.Decimal,
SqlValueColumnName = "aservicebank.hoursbalance"
});
//META
FieldDefinitions.Add(new DataListFieldDefinition
{
FieldKey = "metaobjectid",
UiFieldDataType = (int)UiFieldDataType.InternalId,
SqlIdColumnName = "aservicebank.objectid",
SqlValueColumnName = "aservicebank.objectid",
IsMeta = true
});
FieldDefinitions.Add(new DataListFieldDefinition
{
FieldKey = "metaobjecttype",
UiFieldDataType = (int)UiFieldDataType.Enum,
EnumType = AyaNova.Util.StringUtil.TrimTypeName(typeof(AyaType).ToString()),
SqlValueColumnName = "aservicebank.objecttype",
IsMeta = true
});
}
public List<DataListFilterOption> DataListInternalCriteria(long currentUserId, AuthorizationRoles userRoles, string clientCriteria)
{
List<DataListFilterOption> ret = new List<DataListFilterOption>();
//ClientCriteria format for this list is "OBJECTID,AYATYPE"
var crit = (clientCriteria ?? "").Split(',').Select(z => z.Trim()).ToArray();
if (crit.Length > 1)
{
//OBJECTID criteria
if (crit[0] != "0")
{
DataListFilterOption FilterOption = new DataListFilterOption() { Column = "metaobjectid" };
FilterOption.Items.Add(new DataListColumnFilter() { value = crit[0], op = DataListFilterComparisonOperator.Equality });
ret.Add(FilterOption);
}
//AYATYPE criteria
if (!string.IsNullOrWhiteSpace(crit[1]))
{
DataListFilterOption FilterOption = new DataListFilterOption() { Column = "metaobjecttype" };
FilterOption.Items.Add(new DataListColumnFilter() { value = crit[1], op = DataListFilterComparisonOperator.Equality });
ret.Add(FilterOption);
}
}
return ret;
}
}//eoc
}//eons