This commit is contained in:
2018-12-12 19:34:49 +00:00
parent 34e250d319
commit 4d0c4da32b
8 changed files with 80 additions and 49 deletions

View File

@@ -60,10 +60,10 @@ export default {
ltKeysRequired: [
"Widget",
"WidgetList",
"WidgetName",
"CommonName",
"WidgetSerial",
"WidgetDollarAmount",
"WidgetActive",
"CommonActive",
"WidgetRoles",
"WidgetStartDate",
"WidgetEndDate",
@@ -88,12 +88,12 @@ export default {
rowsPerPageText: "blah per blah",
headers: [
{
text: this.lt("Widget"),
text: this.lt("CommonName"),
value: "name"
},
{ text: this.lt("WidgetSerial"), value: "serial" },
{ text: this.lt("WidgetDollarAmount"), value: "dollarAmount" },
{ text: this.lt("WidgetActive"), value: "active" },
{ text: this.lt("CommonActive"), value: "active" },
{ text: this.lt("WidgetRoles"), value: "roles" },
{ text: this.lt("WidgetStartDate"), value: "startDate" },
{ text: this.lt("WidgetEndDate"), value: "endDate" }

View File

@@ -6,10 +6,6 @@ Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOiIxNTQ0NTU5NzAwIiwiZXhwIjoi
## IMMEDIATE ITEMS
WIDGET LIST
- ORDER BY???
- Create test for it and ensure it's working and coded fully
User and any other getmany LISTS - replicate from widget list when above is done

View File

@@ -143,6 +143,26 @@ namespace AyaNova.Biz
return ret;
}
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("user");
f.
AddField("name", "CommonName", AyDataType.Text).
AddField("active", "CommonActive", AyDataType.Bool).
AddField("tags", "Tags", AyDataType.Tags).
AddField("EmployeeNumber", "UserEmployeeNumber", AyDataType.Text).
AddField("notes", "WidgetNotes", AyDataType.Text);
if (localizeToLocaleId != 0)
f.Localize(localizeToLocaleId);
return f;
}
//get many (paged)
internal async Task<ApiPagedResponse<System.Object>> GetManyAsync(IUrlHelper Url, string routeName, PagingOptions pagingOptions)
{
@@ -150,23 +170,62 @@ namespace AyaNova.Biz
pagingOptions.Offset = pagingOptions.Offset ?? PagingOptions.DefaultOffset;
pagingOptions.Limit = pagingOptions.Limit ?? PagingOptions.DefaultLimit;
var items = await ct.User
.AsNoTracking()
.OrderBy(m => m.Id)
.Skip(pagingOptions.Offset.Value)
.Take(pagingOptions.Limit.Value)
.ToArrayAsync();
// var items = await ct.User
// .AsNoTracking()
// .OrderBy(m => m.Id)
// .Skip(pagingOptions.Offset.Value)
// .Take(pagingOptions.Limit.Value)
// .ToArrayAsync();
// var totalRecordCount = await ct.User.CountAsync();
// var pageLinks = new PaginationLinkBuilder(Url, routeName, null, pagingOptions, totalRecordCount).PagingLinksObject();
//BUILD THE QUERY
//base query
var q = "SELECT *, xmin FROM AUSER ";
//GET THE FILTER / SORT
if (pagingOptions.DataFilterId > 0)
{
var TheFilter = await ct.DataFilter.FirstOrDefaultAsync(x => x.Id == pagingOptions.DataFilterId);
//BUILD WHERE AND APPEND IT
q = q + FilterSqlCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, UserBiz.FilterOptions(), UserId);
//BUILD ORDER BY AND APPEND IT
q = q + FilterSqlOrderByBuilder.DataFilterToSQLOrderBy(TheFilter);
}
else
{
//GET DEFAULT ORDER BY
q = q + FilterSqlOrderByBuilder.DefaultOrderBy();
}
#pragma warning disable EF1000
var items = await ct.User
.AsNoTracking()
.FromSql(q)
.Skip(pagingOptions.Offset.Value)
.Take(pagingOptions.Limit.Value)
.ToArrayAsync();
var totalRecordCount = await ct.User
.AsNoTracking()
.FromSql(q)
.CountAsync();
#pragma warning restore EF1000
var totalRecordCount = await ct.User.CountAsync();
var pageLinks = new PaginationLinkBuilder(Url, routeName, null, pagingOptions, totalRecordCount).PagingLinksObject();
var cleanedItems = new System.Object[] { };
foreach (User item in items)
{
cleanedItems.Append(CleanUserForReturn(item));
}
var pageLinks = new PaginationLinkBuilder(Url, routeName, null, pagingOptions, totalRecordCount).PagingLinksObject();
ApiPagedResponse<System.Object> pr = new ApiPagedResponse<System.Object>(cleanedItems, pageLinks);
return pr;
}
@@ -735,9 +794,9 @@ namespace AyaNova.Biz
//Copy values
User i = new User();
//default owner id is manager account in RAVEN
i.OwnerId=1;
i.OwnerId = 1;
i.Name = j["FirstName"].Value<string>() + " " + j["LastName"].Value<string>();
var Temp = j["UserType"].Value<int>();
@@ -786,11 +845,11 @@ namespace AyaNova.Biz
}
//User options
i.UserOptions=new UserOptions(i.OwnerId);
i.UserOptions = new UserOptions(i.OwnerId);
//TimeZone Offset
//Note: can be null value if not set so need to check for that here specially
var tzo = j["TimeZoneOffset"].Value<decimal?>() ?? 0;
var tzo = j["TimeZoneOffset"].Value<decimal?>() ?? 0;
i.UserOptions.TimeZoneOffset = tzo;

