Files
raven/server/AyaNova/DataList/ServiceBankDataList.cs
2021-02-08 15:00:09 +00:00

218 lines
8.6 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;
// //######## DEFAULT VIEW WHEN NO VIEW CHOSEN ############
// //Default ListView
// dynamic dlistView = new JArray();
// dynamic cm = null;
// cm = new JObject();
// cm.fld = "ServiceBankCreated";
// cm.sort = "-";
// dlistView.Add(cm);
// cm = new JObject();
// cm.fld = "Object";
// dlistView.Add(cm);
// cm = new JObject();
// cm.fld = "ServiceBankCurrency";
// dlistView.Add(cm);
// cm = new JObject();
// cm.fld = "ServiceBankCurrencyBalance";
// dlistView.Add(cm);
// cm = new JObject();
// cm.fld = "ServiceBankIncidents";
// dlistView.Add(cm);
// cm = new JObject();
// cm.fld = "ServiceBankIncidentsBalance";
// dlistView.Add(cm);
// cm = new JObject();
// cm.fld = "ServiceBankHours";
// dlistView.Add(cm);
// cm = new JObject();
// cm.fld = "ServiceBankHoursBalance";
// dlistView.Add(cm);
// cm = new JObject();
// cm.fld = "ServiceBankDescription";
// dlistView.Add(cm);
// DefaultListView = dlistView.ToString(Newtonsoft.Json.Formatting.None);
DefaultColumns = new List<string>() {
"ServiceBankCreated", "Object", "ServiceBankCurrency", "ServiceBankCurrencyBalance", "ServiceBankIncidents",
"ServiceBankIncidentsBalance", "ServiceBankHours", "ServiceBankHoursBalance", "ServiceBankDescription"
};
DefaultSortBy = new Dictionary<string, string>() { { "ServiceBankCreated", "-" } };
//NOTE: Due to the join, all the sql id and name fields that can conflict with the joined table need to be specified completely
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