diff --git a/.vscode/launch.json b/.vscode/launch.json index fcc80a75..b77f3b95 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": "true", + "AYANOVA_SERVER_TEST_MODE": "false", "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/WorkOrderController.cs b/server/AyaNova/Controllers/WorkOrderController.cs index a4a7798a..c6eaacc2 100644 --- a/server/AyaNova/Controllers/WorkOrderController.cs +++ b/server/AyaNova/Controllers/WorkOrderController.cs @@ -7,7 +7,8 @@ using Microsoft.Extensions.Logging; using AyaNova.Models; using AyaNova.Api.ControllerHelpers; using AyaNova.Biz; - +using Microsoft.EntityFrameworkCore; +using System.Linq; namespace AyaNova.Api.Controllers { @@ -181,6 +182,31 @@ namespace AyaNova.Api.Controllers + /// + /// Get WorkOrder id from work order serial number + /// + /// + /// WorkOrder + [HttpGet("id-from-number/{number}")] + public async Task GetWorkOrderIdFromNumber([FromRoute] long number) + { + if (!serverState.IsOpen) + return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); + + if (!Authorized.HasReadFullRole(HttpContext.Items, AyaType.WorkOrder)) + return StatusCode(403, new ApiNotAuthorizedResponse()); + if (!ModelState.IsValid) + return BadRequest(new ApiErrorResponse(ModelState)); + var o = await ct.WorkOrder.AsNoTracking() + .Where(z => z.Serial == number) + .Select(z => z.Id) + .SingleOrDefaultAsync(); + if (o == 0) return NotFound(new ApiErrorResponse(ApiErrorCode.NOT_FOUND)); + return Ok(ApiOkResponse.Response(o)); + } + + + // /// // /// Change existing work order's Contract // /// applies new Contract and returns complete updated work order diff --git a/server/AyaNova/biz/WorkOrderBiz.cs b/server/AyaNova/biz/WorkOrderBiz.cs index 82ed3a65..b7fe5bf4 100644 --- a/server/AyaNova/biz/WorkOrderBiz.cs +++ b/server/AyaNova/biz/WorkOrderBiz.cs @@ -557,6 +557,20 @@ namespace AyaNova.Biz } + + // //////////////////////////////////////////////////////////////////////////////////////////////// + // //GET WORKORDER ID FOR WORK ORDER NUMBER + // // + // internal static async Task GetWorkOrderIdForNumberAsync(long woNumber, AyContext ct) + // { + // return await ct.WorkOrder.AsNoTracking() + // .Where(z => z.Serial == woNumber) + // .Select(z => z.Id) + // .SingleOrDefaultAsync(); + // } + + + //////////////////////////////////////////////////////////////////////////////////////////////// //SEARCH //