From e0e5dd1942a0b14800c406703e822376a87f7175 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 5 Sep 2018 19:57:59 +0000 Subject: [PATCH] --- devdocs/todo.txt | 4 +- linecounts/linecount.txt | 179 +++++++++++++++++++++++++++ server/AyaNova/models/UserOptions.cs | 96 ++++++++++++++ server/AyaNova/util/AySchema.cs | 4 + 4 files changed, 280 insertions(+), 3 deletions(-) create mode 100644 server/AyaNova/models/UserOptions.cs diff --git a/devdocs/todo.txt b/devdocs/todo.txt index 609920a0..ed2c5150 100644 --- a/devdocs/todo.txt +++ b/devdocs/todo.txt @@ -28,9 +28,7 @@ Once that is done then can steam ahead on the biz objects but until I have the c IMMEDIATE ITEMS: ================ - - - USER OBJECT - - Tests for user routes + - USER OPTIONS OBJECT - UserOptions object and routes will be used for user configurable settings, some of it initial shell (timezone, email etc), not core User stuff to avoid any rights issues or confusion or bypasses diff --git a/linecounts/linecount.txt b/linecounts/linecount.txt index 7fc082c8..3f2280cf 100644 --- a/linecounts/linecount.txt +++ b/linecounts/linecount.txt @@ -495,3 +495,182 @@ test\raven-integration\Widget\WidgetLists.cs, code is 45, comment is 13, blank i test\raven-integration\Widget\WidgetRights.cs, code is 139, comment is 62, blank is 62. test\raven-integration\Widget\WidgetValidationTests.cs, code is 139, comment is 58, blank is 67. =============================================================================== +=============================================================================== +EXTENSION NAME : linecount +EXTENSION VERSION : 0.1.7 +------------------------------------------------------------------------------- +count time : 2018-09-05 12:16:48 +count workspace : c:\data\code\raven +total files : 167 +total code lines : 10198 +total comment lines : 4417 +total blank lines : 3724 + +dist\docker\linux-x64\ayanovadocker\dockerfile, code is 4, comment is 0, blank is 0. +dist\docker\linux-x64\docker-compose.yml, code is 47, comment is 2, blank is 5. +dist\docker\linux-x64\docker-compose.yml.original.b4.metrics, code is 37, comment is 1, blank is 4. +dist\docker\linux-x64\host\docker-nginx-ayanova-sample-config\letsencrypt\docker-compose.yml, code is 15, comment is 0, blank is 3. +dist\docker\linux-x64\host\docker-nginx-ayanova-sample-config\letsencrypt\letsencrypt-site\index.html, code is 5, comment is 0, blank is 0. +dist\docker\linux-x64\host\docker-nginx-ayanova-sample-config\letsencrypt\nginx.conf, code is 11, comment is 0, blank is 2. +dist\docker\linux-x64\host\docker-nginx-ayanova-sample-config\production\dh-param\dhparam-2048.pem, code is 8, comment is 1, blank is 0. +dist\docker\linux-x64\host\docker-nginx-ayanova-sample-config\production\docker-compose.yml, code is 19, comment is 0, blank is 3. +dist\docker\linux-x64\host\docker-nginx-ayanova-sample-config\production\production-site\index.html, code is 13, comment is 0, blank is 0. +dist\docker\linux-x64\host\docker-nginx-ayanova-sample-config\production\production.conf, code is 120, comment is 6, blank is 13. +dist\docker\linux-x64\restartnginx.sh, code is 3, comment is 3, blank is 0. +makedocs.bat, code is 3, comment is 0, blank is 0. +makedocs.sh, code is 2, comment is 1, blank is 0. +server\AyaNova\appsettings.Development.json, code is 10, comment is 0, blank is 0. +server\AyaNova\appsettings.json, code is 15, comment is 0, blank is 2. +server\AyaNova\AyaNova.csproj, code is 13, comment is 0, blank is 1. +server\AyaNova\biz\AttachableAttribute.cs, code is 8, comment is 7, blank is 1. +server\AyaNova\biz\AuthorizationRoles.cs, code is 27, comment is 26, blank is 6. +server\AyaNova\biz\AyaEvent.cs, code is 17, comment is 8, blank is 7. +server\AyaNova\biz\AyaObjectOwnerId.cs, code is 27, comment is 7, blank is 16. +server\AyaNova\biz\AyaType.cs, code is 22, comment is 126, blank is 9. +server\AyaNova\biz\AyaTypeId.cs, code is 67, comment is 16, blank is 21. +server\AyaNova\biz\BizObject.cs, code is 52, comment is 5, blank is 24. +server\AyaNova\biz\BizObjectFactory.cs, code is 40, comment is 4, blank is 15. +server\AyaNova\biz\BizRoles.cs, code is 92, comment is 56, blank is 35. +server\AyaNova\biz\BizRoleSet.cs, code is 9, comment is 5, blank is 3. +server\AyaNova\biz\EventLogProcessor.cs, code is 64, comment is 34, blank is 32. +server\AyaNova\biz\IBizObject.cs, code is 16, comment is 28, blank is 19. +server\AyaNova\biz\IImportAyaNova7Object.cs, code is 13, comment is 13, blank is 6. +server\AyaNova\biz\IJobObject.cs, code is 8, comment is 9, blank is 5. +server\AyaNova\biz\ImportAyaNova7Biz.cs, code is 135, comment is 70, blank is 60. +server\AyaNova\biz\JobOperationsBiz.cs, code is 70, comment is 8, blank is 33. +server\AyaNova\biz\JobsBiz.cs, code is 202, comment is 106, blank is 76. +server\AyaNova\biz\JobStatus.cs, code is 10, comment is 4, blank is 4. +server\AyaNova\biz\JobType.cs, code is 11, comment is 5, blank is 6. +server\AyaNova\biz\LocaleBiz.cs, code is 311, comment is 83, blank is 98. +server\AyaNova\biz\PrimeData.cs, code is 63, comment is 21, blank is 27. +server\AyaNova\biz\TagBiz.cs, code is 249, comment is 106, blank is 71. +server\AyaNova\biz\TaggableAttribute.cs, code is 8, comment is 7, blank is 1. +server\AyaNova\biz\TagMapBiz.cs, code is 85, comment is 48, blank is 46. +server\AyaNova\biz\TrialBiz.cs, code is 49, comment is 26, blank is 24. +server\AyaNova\biz\UserBiz.cs, code is 361, comment is 314, blank is 115. +server\AyaNova\biz\UserType.cs, code is 13, comment is 56, blank is 4. +server\AyaNova\biz\ValidationError.cs, code is 9, comment is 2, blank is 3. +server\AyaNova\biz\ValidationErrorType.cs, code is 13, comment is 2, blank is 8. +server\AyaNova\biz\WidgetBiz.cs, code is 184, comment is 63, blank is 70. +server\AyaNova\ControllerHelpers\ApiCreatedResponse.cs, code is 11, comment is 2, blank is 8. +server\AyaNova\ControllerHelpers\ApiCustomExceptionFilter.cs, code is 53, comment is 29, blank is 19. +server\AyaNova\ControllerHelpers\ApiDetailError.cs, code is 16, comment is 5, blank is 10. +server\AyaNova\ControllerHelpers\ApiError.cs, code is 21, comment is 5, blank is 12. +server\AyaNova\ControllerHelpers\ApiErrorCode.cs, code is 24, comment is 5, blank is 9. +server\AyaNova\ControllerHelpers\ApiErrorCodeStockMessage.cs, code is 43, comment is 8, blank is 8. +server\AyaNova\ControllerHelpers\ApiErrorResponse.cs, code is 60, comment is 11, blank is 35. +server\AyaNova\ControllerHelpers\ApiNotAuthorizedResponse.cs, code is 20, comment is 4, blank is 11. +server\AyaNova\ControllerHelpers\ApiOkResponse.cs, code is 11, comment is 2, blank is 8. +server\AyaNova\ControllerHelpers\ApiOkWithPagingResponse.cs, code is 14, comment is 7, blank is 11. +server\AyaNova\ControllerHelpers\ApiPagedResponse.cs, code is 15, comment is 2, blank is 9. +server\AyaNova\ControllerHelpers\ApiServerState.cs, code is 115, comment is 39, blank is 38. +server\AyaNova\ControllerHelpers\ApiUploadProcessor.cs, code is 124, comment is 45, blank is 42. +server\AyaNova\ControllerHelpers\Authorized.cs, code is 55, comment is 35, blank is 32. +server\AyaNova\ControllerHelpers\DisableFormValueModelBindingAttribute.cs, code is 31, comment is 14, blank is 5. +server\AyaNova\ControllerHelpers\MultipartRequestHelper.cs, code is 42, comment is 28, blank is 7. +server\AyaNova\ControllerHelpers\PaginationLinkBuilder.cs, code is 63, comment is 7, blank is 20. +server\AyaNova\ControllerHelpers\PagingOptions.cs, code is 17, comment is 0, blank is 6. +server\AyaNova\ControllerHelpers\UserIdFromContext.cs, code is 15, comment is 1, blank is 6. +server\AyaNova\ControllerHelpers\UserNameFromContext.cs, code is 15, comment is 1, blank is 5. +server\AyaNova\ControllerHelpers\UserRolesFromContext.cs, code is 13, comment is 1, blank is 5. +server\AyaNova\Controllers\ApiRootController.cs, code is 29, comment is 11, blank is 11. +server\AyaNova\Controllers\AttachmentController.cs, code is 253, comment is 139, blank is 77. +server\AyaNova\Controllers\AuthController.cs, code is 101, comment is 47, blank is 25. +server\AyaNova\Controllers\AyaTypeController.cs, code is 48, comment is 15, blank is 20. +server\AyaNova\Controllers\BackupController.cs, code is 38, comment is 127, blank is 40. +server\AyaNova\Controllers\EventLogController.cs, code is 90, comment is 32, blank is 31. +server\AyaNova\Controllers\ImportAyaNova7Controller.cs, code is 166, comment is 73, blank is 48. +server\AyaNova\Controllers\JobOperationsController.cs, code is 68, comment is 35, blank is 33. +server\AyaNova\Controllers\LicenseController.cs, code is 118, comment is 48, blank is 40. +server\AyaNova\Controllers\LocaleController.cs, code is 221, comment is 98, blank is 81. +server\AyaNova\Controllers\LogFilesController.cs, code is 78, comment is 35, blank is 35. +server\AyaNova\Controllers\MetricsController.cs, code is 83, comment is 34, blank is 24. +server\AyaNova\Controllers\ServerStateController.cs, code is 65, comment is 42, blank is 22. +server\AyaNova\Controllers\TagController.cs, code is 221, comment is 86, blank is 75. +server\AyaNova\Controllers\TagMapController.cs, code is 147, comment is 54, blank is 65. +server\AyaNova\Controllers\TrialController.cs, code is 71, comment is 26, blank is 21. +server\AyaNova\Controllers\UserController.cs, code is 239, comment is 106, blank is 85. +server\AyaNova\Controllers\WidgetController.cs, code is 282, comment is 122, blank is 98. +server\AyaNova\generator\BackgroundService.cs, code is 43, comment is 13, blank is 16. +server\AyaNova\generator\CoreJobMetricsReport.cs, code is 23, comment is 15, blank is 19. +server\AyaNova\generator\CoreJobMetricsSnapshot.cs, code is 70, comment is 26, blank is 40. +server\AyaNova\generator\CoreJobSweeper.cs, code is 74, comment is 30, blank is 28. +server\AyaNova\generator\Generate.cs, code is 65, comment is 27, blank is 32. +server\AyaNova\logs\log-ayanova.txt, code is 158, comment is 0, blank is 0. +server\AyaNova\models\AyContext.cs, code is 60, comment is 11, blank is 22. +server\AyaNova\models\dto\ImportV7MapItem.cs, code is 15, comment is 3, blank is 3. +server\AyaNova\models\dto\JobOperationsFetchInfo.cs, code is 13, comment is 23, blank is 4. +server\AyaNova\models\dto\JobOperationsLogInfoItem.cs, code is 10, comment is 11, blank is 5. +server\AyaNova\models\dto\NameIdActiveItem.cs, code is 9, comment is 0, blank is 3. +server\AyaNova\models\dto\NameIdItem.cs, code is 8, comment is 0, blank is 2. +server\AyaNova\models\dto\NameItem.cs, code is 7, comment is 3, blank is 2. +server\AyaNova\models\dto\NewTextIdConcurrencyTokenItem.cs, code is 9, comment is 0, blank is 2. +server\AyaNova\models\dto\TagMapInfo.cs, code is 10, comment is 0, blank is 4. +server\AyaNova\models\dto\TypeAndIdInfo.cs, code is 9, comment is 0, blank is 4. +server\AyaNova\models\dto\UploadedFileInfo.cs, code is 9, comment is 3, blank is 2. +server\AyaNova\models\Event.cs, code is 54, comment is 6, blank is 9. +server\AyaNova\models\FileAttachment.cs, code is 24, comment is 3, blank is 4. +server\AyaNova\models\License.cs, code is 14, comment is 0, blank is 6. +server\AyaNova\models\Locale.cs, code is 26, comment is 9, blank is 11. +server\AyaNova\models\LocaleItem.cs, code is 20, comment is 1, blank is 7. +server\AyaNova\models\OpsJob.cs, code is 42, comment is 9, blank is 11. +server\AyaNova\models\OpsJobLog.cs, code is 23, comment is 3, blank is 9. +server\AyaNova\models\Tag.cs, code is 16, comment is 1, blank is 5. +server\AyaNova\models\TagMap.cs, code is 20, comment is 0, blank is 5. +server\AyaNova\models\User.cs, code is 37, comment is 77, blank is 3. +server\AyaNova\models\Widget.cs, code is 20, comment is 1, blank is 7. +server\AyaNova\Program.cs, code is 170, comment is 35, blank is 47. +server\AyaNova\Startup.cs, code is 261, comment is 75, blank is 121. +server\AyaNova\SwaggerDefaultValues.cs, code is 30, comment is 12, blank is 5. +server\AyaNova\util\ApplicationLogging.cs, code is 10, comment is 4, blank is 3. +server\AyaNova\util\AyaNovaVersion.cs, code is 20, comment is 5, blank is 6. +server\AyaNova\util\AySchema.cs, code is 164, comment is 55, blank is 80. +server\AyaNova\util\CopyObject.cs, code is 46, comment is 14, blank is 10. +server\AyaNova\util\DateUtil.cs, code is 29, comment is 30, blank is 12. +server\AyaNova\util\DbUtil.cs, code is 307, comment is 77, blank is 100. +server\AyaNova\util\EnumAttributeExtension.cs, code is 23, comment is 11, blank is 2. +server\AyaNova\util\ExceptionUtil.cs, code is 18, comment is 8, blank is 8. +server\AyaNova\util\FileHash.cs, code is 18, comment is 2, blank is 7. +server\AyaNova\util\FileUtil.cs, code is 254, comment is 140, blank is 78. +server\AyaNova\util\Hasher.cs, code is 26, comment is 16, blank is 13. +server\AyaNova\util\IsLocalExtension.cs, code is 21, comment is 4, blank is 6. +server\AyaNova\util\License.cs, code is 405, comment is 121, blank is 115. +server\AyaNova\util\MetricsRegistry.cs, code is 60, comment is 81, blank is 26. +server\AyaNova\util\RetryHelper.cs, code is 29, comment is 14, blank is 11. +server\AyaNova\util\Seeder.cs, code is 174, comment is 81, blank is 76. +server\AyaNova\util\ServerBootConfig.cs, code is 115, comment is 35, blank is 44. +server\AyaNova\util\ServiceProviderProvider.cs, code is 35, comment is 12, blank is 11. +server\AyaNova\util\StringUtil.cs, code is 42, comment is 37, blank is 20. +server\AyaNova\wwwroot\api\sw.css, code is 6, comment is 0, blank is 0. +server\AyaNova\wwwroot\index.htm, code is 48, comment is 3, blank is 10. +startinflux.bat, code is 3, comment is 0, blank is 0. +startsql.bat, code is 1, comment is 0, blank is 0. +startsql.sh, code is 1, comment is 1, blank is 0. +test\raven-integration\ApiResponse.cs, code is 10, comment is 2, blank is 3. +test\raven-integration\ApiTextResponse.cs, code is 10, comment is 2, blank is 3. +test\raven-integration\Attachments\AttachmentTest.cs, code is 90, comment is 45, blank is 50. +test\raven-integration\Authentication\Auth.cs, code is 19, comment is 13, blank is 6. +test\raven-integration\AyaType\AyaType.cs, code is 22, comment is 8, blank is 8. +test\raven-integration\EventLog\EventLog.cs, code is 71, comment is 31, blank is 27. +test\raven-integration\ImportV7\ImportV7.cs, code is 32, comment is 11, blank is 16. +test\raven-integration\JobOperations\JobOperations.cs, code is 30, comment is 16, blank is 15. +test\raven-integration\Locale\Locale.cs, code is 88, comment is 47, blank is 33. +test\raven-integration\LogFiles\LogFiles.cs, code is 19, comment is 7, blank is 8. +test\raven-integration\Metrics\Metrics.cs, code is 27, comment is 9, blank is 17. +test\raven-integration\Privacy\Privacy.cs, code is 16, comment is 6, blank is 8. +test\raven-integration\raven-integration.csproj, code is 14, comment is 0, blank is 3. +test\raven-integration\ServerState\ServerStateTest.cs, code is 13, comment is 37, blank is 31. +test\raven-integration\Tags\TagCrud.cs, code is 46, comment is 31, blank is 31. +test\raven-integration\Tags\TagLists.cs, code is 52, comment is 10, blank is 22. +test\raven-integration\Tags\TagMapOps.cs, code is 140, comment is 64, blank is 72. +test\raven-integration\testdata\ayanova.data.dump.xxx.zip, it is a binary file. +test\raven-integration\testdata\test.png, it is a binary file. +test\raven-integration\testdata\test.zip, it is a binary file. +test\raven-integration\User\UserCrud.cs, code is 174, comment is 73, blank is 63. +test\raven-integration\User\UserInactive.cs, code is 18, comment is 6, blank is 9. +test\raven-integration\util.cs, code is 14, comment is 1, blank is 3. +test\raven-integration\Widget\WidgetCrud.cs, code is 110, comment is 57, blank is 58. +test\raven-integration\Widget\WidgetLists.cs, code is 45, comment is 13, blank is 18. +test\raven-integration\Widget\WidgetRights.cs, code is 139, comment is 62, blank is 62. +test\raven-integration\Widget\WidgetValidationTests.cs, code is 139, comment is 58, blank is 67. +=============================================================================== diff --git a/server/AyaNova/models/UserOptions.cs b/server/AyaNova/models/UserOptions.cs new file mode 100644 index 00000000..8f388ab2 --- /dev/null +++ b/server/AyaNova/models/UserOptions.cs @@ -0,0 +1,96 @@ +using System; +using System.Collections.Generic; +using AyaNova.Biz; +using System.ComponentModel.DataAnnotations; +namespace AyaNova.Models +{ + + public partial class UserOptions + { + public long Id { get; set; } + public uint ConcurrencyToken { get; set; } + [Required] + public long OwnerId { get; set; } + //------------- + public string EmailAddress { get; set; } + public decimal? TimeZoneOffset { get; set; } + + } +} +/* +v7 export record sample +{ + "DefaultLanguage": "Custom English", + "DefaultServiceTemplateID": "ca83a7b8-4e5f-4a7b-a02b-9cf78d5f983f", + "UserType": 2, + "Active": true, + "ClientID": "00000000-0000-0000-0000-000000000000", + "HeadOfficeID": "00000000-0000-0000-0000-000000000000", + "MemberOfGroup": "0f8a80ff-4b03-4114-ae51-2d13b812dd65", + "Created": "03/21/2005 07:19 AM", + "Modified": "09/15/2015 12:22 PM", + "Creator": "2ecc77fc-69e2-4a7e-b88d-bd0ecaf36aed", + "Modifier": "1d859264-3f32-462a-9b0c-a67dddfdf4d3", + "ID": "1d859264-3f32-462a-9b0c-a67dddfdf4d3", + "FirstName": "Hank", + "LastName": "Rearden", + "Initials": "HR", + "EmployeeNumber": "EMP1236", + "PageAddress": "", + "PageMaxText": 24, + "Phone1": "", + "Phone2": "", + "EmailAddress": "", + "UserCertifications": [ + { + "Created": "12/22/2005 02:07 PM", + "Creator": "2ecc77fc-69e2-4a7e-b88d-bd0ecaf36aed", + "Modified": "12/22/2005 02:08 PM", + "Modifier": "2ecc77fc-69e2-4a7e-b88d-bd0ecaf36aed", + "ID": "4492360c-43e4-4209-9f33-30691b0808ed", + "UserCertificationID": "b2f26359-7c42-4218-923a-e949f3ef1f85", + "UserID": "1d859264-3f32-462a-9b0c-a67dddfdf4d3", + "ValidStartDate": "2005-10-11T00:00:00-07:00", + "ValidStopDate": "2006-10-11T00:00:00-07:00" + } + ], + "UserSkills": [ + { + "Created": "12/22/2005 02:06 PM", + "Creator": "2ecc77fc-69e2-4a7e-b88d-bd0ecaf36aed", + "Modified": "12/22/2005 02:08 PM", + "Modifier": "2ecc77fc-69e2-4a7e-b88d-bd0ecaf36aed", + "ID": "1dc5ce96-f411-4885-856e-5bdb3ad79728", + "UserSkillID": "2e6f8b65-594c-4f6c-9cd6-e14a562daba8", + "UserID": "1d859264-3f32-462a-9b0c-a67dddfdf4d3" + }, + { + "Created": "12/22/2005 02:06 PM", + "Creator": "2ecc77fc-69e2-4a7e-b88d-bd0ecaf36aed", + "Modified": "12/22/2005 02:08 PM", + "Modifier": "2ecc77fc-69e2-4a7e-b88d-bd0ecaf36aed", + "ID": "88e476d3-7526-45f5-a0dd-706c8053a63f", + "UserSkillID": "47a4ee94-b0e9-41b5-afe5-4b4f2c981877", + "UserID": "1d859264-3f32-462a-9b0c-a67dddfdf4d3" + } + ], + "Notes": "", + "VendorID": "06e502c2-69ba-4e88-8efb-5b53c1687740", + "RegionID": "f856423a-d468-4344-b7b8-121e466738c6", + "DispatchZoneID": "00000000-0000-0000-0000-000000000000", + "SubContractor": false, + "DefaultWarehouseID": "d45eab37-b6e6-4ad2-9163-66d7ba83a98c", + "Custom1": "", + "Custom2": "", + "Custom3": "", + "Custom4": "", + "Custom5": "", + "Custom6": "", + "Custom7": "", + "Custom8": "", + "Custom9": "", + "Custom0": "", + "ScheduleBackColor": -2097216, + "TimeZoneOffset": null +} + */ diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index 5e50272a..40f3bf7a 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -143,6 +143,10 @@ namespace AyaNova.Util "login text not null, password text not null, salt text not null, roles integer not null, localeid bigint not null REFERENCES alocale (id), " + "dlkey text, dlkeyexpire timestamp, usertype integer not null, employeenumber varchar(255), notes text, clientid bigint, headofficeid bigint, subvendorid bigint)"); + //Add user options table + exec("CREATE TABLE auseroptions (id BIGSERIAL PRIMARY KEY, ownerid bigint not null)"); + + //Prime the db with the default MANAGER account AyaNova.Biz.PrimeData.PrimeManagerAccount(ct);