View File

@@ -27,7 +27,7 @@ namespace AyaNova.Biz
AddField("serial", "WidgetSerial", AyDataType.Integer).
AddField("notes", "WidgetNotes", AyDataType.Text).
AddField("dollaramount", "WidgetDollarAmount", AyDataType.Decimal).
AddField("active", "WidgetActive", AyDataType.Bool).
AddField("active", "CommonActive", AyDataType.Bool).
AddField("startdate", "WidgetStartDate", AyDataType.Date).
AddField("count", "WidgetCount", AyDataType.Integer).
AddField("tags", "Tags", AyDataType.Tags).
@@ -168,14 +168,7 @@ namespace AyaNova.Biz
{
pagingOptions.Offset = pagingOptions.Offset ?? PagingOptions.DefaultOffset;
pagingOptions.Limit = pagingOptions.Limit ?? PagingOptions.DefaultLimit;
// var items = await ct.Widget
// .OrderBy(m => m.Id)
// .Skip(pagingOptions.Offset.Value)
// .Take(pagingOptions.Limit.Value)
// .ToArrayAsync();
//BUILD THE QUERY
//base query
var q = "SELECT *, xmin FROM AWIDGET ";
@@ -189,16 +182,7 @@ namespace AyaNova.Biz
q = q + FilterSqlCriteriaBuilder.DataFilterToSQLCriteria(TheFilter, WidgetBiz.FilterOptions(), UserId);
//BUILD ORDER BY AND APPEND IT
q = q + FilterSqlOrderByBuilder.DataFilterToSQLOrderBy(TheFilter);
//TESTING:
// //TODO: remove this from production build
// //LOG THE CRIT AND QUERY
// ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger("WidgetBiz::GetManyAsync");
// log.LogInformation("Filter criteria:");
// log.LogInformation(TheFilter.Filter);
// log.LogInformation("Generated SQL:");
// log.LogInformation(q);
q = q + FilterSqlOrderByBuilder.DataFilterToSQLOrderBy(TheFilter);
}
else
{
@@ -207,10 +191,6 @@ namespace AyaNova.Biz
}
#pragma warning disable EF1000
var items = await ct.Widget

View File

@@ -1436,7 +1436,6 @@
"WidgetSerial":"Seriennummer",
"WidgetDollarAmount":"Betrag",
"WidgetCount":"Anzahl",
"WidgetActive":"Aktiv",
"WidgetRoles":"Rollen",
"WidgetStartDate":"Startdatum",
"WidgetEndDate":"Enddatum",

View File

@@ -1435,7 +1435,6 @@
"WidgetSerial":"Serial #",
"WidgetDollarAmount":"Price",
"WidgetCount":"Count",
"WidgetActive":"Active",
"WidgetRoles":"Roles",
"WidgetStartDate":"Start",
"WidgetEndDate":"End",

View File

@@ -1436,7 +1436,6 @@
"WidgetSerial":"Número de serie",
"WidgetDollarAmount":"Importe",
"WidgetCount":"Recuento",
"WidgetActive":"Activa",
"WidgetRoles":"Funciones",
"WidgetStartDate":"Fecha de comienzo",
"WidgetEndDate":"Fecha de fin",

View File

@@ -1435,7 +1435,6 @@
"WidgetSerial":"Numéro de série",
"WidgetDollarAmount":"Montant",
"WidgetCount":"Nombre",
"WidgetActive":"Actif",
"WidgetRoles":"Rôles",
"WidgetStartDate":"Date de début",
"WidgetEndDate":"Date de fin",