100 lines
3.8 KiB
C#
100 lines
3.8 KiB
C#
using System.Collections.Generic;
|
|
using AyaNova.Biz;
|
|
using AyaNova.Models;
|
|
|
|
namespace AyaNova.DataList
|
|
{
|
|
internal class CustomerNoteDataList : AyaDataList, IAyaDataListServerCriteria
|
|
{
|
|
public CustomerNoteDataList()
|
|
{
|
|
DefaultListObjectType = AyaType.CustomerNote;
|
|
SQLFrom = "from acustomernote left join auser on (acustomernote.userid=auser.id)";
|
|
var RoleSet = BizRoles.GetRoleSet(DefaultListObjectType);
|
|
AllowedRoles = RoleSet.ReadFullRecord | RoleSet.Change;
|
|
|
|
// //######## DEFAULT VIEW WHEN NO VIEW CHOSEN ############
|
|
// //Default ListView
|
|
// dynamic dlistView = new JArray();
|
|
|
|
|
|
// dynamic cm = new JObject();
|
|
// cm.fld = "notedate";
|
|
// cm.sort = "-";
|
|
// dlistView.Add(cm);
|
|
|
|
// cm = new JObject();
|
|
// cm.fld = "notes";
|
|
// dlistView.Add(cm);
|
|
|
|
// cm = new JObject();
|
|
// cm.fld = "username";
|
|
// dlistView.Add(cm);
|
|
// DefaultListView = dlistView.ToString(Newtonsoft.Json.Formatting.None);
|
|
|
|
DefaultColumns = new List<string>() { "notedate", "notes", "username" };
|
|
DefaultSortBy = new Dictionary<string, string>() { { "notedate", "-" } };
|
|
|
|
|
|
//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<AyaDataListFieldDefinition>();
|
|
|
|
FieldDefinitions.Add(new AyaDataListFieldDefinition
|
|
{
|
|
TKey = "User",
|
|
FieldKey = "username",
|
|
AyaObjectType = (int)AyaType.User,
|
|
UiFieldDataType = (int)UiFieldDataType.Text,
|
|
SqlIdColumnName = "auser.id",
|
|
SqlValueColumnName = "auser.name",
|
|
IsRowId = false
|
|
});
|
|
|
|
|
|
FieldDefinitions.Add(new AyaDataListFieldDefinition
|
|
{
|
|
TKey = "CustomerNoteNotes",
|
|
FieldKey = "notes",
|
|
AyaObjectType = (int)AyaType.CustomerNote,
|
|
UiFieldDataType = (int)UiFieldDataType.Text,
|
|
SqlIdColumnName = "acustomernote.id",
|
|
SqlValueColumnName = "acustomernote.notes",
|
|
IsRowId = true
|
|
});
|
|
|
|
FieldDefinitions.Add(new AyaDataListFieldDefinition
|
|
{
|
|
TKey = "CustomerNoteNoteDate",
|
|
FieldKey = "notedate",
|
|
UiFieldDataType = (int)UiFieldDataType.DateTime,
|
|
SqlValueColumnName = "acustomernote.notedate"
|
|
});
|
|
|
|
//META column
|
|
FieldDefinitions.Add(new AyaDataListFieldDefinition
|
|
{
|
|
FieldKey = "metacustomer",
|
|
SqlIdColumnName = "acustomernote.customerid",
|
|
SqlValueColumnName = "acustomernote.customerid",
|
|
IsMeta = true
|
|
});
|
|
}
|
|
|
|
|
|
public List<DataListFilterOption> DataListServerCriteria(long currentUserId, AuthorizationRoles userRoles, DataListBase dataListBase)
|
|
{
|
|
List<DataListFilterOption> ret = new List<DataListFilterOption>();
|
|
//ClientCriteria MUST be CustomerId
|
|
if (string.IsNullOrWhiteSpace(dataListBase.ClientCriteria))
|
|
throw new System.ArgumentNullException("CustomerNoteDataList - ClientCriteria is empty, should be Customer ID");
|
|
|
|
DataListFilterOption FilterOption = new DataListFilterOption() { Column = "metacustomer" };
|
|
FilterOption.Items.Add(new DataListColumnFilter() { value = dataListBase.ClientCriteria, op = DataListFilterComparisonOperator.Equality });
|
|
|
|
ret.Add(FilterOption);
|
|
return ret;
|
|
}
|
|
|
|
|
|
}//eoc
|
|
}//eons |