diff --git a/server/AyaNova/biz/ObjectFields.cs b/server/AyaNova/biz/AyaObjectFields.cs similarity index 100% rename from server/AyaNova/biz/ObjectFields.cs rename to server/AyaNova/biz/AyaObjectFields.cs diff --git a/server/AyaNova/biz/WidgetBiz.cs b/server/AyaNova/biz/WidgetBiz.cs index cd412017..963d51fc 100644 --- a/server/AyaNova/biz/WidgetBiz.cs +++ b/server/AyaNova/biz/WidgetBiz.cs @@ -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);