This commit is contained in:
2020-01-17 21:45:30 +00:00
parent 814e1fe241
commit b0133af3f1
2 changed files with 22 additions and 37 deletions

View File

@@ -280,8 +280,8 @@ namespace AyaNova.Biz
//TODO: Get template (MOCKED FOR NOW UNTIL PROOF OF CONCEPT)
var MOCK_WIDGET_DISPLAY_TEMPLATE_JSON = @"
{
""full"":[""WidgetName"",""WidgetSerial"",""WidgetDollarAmount"",""WidgetRoles"",""WidgetStartDate"",""Active""],
""mini"":[""WidgetName"",""WidgetSerial""]
""full"":[""widgetname"",""widgetserial"",""widgetdollaramount"",""widgetroles"",""widgetstartdate"",""active""],
""mini"":[""widgetname"",""widgetserial""]
}
";
@@ -314,11 +314,7 @@ namespace AyaNova.Biz
//BUILD ORDER BY AND APPEND IT
qOrderBy = SqlFilterOrderByBuilder.DataFilterToSQLOrderBy(TheFilter);
}
// else
// {
// //GET DEFAULT ORDER BY
// qOrderBy = SqlFilterOrderByBuilder.DefaultGetManyOrderBy;
// }
//LIMIT AND OFFSET CLAUSE - PAGING
listOptions.Offset = listOptions.Offset ?? ListOptions.DefaultOffset;
@@ -416,14 +412,16 @@ namespace AyaNova.Biz
}
";
var Object
//BUILD THE QUERY
/*
Select awidget.id, awidget.name, auser.name, auser.id, auseroptions.emailaddress
from awidget
left outer join auser on (awidget.userid=auser.id)
left outer join auseroptions on (auser.id=auseroptions.userid)
order by auseroptions.emailaddress desc
*/
/*
Select awidget.id, awidget.name, auser.name, auser.id, auseroptions.emailaddress
from awidget
left outer join auser on (awidget.userid=auser.id)
left outer join auseroptions on (auser.id=auseroptions.userid)
order by auseroptions.emailaddress desc
*/
//SELECT FRAGMENT COLUMNS FROM TEMPLATE
//"select clm,clm,clm"
var qSelectColumns = SqlSelectBuilder.Build(AyaObjectFields.TEST_WIDGET_USER_EMAIL_ADDRESS_LIST_KEY, MOCK_WIDGET_USER_EMAIL_DISPLAY_TEMPLATE_JSON, listOptions.Mini);
@@ -435,30 +433,17 @@ order by auseroptions.emailaddress desc
//FILTERED?
DataFilter TheFilter = null;
if (listOptions.DataFilterId > 0)
{
TheFilter = await ct.DataFilter.FirstOrDefaultAsync(x => x.Id == listOptions.DataFilterId);
}
//WHERE CLAUSE - FILTER
var qWhere = string.Empty;
if (listOptions.DataFilterId > 0)
{
qWhere = SqlFilterCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, AyaObjectFields.ObjectFieldsList(AyaObjectFields.TEST_WIDGET_USER_EMAIL_ADDRESS_LIST_KEY), UserId);
}
//ORDER BY CLAUSE - SORT
var qOrderBy = string.Empty;
if (listOptions.DataFilterId > 0)
{
TheFilter = await ct.DataFilter.FirstOrDefaultAsync(x => x.Id == listOptions.DataFilterId);
//WHERE CLAUSE - FILTER
qWhere = SqlFilterCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, AyaObjectFields.ObjectFieldsList(AyaObjectFields.TEST_WIDGET_USER_EMAIL_ADDRESS_LIST_KEY), UserId);
//ORDER BY CLAUSE - SORT
//BUILD ORDER BY AND APPEND IT
qOrderBy = SqlFilterOrderByBuilder.DataFilterToSQLOrderBy(TheFilter);
}
// else
// {
// //GET DEFAULT ORDER BY
// qOrderBy = SqlFilterOrderByBuilder.DefaultGetManyOrderBy;
// }
//LIMIT AND OFFSET CLAUSE - PAGING
listOptions.Offset = listOptions.Offset ?? ListOptions.DefaultOffset;
@@ -512,6 +497,12 @@ order by auseroptions.emailaddress desc
//TODO: Build the return object in a clean format
//rows:{[ {},{v:"Green mechanics",id:32},{v:"...notes..."},{v:"42",id:42}, ...thousands more etc.... ]}
//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 order 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
@@ -530,12 +521,6 @@ order by auseroptions.emailaddress desc
ColumnsJSON = AyaObjectFields.GenerateListColumnsJSONFromTemplate(AyaType.Widget, AyaObjectFields.TEST_WIDGET_USER_EMAIL_ADDRESS_LIST_KEY, MOCK_WIDGET_USER_EMAIL_DISPLAY_TEMPLATE_JSON);
}
//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
ApiPagedResponse pr = new ApiPagedResponse(items, pageLinks, ColumnsJSON);