This commit is contained in:
@@ -266,46 +266,26 @@ namespace AyaNova.Biz
|
||||
// LISTS
|
||||
//
|
||||
|
||||
// public static FilterOptions FilterOptions(long localizeToLocaleId = 0)
|
||||
// {
|
||||
// //NOTE: All column names are lowercase to conform with Postgres AyaNova DB which uses lowercase for all identifiers
|
||||
// //Also all list keys are lower case for consistency
|
||||
// FilterOptions f = new FilterOptions("widget");
|
||||
// f.
|
||||
// AddField("id", "ID", AyDataType.Integer).
|
||||
// AddField("name", "WidgetName", AyDataType.Text).
|
||||
// AddField("serial", "WidgetSerial", AyDataType.Integer).
|
||||
// AddField("notes", "WidgetNotes", AyDataType.Text).
|
||||
// AddField("dollaramount", "WidgetDollarAmount", AyDataType.Decimal).
|
||||
// AddField("active", "Active", AyDataType.Bool).
|
||||
// AddField("startdate", "WidgetStartDate", AyDataType.Date).
|
||||
// AddField("count", "WidgetCount", AyDataType.Integer).
|
||||
// AddField("tags", "Tags", AyDataType.Tags).
|
||||
// AddField("enddate", "WidgetEndDate", AyDataType.Date);
|
||||
|
||||
// if (localizeToLocaleId != 0)
|
||||
// f.Localize(localizeToLocaleId);
|
||||
// return f;
|
||||
// }
|
||||
|
||||
|
||||
//get many (paged)
|
||||
internal async Task<JObject> GetList(IUrlHelper Url, string routeName, ListOptions pagingOptions)
|
||||
internal async Task<JObject> GetList(IUrlHelper Url, string routeName, ListOptions listOptions)
|
||||
{
|
||||
pagingOptions.Offset = pagingOptions.Offset ?? ListOptions.DefaultOffset;
|
||||
pagingOptions.Limit = pagingOptions.Limit ?? ListOptions.DefaultLimit;
|
||||
listOptions.Offset = listOptions.Offset ?? ListOptions.DefaultOffset;
|
||||
listOptions.Limit = listOptions.Limit ?? ListOptions.DefaultLimit;
|
||||
|
||||
//BUILD THE QUERY
|
||||
//base query
|
||||
var q = "SELECT *, xmin FROM AWIDGET ";
|
||||
|
||||
//GET THE FILTER / SORT
|
||||
if (pagingOptions.DataFilterId > 0)
|
||||
if (listOptions.DataFilterId > 0)
|
||||
{
|
||||
var TheFilter = await ct.DataFilter.FirstOrDefaultAsync(x => x.Id == pagingOptions.DataFilterId);
|
||||
var TheFilter = await ct.DataFilter.FirstOrDefaultAsync(x => x.Id == listOptions.DataFilterId);
|
||||
|
||||
//BUILD WHERE AND APPEND IT
|
||||
q = q + FilterSqlCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, ObjectFields.ObjectFieldsList(ObjectFields.WIDGET_KEY), UserId);
|
||||
q = q + FilterSqlCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, ObjectFields.ObjectFieldsList(ObjectFields.WIDGET_KEY), UserId);
|
||||
|
||||
//BUILD ORDER BY AND APPEND IT
|
||||
q = q + FilterSqlOrderByBuilder.DataFilterToSQLOrderBy(TheFilter);
|
||||
@@ -319,35 +299,51 @@ namespace AyaNova.Biz
|
||||
|
||||
#pragma warning disable EF1000
|
||||
|
||||
//GET THE FULL LIST OF ITEMS
|
||||
//GET THE FULL LIST OF ITEMS
|
||||
var items = await ct.Widget
|
||||
.FromSqlRaw(q)
|
||||
.AsNoTracking()
|
||||
.Skip(pagingOptions.Offset.Value)
|
||||
.Take(pagingOptions.Limit.Value)
|
||||
.Skip(listOptions.Offset.Value)
|
||||
.Take(listOptions.Limit.Value)
|
||||
.ToArrayAsync();
|
||||
//GET THE RECORD COUNT
|
||||
//GET THE RECORD COUNT
|
||||
var totalRecordCount = await ct.Widget
|
||||
.FromSqlRaw(q)
|
||||
.AsNoTracking()
|
||||
.CountAsync();
|
||||
#pragma warning restore EF1000
|
||||
|
||||
//BUILD THE PAGING LINKS PORTION
|
||||
var pageLinks = new PaginationLinkBuilder(Url, routeName, null, pagingOptions, totalRecordCount).PagingLinksObject();
|
||||
//BUILD THE PAGING LINKS PORTION
|
||||
var pageLinks = new PaginationLinkBuilder(Url, routeName, null, listOptions, totalRecordCount).PagingLinksObject();
|
||||
|
||||
|
||||
//BUILD THE RETURN BASED ON TEMPLATE and MINI CONDITIONAL FORMAT
|
||||
//TODO: Get template (MOCKED FOR NOW UNTIL PROOF OF CONCEPT)
|
||||
|
||||
/*{ "MyStringArray" : ["somestring1", "somestring2"] }
|
||||
{
|
||||
columns:[
|
||||
ltKey,ltKey2,ltkey3
|
||||
],
|
||||
mini:[
|
||||
ltKey, ltkey2, ltkey3
|
||||
]
|
||||
}
|
||||
*/
|
||||
var MOCK_DISPLAY_TEMPLATE = @"
|
||||
{
|
||||
""full"":[""WidgetName"",""WidgetSerial"",""WidgetDollarAmount"",""WidgetRoles"",""WidgetStartDate"",""Active""],
|
||||
""mini"":[""WidgetName"",""WidgetSerial""]
|
||||
}
|
||||
";
|
||||
|
||||
//TODO: BUILD THE RETURN LIST OF FIELDS / TYPES AND ORDER FROM TEMPLATE AND MINI CONDITIONAL
|
||||
|
||||
//TODO: BUILD THE RETURN LIST OF DATA ITEMS
|
||||
//If mini format all desired columns in order into the single mini return display (and set the only other return field which is ID)
|
||||
|
||||
|
||||
//If wide then format the fields in oder chosen (grid sort and filter template has already done that part above)
|
||||
|
||||
//TODO: Genericize the above block of building return when it's working as this code needs to be central and optimized as much as possible
|
||||
//TODO: Genericize the above block of building return when it's working as this code needs to be central and optimized as much as possible
|
||||
|
||||
//New return code
|
||||
dynamic ret = new JObject();
|
||||
|
||||
Reference in New Issue
Block a user