This commit is contained in:
2021-04-01 14:18:34 +00:00
parent 5505cfcc87
commit 23cc77d38c
39 changed files with 176 additions and 73 deletions

View File

@@ -124,8 +124,8 @@ namespace AyaNova.Api.Controllers
/// <summary>
/// Put (update) WorkOrder
/// (descendant objects must be updated via their individual routes seperately)
/// Update WorkOrder
///
/// </summary>
/// <param name="updatedObject">WorkOrder - top level only, no descendants</param>
/// <returns>New concurrency token</returns>
@@ -176,8 +176,6 @@ namespace AyaNova.Api.Controllers
//==================
/*
███████╗████████╗ █████╗ ████████╗███████╗███████╗
@@ -239,8 +237,8 @@ namespace AyaNova.Api.Controllers
/// <summary>
/// Put (update) WorkOrderState
/// (descendant objects must be updated via their individual routes seperately)
/// Update WorkOrderState
///
/// </summary>
/// <param name="updatedObject">WorkOrderState - top level only, no descendants</param>
/// <returns>New concurrency token</returns>
@@ -289,11 +287,6 @@ namespace AyaNova.Api.Controllers
#endregion workorderstate
//===============
/*
@@ -354,8 +347,8 @@ namespace AyaNova.Api.Controllers
/// <summary>
/// Put (update) WorkOrderItem
/// (descendant objects must be updated via their individual routes seperately)
/// Update WorkOrderItem
///
/// </summary>
/// <param name="updatedObject">WorkOrderItem - top level only, no descendants</param>
/// <returns>New concurrency token</returns>
@@ -461,8 +454,8 @@ namespace AyaNova.Api.Controllers
}
/// <summary>
/// Put (update) WorkOrderItemExpense
/// (descendant objects must be updated via their individual routes seperately)
/// Update WorkOrderItemExpense
///
/// </summary>
/// <param name="updatedObject">WorkOrderItemExpense - top level only, no descendants</param>
/// <returns>New concurrency token</returns>
@@ -569,8 +562,8 @@ namespace AyaNova.Api.Controllers
/// <summary>
/// Put (update) WorkOrderItemLabor
/// (descendant objects must be updated via their individual routes seperately)
/// Update WorkOrderItemLabor
///
/// </summary>
/// <param name="updatedObject">WorkOrderItemLabor - top level only, no descendants</param>
/// <returns>New concurrency token</returns>
@@ -677,8 +670,8 @@ namespace AyaNova.Api.Controllers
}
/// <summary>
/// Put (update) WorkOrderItemLoan
/// (descendant objects must be updated via their individual routes seperately)
/// Update WorkOrderItemLoan
///
/// </summary>
/// <param name="updatedObject">WorkOrderItemLoan - top level only, no descendants</param>
/// <returns>New concurrency token</returns>
@@ -726,6 +719,116 @@ namespace AyaNova.Api.Controllers
#endregion WorkOrderItemLoan
/*
██████╗ ██╗ ██╗████████╗███████╗██╗██████╗ ███████╗ ███████╗███████╗██████╗ ██╗ ██╗██╗ ██████╗███████╗
██╔═══██╗██║ ██║╚══██╔══╝██╔════╝██║██╔══██╗██╔════╝ ██╔════╝██╔════╝██╔══██╗██║ ██║██║██╔════╝██╔════╝
██║ ██║██║ ██║ ██║ ███████╗██║██║ ██║█████╗ ███████╗█████╗ ██████╔╝██║ ██║██║██║ █████╗
██║ ██║██║ ██║ ██║ ╚════██║██║██║ ██║██╔══╝ ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██║██║ ██╔══╝
╚██████╔╝╚██████╔╝ ██║ ███████║██║██████╔╝███████╗ ███████║███████╗██║ ██║ ╚████╔╝ ██║╚██████╗███████╗
╚═════╝ ╚═════╝ ╚═╝ ╚══════╝╚═╝╚═════╝ ╚══════╝ ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚═╝ ╚═════╝╚══════╝
*/
#region WorkOrderItemOutsideService
/// <summary>
/// Create WorkOrderItemOutsideService
/// </summary>
/// <param name="newObject">WorkOrderItemOutsideService level only no descendants</param>
/// <param name="apiVersion"></param>
/// <returns>WorkOrderItemOutsideService object (no descendants)</returns>
[HttpPost("items/outsideservices")]
public async Task<IActionResult> PostWorkOrderItemOutsideService([FromBody] WorkOrderItemOutsideService newObject, ApiVersion apiVersion)
{
if (!serverState.IsOpen)
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext);
if (!Authorized.HasCreateRole(HttpContext.Items, AyaType.WorkOrderItemOutsideService))
return StatusCode(403, new ApiNotAuthorizedResponse());
if (!ModelState.IsValid)
return BadRequest(new ApiErrorResponse(ModelState));
WorkOrderItemOutsideService o = await biz.OutsideServiceCreateAsync(newObject);
if (o == null)
return BadRequest(new ApiErrorResponse(biz.Errors));
else
return CreatedAtAction(nameof(WorkOrderController.GetWorkOrderItemOutsideService), new { WorkOrderItemOutsideServiceId = o.Id, version = apiVersion.ToString() }, new ApiCreatedResponse(o));
}
/// <summary>
/// Get WorkOrderItemOutsideService object
/// </summary>
/// <param name="WorkOrderItemOutsideServiceId"></param>
/// <returns>A single WorkOrderItemOutsideService</returns>
[HttpGet("items/outsideservices/{WorkOrderItemOutsideServiceId}")]
public async Task<IActionResult> GetWorkOrderItemOutsideService([FromRoute] long WorkOrderItemOutsideServiceId)
{
if (!serverState.IsOpen)
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext);
if (!Authorized.HasReadFullRole(HttpContext.Items, AyaType.WorkOrderItemOutsideService))
return StatusCode(403, new ApiNotAuthorizedResponse());
if (!ModelState.IsValid)
return BadRequest(new ApiErrorResponse(ModelState));
var o = await biz.OutsideServiceGetAsync(WorkOrderItemOutsideServiceId);
if (o == null)
return NotFound(new ApiErrorResponse(ApiErrorCode.NOT_FOUND));
return Ok(ApiOkResponse.Response(o));
}
/// <summary>
/// Update WorkOrderItemOutsideService
///
/// </summary>
/// <param name="updatedObject">WorkOrderItemOutsideService - top level only, no descendants</param>
/// <returns>New concurrency token</returns>
[HttpPut("items/outsideservices")]
public async Task<IActionResult> PutWorkOrderItemOutsideService([FromBody] WorkOrderItemOutsideService updatedObject)
{
if (!serverState.IsOpen)
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
if (!ModelState.IsValid)
return BadRequest(new ApiErrorResponse(ModelState));
WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext);
if (!Authorized.HasModifyRole(HttpContext.Items, AyaType.WorkOrderItemOutsideService))
return StatusCode(403, new ApiNotAuthorizedResponse());
var o = await biz.OutsideServicePutAsync(updatedObject);//In future may need to return entire object, for now just concurrency token
if (o == null)
{
if (biz.Errors.Exists(z => z.Code == ApiErrorCode.CONCURRENCY_CONFLICT))
return StatusCode(409, new ApiErrorResponse(biz.Errors));
else
return BadRequest(new ApiErrorResponse(biz.Errors));
}
return Ok(ApiOkResponse.Response(new { Concurrency = o.Concurrency }));
}
/// <summary>
/// Delete WorkOrderItemOutsideService
/// </summary>
/// <param name="WorkOrderItemOutsideServiceId"></param>
/// <returns>NoContent</returns>
[HttpDelete("items/outsideservices/{WorkOrderItemOutsideServiceId}")]
public async Task<IActionResult> DeleteWorkOrderItemOutsideService([FromRoute] long WorkOrderItemOutsideServiceId)
{
if (!serverState.IsOpen)
return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason));
if (!ModelState.IsValid)
return BadRequest(new ApiErrorResponse(ModelState));
WorkOrderBiz biz = WorkOrderBiz.GetBiz(ct, HttpContext);
if (!Authorized.HasDeleteRole(HttpContext.Items, AyaType.WorkOrderItemOutsideService))
return StatusCode(403, new ApiNotAuthorizedResponse());
if (!await biz.OutsideServiceDeleteAsync(WorkOrderItemOutsideServiceId))
return BadRequest(new ApiErrorResponse(biz.Errors));
return NoContent();
}
#endregion WorkOrderItemOutsideService
/*
██████╗ █████╗ ██████╗ ████████╗███████╗
██╔══██╗██╔══██╗██╔══██╗╚══██╔══╝██╔════╝
@@ -783,8 +886,8 @@ namespace AyaNova.Api.Controllers
}
/// <summary>
/// Put (update) WorkOrderItemPart
/// (descendant objects must be updated via their individual routes seperately)
/// Update WorkOrderItemPart
///
/// </summary>
/// <param name="updatedObject">WorkOrderItemPart - top level only, no descendants</param>
/// <returns>New concurrency token</returns>
@@ -889,8 +992,8 @@ namespace AyaNova.Api.Controllers
}
/// <summary>
/// Put (update) WorkOrderItemPartRequest
/// (descendant objects must be updated via their individual routes seperately)
/// Update WorkOrderItemPartRequest
///
/// </summary>
/// <param name="updatedObject">WorkOrderItemPartRequest - top level only, no descendants</param>
/// <returns>New concurrency token</returns>
@@ -995,8 +1098,8 @@ namespace AyaNova.Api.Controllers
}
/// <summary>
/// Put (update) WorkOrderItemScheduledUser
/// (descendant objects must be updated via their individual routes seperately)
/// Update WorkOrderItemScheduledUser
///
/// </summary>
/// <param name="updatedObject">WorkOrderItemScheduledUser - top level only, no descendants</param>
/// <returns>New concurrency token</returns>
@@ -1101,8 +1204,8 @@ namespace AyaNova.Api.Controllers
}
/// <summary>
/// Put (update) WorkOrderItemTask
/// (descendant objects must be updated via their individual routes seperately)
/// Update WorkOrderItemTask
///
/// </summary>
/// <param name="updatedObject">WorkOrderItemTask - top level only, no descendants</param>
/// <returns>New concurrency token</returns>
@@ -1207,8 +1310,8 @@ namespace AyaNova.Api.Controllers
}
/// <summary>
/// Put (update) WorkOrderItemTravel
/// (descendant objects must be updated via their individual routes seperately)
/// Update WorkOrderItemTravel
///
/// </summary>
/// <param name="updatedObject">WorkOrderItemTravel - top level only, no descendants</param>
/// <returns>New concurrency token</returns>
@@ -1313,8 +1416,8 @@ namespace AyaNova.Api.Controllers
}
/// <summary>
/// Put (update) WorkOrderItemUnit
/// (descendant objects must be updated via their individual routes seperately)
/// Update WorkOrderItemUnit
///
/// </summary>
/// <param name="updatedObject">WorkOrderItemUnit - top level only, no descendants</param>
/// <returns>New concurrency token</returns>