diff --git a/.vscode/launch.json b/.vscode/launch.json index 0e2049e9..8fd97968 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -53,7 +53,7 @@ "AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles", "AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles", "AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles", - "AYANOVA_SERVER_TEST_MODE": "false", + "AYANOVA_SERVER_TEST_MODE": "true", "AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small", "AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7", "AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\" diff --git a/server/AyaNova/Controllers/DataListSavedColumnViewController.cs b/server/AyaNova/Controllers/DataListColumnViewController.cs similarity index 70% rename from server/AyaNova/Controllers/DataListSavedColumnViewController.cs rename to server/AyaNova/Controllers/DataListColumnViewController.cs index 41e0701d..653606c5 100644 --- a/server/AyaNova/Controllers/DataListSavedColumnViewController.cs +++ b/server/AyaNova/Controllers/DataListColumnViewController.cs @@ -19,10 +19,10 @@ namespace AyaNova.Api.Controllers [Route("api/v{version:apiVersion}/data-list-column-view")] [Produces("application/json")] [Authorize] - public class DataListSavedColumnViewController : ControllerBase + public class DataListColumnViewController : ControllerBase { private readonly AyContext ct; - private readonly ILogger log; + private readonly ILogger log; private readonly ApiServerState serverState; @@ -32,7 +32,7 @@ namespace AyaNova.Api.Controllers /// /// /// - public DataListSavedColumnViewController(AyContext dbcontext, ILogger logger, ApiServerState apiServerState) + public DataListColumnViewController(AyContext dbcontext, ILogger logger, ApiServerState apiServerState) { ct = dbcontext; log = logger; @@ -41,16 +41,16 @@ namespace AyaNova.Api.Controllers /// - /// Get DataListSavedColumnView for current user + /// Get DataListColumnView for current user /// /// - /// DataListSavedColumnView + /// DataListColumnView [HttpGet("{userId}/{listKey}")] - public async Task GetDataListSavedColumnView([FromRoute] string listKey) + public async Task GetDataListColumnView([FromRoute] string listKey) { if (!serverState.IsOpen) return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); - DataListSavedColumnViewBiz biz = DataListSavedColumnViewBiz.GetBiz(ct, HttpContext); + DataListColumnViewBiz biz = DataListColumnViewBiz.GetBiz(ct, HttpContext); if (!Authorized.HasReadFullRole(HttpContext.Items, biz.BizType)) return StatusCode(403, new ApiNotAuthorizedResponse()); if (!ModelState.IsValid) @@ -63,22 +63,22 @@ namespace AyaNova.Api.Controllers /// - /// Replace DataListSavedColumnView + /// Replace DataListColumnView /// /// /// From route path /// [HttpPost] - public async Task ReplaceDataListSavedColumnView([FromBody] DataListSavedColumnView newObject, ApiVersion apiVersion) + public async Task ReplaceDataListColumnView([FromBody] DataListColumnView newObject, ApiVersion apiVersion) { if (!serverState.IsOpen) return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); - DataListSavedColumnViewBiz biz = DataListSavedColumnViewBiz.GetBiz(ct, HttpContext); + DataListColumnViewBiz biz = DataListColumnViewBiz.GetBiz(ct, HttpContext); if (!Authorized.HasCreateRole(HttpContext.Items, biz.BizType)) return StatusCode(403, new ApiNotAuthorizedResponse()); if (!ModelState.IsValid) return BadRequest(new ApiErrorResponse(ModelState)); - DataListSavedColumnView o = await biz.CreateAsync(newObject); + DataListColumnView o = await biz.CreateAsync(newObject); if (o == null) return BadRequest(new ApiErrorResponse(biz.Errors)); else @@ -87,18 +87,18 @@ namespace AyaNova.Api.Controllers /// - /// Reset DataListSavedColumnView to factory defaults + /// Reset DataListColumnView to factory defaults /// /// /// NoContent [HttpDelete("{id}")] - public async Task ResetDataListSavedColumnView([FromRoute] string listKey) + public async Task ResetDataListColumnView([FromRoute] string listKey) { if (!serverState.IsOpen) return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); if (!ModelState.IsValid) return BadRequest(new ApiErrorResponse(ModelState)); - DataListSavedColumnViewBiz biz = DataListSavedColumnViewBiz.GetBiz(ct, HttpContext); + DataListColumnViewBiz biz = DataListColumnViewBiz.GetBiz(ct, HttpContext); var o = await biz.DeleteAsync(biz.UserId, listKey); if (o == null) return BadRequest(new ApiErrorResponse(biz.Errors)); diff --git a/server/AyaNova/Controllers/DataListController.cs b/server/AyaNova/Controllers/DataListController.cs index c34448ed..e7ed8038 100644 --- a/server/AyaNova/Controllers/DataListController.cs +++ b/server/AyaNova/Controllers/DataListController.cs @@ -74,7 +74,7 @@ namespace AyaNova.Api.Controllers try { - DataListSavedColumnViewBiz viewbiz = DataListSavedColumnViewBiz.GetBiz(ct, HttpContext); + DataListColumnViewBiz viewbiz = DataListColumnViewBiz.GetBiz(ct, HttpContext); var SavedView = await viewbiz.GetAsync(UserId, tableRequest.DataListKey, true); DataListSavedFilter SavedFilter = null; diff --git a/server/AyaNova/biz/AyaType.cs b/server/AyaNova/biz/AyaType.cs index b41708f4..f46d7d7c 100644 --- a/server/AyaNova/biz/AyaType.cs +++ b/server/AyaNova/biz/AyaType.cs @@ -134,7 +134,7 @@ namespace AyaNova.Biz [CoreBizObject] PartWarehouse = 66, PartInventory = 67, - DataListSavedColumnView = 68 + DataListColumnView = 68 diff --git a/server/AyaNova/biz/DataListSavedColumnViewBiz.cs b/server/AyaNova/biz/DataListColumnViewBiz.cs similarity index 71% rename from server/AyaNova/biz/DataListSavedColumnViewBiz.cs rename to server/AyaNova/biz/DataListColumnViewBiz.cs index ca109210..f50de41a 100644 --- a/server/AyaNova/biz/DataListSavedColumnViewBiz.cs +++ b/server/AyaNova/biz/DataListColumnViewBiz.cs @@ -12,24 +12,24 @@ namespace AyaNova.Biz { - internal class DataListSavedColumnViewBiz : BizObject + internal class DataListColumnViewBiz : BizObject { - internal DataListSavedColumnViewBiz(AyContext dbcontext, long currentUserId, long userTranslationId, AuthorizationRoles UserRoles) + internal DataListColumnViewBiz(AyContext dbcontext, long currentUserId, long userTranslationId, AuthorizationRoles UserRoles) { ct = dbcontext; UserId = currentUserId; UserTranslationId = userTranslationId; CurrentUserRoles = UserRoles; - BizType = AyaType.DataListSavedColumnView; + BizType = AyaType.DataListColumnView; } - internal static DataListSavedColumnViewBiz GetBiz(AyContext ct, Microsoft.AspNetCore.Http.HttpContext httpContext = null) + internal static DataListColumnViewBiz GetBiz(AyContext ct, Microsoft.AspNetCore.Http.HttpContext httpContext = null) { if (httpContext != null) - return new DataListSavedColumnViewBiz(ct, UserIdFromContext.Id(httpContext.Items), UserTranslationIdFromContext.Id(httpContext.Items), UserRolesFromContext.Roles(httpContext.Items)); + return new DataListColumnViewBiz(ct, UserIdFromContext.Id(httpContext.Items), UserTranslationIdFromContext.Id(httpContext.Items), UserRolesFromContext.Roles(httpContext.Items)); else - return new DataListSavedColumnViewBiz(ct, 1, ServerBootConfig.AYANOVA_DEFAULT_TRANSLATION_ID, AuthorizationRoles.BizAdminFull); + return new DataListColumnViewBiz(ct, 1, ServerBootConfig.AYANOVA_DEFAULT_TRANSLATION_ID, AuthorizationRoles.BizAdminFull); } @@ -38,14 +38,14 @@ namespace AyaNova.Biz //EXISTS internal async Task ExistsAsync(long id) { - return await ct.DataListSavedColumnView.AnyAsync(z => z.Id == id); + return await ct.DataListColumnView.AnyAsync(z => z.Id == id); } //////////////////////////////////////////////////////////////////////////////////////////////// //CREATE // - internal async Task CreateAsync(DataListSavedColumnView newObject) + internal async Task CreateAsync(DataListColumnView newObject) { ValidateAsync(newObject); if (HasErrors) @@ -56,11 +56,11 @@ namespace AyaNova.Biz var dbObject = await GetAsync(newObject.UserId, newObject.ListKey, false); if (dbObject != null) { - ct.DataListSavedColumnView.Remove(dbObject); + ct.DataListColumnView.Remove(dbObject); await ct.SaveChangesAsync(); } - await ct.DataListSavedColumnView.AddAsync(newObject); + await ct.DataListColumnView.AddAsync(newObject); await ct.SaveChangesAsync(); return newObject; @@ -74,16 +74,16 @@ namespace AyaNova.Biz //GET // // - internal async Task GetAsync(long userId, string listKey, bool createDefaultIfNecessary) + internal async Task GetAsync(long userId, string listKey, bool createDefaultIfNecessary) { - var ret = await ct.DataListSavedColumnView.AsNoTracking().SingleOrDefaultAsync(z => z.UserId == userId && z.ListKey == listKey); + var ret = await ct.DataListColumnView.AsNoTracking().SingleOrDefaultAsync(z => z.UserId == userId && z.ListKey == listKey); if (ret == null && createDefaultIfNecessary) { if (!DataListFactory.ListKeyIsValid(listKey)) { throw new System.ArgumentOutOfRangeException($"ListKey '{listKey}' is not a valid DataListKey"); } - ret = new DataListSavedColumnView(); + ret = new DataListColumnView(); ret.UserId = UserId; ret.ListKey = listKey; var dataList = DataListFactory.GetAyaDataList(listKey); @@ -99,7 +99,7 @@ namespace AyaNova.Biz //////////////////////////////////////////////////////////////////////////////////////////////// //DELETE (RESET) // - internal async Task DeleteAsync(long userId, string listKey) + internal async Task DeleteAsync(long userId, string listKey) { //this is effectively the RESET route handler //so it can be called any time even if there is no default list and it's a-ok @@ -108,7 +108,7 @@ namespace AyaNova.Biz var dbObject = await GetAsync(userId, listKey, false); if (dbObject != null) { - ct.DataListSavedColumnView.Remove(dbObject); + ct.DataListColumnView.Remove(dbObject); await ct.SaveChangesAsync(); dbObject = await GetAsync(userId, listKey, true); } @@ -121,7 +121,7 @@ namespace AyaNova.Biz // //Can save or update? - private void ValidateAsync(DataListSavedColumnView inObj) + private void ValidateAsync(DataListColumnView inObj) { if (inObj.UserId != UserId) diff --git a/server/AyaNova/biz/UserBiz.cs b/server/AyaNova/biz/UserBiz.cs index 700c73c2..6363d0e2 100644 --- a/server/AyaNova/biz/UserBiz.cs +++ b/server/AyaNova/biz/UserBiz.cs @@ -600,7 +600,7 @@ namespace AyaNova.Biz await ct.Database.ExecuteSqlInterpolatedAsync($"delete from anotifysubscription where userid = {dbObject.Id}"); //personal datalist options await ct.Database.ExecuteSqlInterpolatedAsync($"delete from adatalistsavedfilter where public = {false} and userid = {dbObject.Id}"); - await ct.Database.ExecuteSqlInterpolatedAsync($"delete from adatalistsavedcolumnview where userid = {dbObject.Id}"); + await ct.Database.ExecuteSqlInterpolatedAsync($"delete from adatalistcolumnview where userid = {dbObject.Id}"); //Dashboard view await ct.Database.ExecuteSqlInterpolatedAsync($"delete from adashboardview where userid = {dbObject.Id}"); diff --git a/server/AyaNova/models/AyContext.cs b/server/AyaNova/models/AyContext.cs index 24bfdde3..830ea67c 100644 --- a/server/AyaNova/models/AyContext.cs +++ b/server/AyaNova/models/AyContext.cs @@ -23,7 +23,7 @@ namespace AyaNova.Models public virtual DbSet Translation { get; set; } public virtual DbSet TranslationItem { get; set; } public virtual DbSet DataListSavedFilter { get; set; } - public virtual DbSet DataListSavedColumnView { get; set; } + public virtual DbSet DataListColumnView { get; set; } public virtual DbSet Tag { get; set; } public virtual DbSet FormCustom { get; set; } public virtual DbSet PickListTemplate { get; set; } diff --git a/server/AyaNova/models/DataListSavedColumnView.cs b/server/AyaNova/models/DataListColumnView.cs similarity index 94% rename from server/AyaNova/models/DataListSavedColumnView.cs rename to server/AyaNova/models/DataListColumnView.cs index 4a293479..fdc1fd80 100644 --- a/server/AyaNova/models/DataListSavedColumnView.cs +++ b/server/AyaNova/models/DataListColumnView.cs @@ -5,7 +5,7 @@ namespace AyaNova.Models { //this is a hiearchical object so saving as a JSON fragment still best option - public class DataListSavedColumnView + public class DataListColumnView { public long Id { get; set; } public uint Concurrency { get; set; } diff --git a/server/AyaNova/models/DataListReportProcessingOptions.cs b/server/AyaNova/models/DataListReportProcessingOptions.cs index f80518f0..12a6c9d5 100644 --- a/server/AyaNova/models/DataListReportProcessingOptions.cs +++ b/server/AyaNova/models/DataListReportProcessingOptions.cs @@ -6,7 +6,7 @@ namespace AyaNova.Models public class DataListReportProcessingOptions : DataListSelectedProcessingOptions { - internal DataListReportProcessingOptions(DataListSelectedRequest request, IDataListProcessing dataList, DataListSavedColumnView savedView, DataListSavedFilter savedFilter, long userId, AuthorizationRoles userRoles) : base(request, dataList, savedView, savedFilter, userId, userRoles) + internal DataListReportProcessingOptions(DataListSelectedRequest request, IDataListProcessing dataList, DataListColumnView savedView, DataListSavedFilter savedFilter, long userId, AuthorizationRoles userRoles) : base(request, dataList, savedView, savedFilter, userId, userRoles) { } diff --git a/server/AyaNova/models/DataListSelectedProcessingOptions.cs b/server/AyaNova/models/DataListSelectedProcessingOptions.cs index b2d2a4a8..3f13a78d 100644 --- a/server/AyaNova/models/DataListSelectedProcessingOptions.cs +++ b/server/AyaNova/models/DataListSelectedProcessingOptions.cs @@ -20,7 +20,7 @@ namespace AyaNova.Models internal DataListSelectedProcessingOptions( DataListSelectedRequest request, IDataListProcessing dataList, - DataListSavedColumnView savedView, + DataListColumnView savedView, DataListSavedFilter savedFilter, long userId, AuthorizationRoles userRoles) @@ -51,7 +51,7 @@ namespace AyaNova.Models public static async Task RehydrateIdList(DataListSelectedRequest selectedRequest, AyContext ct, AuthorizationRoles userRoles, Microsoft.Extensions.Logging.ILogger log, long userId, long userTranslationId) { - DataListSavedColumnViewBiz viewbiz = new DataListSavedColumnViewBiz(ct, userId, userTranslationId, userRoles); + DataListColumnViewBiz viewbiz = new DataListColumnViewBiz(ct, userId, userTranslationId, userRoles); var SavedView = await viewbiz.GetAsync(userId, selectedRequest.DataListKey, true); DataListSavedFilter SavedFilter = null; diff --git a/server/AyaNova/models/DataListTableProcessingOptions.cs b/server/AyaNova/models/DataListTableProcessingOptions.cs index 188bce24..ca2a8a3a 100644 --- a/server/AyaNova/models/DataListTableProcessingOptions.cs +++ b/server/AyaNova/models/DataListTableProcessingOptions.cs @@ -19,7 +19,7 @@ namespace AyaNova.Models internal DataListTableProcessingOptions( DataListTableRequest request, IDataListProcessing dataList, - DataListSavedColumnView savedView, + DataListColumnView savedView, DataListSavedFilter savedFilter, long userId, AuthorizationRoles userRoles) diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index 6e88c658..97ad8da8 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -396,7 +396,7 @@ BEGIN when 65 then aytable = 'apartassembly'; when 66 then aytable = 'apartwarehouse'; when 67 then aytable = 'apartinventory'; aynamecolumn='description'; - when 68 then return format('DataListSavedColumnView %L', ayobjectid); + when 68 then return format('DataListColumnView %L', ayobjectid); else RETURN returnstr; end case; @@ -505,7 +505,7 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); ////////////////////////////////////////////////// - //DATALISTSAVEDFILTER / DATALISTSAVEDCOLUMNVIEW + //DATALISTSAVEDFILTER / DATALISTCOLUMNVIEW if (currentSchema < 7) { LogUpdateMessage(log); @@ -513,7 +513,7 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); await ExecQueryAsync("CREATE TABLE adatalistsavedfilter (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, userid BIGINT NOT NULL, name TEXT NOT NULL, public BOOL NOT NULL, " + "defaultfilter BOOL NOT NULL, listkey VARCHAR(255) NOT NULL, filter TEXT)"); - await ExecQueryAsync("CREATE TABLE adatalistsavedcolumnview (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, userid BIGINT NOT NULL, " + await ExecQueryAsync("CREATE TABLE adatalistcolumnview (id BIGINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, userid BIGINT NOT NULL, " + "listkey VARCHAR(255) NOT NULL, columns TEXT, sort TEXT)"); diff --git a/server/AyaNova/util/DbUtil.cs b/server/AyaNova/util/DbUtil.cs index 0daccbe0..64714342 100644 --- a/server/AyaNova/util/DbUtil.cs +++ b/server/AyaNova/util/DbUtil.cs @@ -318,7 +318,7 @@ namespace AyaNova.Util await EraseTableAsync("awidget", conn); await EraseTableAsync("aevent", conn); await EraseTableAsync("adatalistsavedfilter", conn); - await EraseTableAsync("adatalistsavedcolumnview", conn); + await EraseTableAsync("adatalistcolumnview", conn); await EraseTableAsync("apicklisttemplate", conn, true); await EraseTableAsync("aformcustom", conn); await EraseTableAsync("asearchkey", conn);