This commit is contained in:
2021-03-24 00:05:05 +00:00
parent 935bf5de1a
commit a6dd5fc090
3 changed files with 45 additions and 45 deletions

View File

@@ -29,7 +29,7 @@ todo: PLANNING WORKORDER considerations:
if any part fails it all fails if any part fails it all fails
requires second copy of wo for diffing requires second copy of wo for diffing
UPDATE (PATCH): Send only changes in whole graph from client with an OP (for "operation") flag at each level indicating to change that part or not, a flag? UPDATE (PATCH): Send only changes in whole graph from client with an OP (for "operation") flag at each level indicating to change that part or not, a flag?
WO (OP flag=no change, no concurrency token, basically empty but for the fields that hold the descendents that are changed) WO (OP flag=no change, no concurrency token, basically empty but for the fields that hold the descendants that are changed)
woitem 0 (OP flag="Delete" and concurrency token, no other data with it, just the id and flag and ctoken) woitem 0 (OP flag="Delete" and concurrency token, no other data with it, just the id and flag and ctoken)
woitem 1 (OP flag ="update", all fields as in a "put" operation, nothing left out, assumed all are changed) woitem 1 (OP flag ="update", all fields as in a "put" operation, nothing left out, assumed all are changed)
woitem2 (OP flag="no OP", just a placeholder for children with changes) woitem2 (OP flag="no OP", just a placeholder for children with changes)
@@ -131,7 +131,7 @@ public class BuildingController : Controller {
ROUTES ROUTES
In light of dependencies and concurrency it is ideal if the server can handle updates to any portion of the graph independently In light of dependencies and concurrency it is ideal if the server can handle updates to any portion of the graph independently
But, do we really want CRUD routes for every descendent of the workorder graph? (maybe, just not sure) But, do we really want CRUD routes for every descendant of the workorder graph? (maybe, just not sure)

View File

@@ -108,7 +108,7 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Get the top level ancestor of provided type and id /// Get the top level ancestor of provided type and id
/// (e.g. find the WorkOrder principle for a WorkOrderItemPart object descendent) /// (e.g. find the WorkOrder principle for a WorkOrderItemPart object descendant)
/// </summary> /// </summary>
/// <param name="ayaType"></param> /// <param name="ayaType"></param>
/// <param name="id"></param> /// <param name="id"></param>

View File

@@ -52,7 +52,7 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Create WorkOrder /// Create WorkOrder
/// </summary> /// </summary>
/// <param name="newObject">WorkOrder - top level only, no descendents</param> /// <param name="newObject">WorkOrder - top level only, no descendants</param>
/// <param name="apiVersion">From route path</param> /// <param name="apiVersion">From route path</param>
/// <returns>WorkOrder</returns> /// <returns>WorkOrder</returns>
[HttpPost] [HttpPost]
@@ -121,9 +121,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Put (update) WorkOrder /// Put (update) WorkOrder
/// (Descendent objects must be updated via their individual routes seperately) /// (descendant objects must be updated via their individual routes seperately)
/// </summary> /// </summary>
/// <param name="updatedObject">WorkOrder - top level only, no descendents</param> /// <param name="updatedObject">WorkOrder - top level only, no descendants</param>
/// <returns>New concurrency token</returns> /// <returns>New concurrency token</returns>
[HttpPut] [HttpPut]
public async Task<IActionResult> PutWorkOrder([FromBody] dtWorkOrder updatedObject) public async Task<IActionResult> PutWorkOrder([FromBody] dtWorkOrder updatedObject)
@@ -206,7 +206,7 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Create WorkOrderItem /// Create WorkOrderItem
/// </summary> /// </summary>
/// <param name="newObject">WorkOrderItem - no descendents</param> /// <param name="newObject">WorkOrderItem - no descendants</param>
/// <param name="apiVersion"></param> /// <param name="apiVersion"></param>
/// <returns>WorkOrderItem object</returns> /// <returns>WorkOrderItem object</returns>
[HttpPost("items")] [HttpPost("items")]
@@ -252,9 +252,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Put (update) WorkOrderItem /// Put (update) WorkOrderItem
/// (Descendent objects must be updated via their individual routes seperately) /// (descendant objects must be updated via their individual routes seperately)
/// </summary> /// </summary>
/// <param name="updatedObject">WorkOrderItem - top level only, no descendents</param> /// <param name="updatedObject">WorkOrderItem - top level only, no descendants</param>
/// <returns>New concurrency token</returns> /// <returns>New concurrency token</returns>
[HttpPut("items/")] [HttpPut("items/")]
public async Task<IActionResult> PutWorkOrderItem([FromBody] dtWorkOrderItem updatedObject) public async Task<IActionResult> PutWorkOrderItem([FromBody] dtWorkOrderItem updatedObject)
@@ -315,9 +315,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Create WorkOrderItemExpense /// Create WorkOrderItemExpense
/// </summary> /// </summary>
/// <param name="newObject">WorkOrderItemExpense level only no descendents</param> /// <param name="newObject">WorkOrderItemExpense level only no descendants</param>
/// <param name="apiVersion"></param> /// <param name="apiVersion"></param>
/// <returns>WorkOrderItemExpense object (no descendents)</returns> /// <returns>WorkOrderItemExpense object (no descendants)</returns>
[HttpPost("items/expenses")] [HttpPost("items/expenses")]
public async Task<IActionResult> PostWorkOrderItemExpense([FromBody] WorkOrderItemExpense newObject, ApiVersion apiVersion) public async Task<IActionResult> PostWorkOrderItemExpense([FromBody] WorkOrderItemExpense newObject, ApiVersion apiVersion)
{ {
@@ -359,9 +359,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Put (update) WorkOrderItemExpense /// Put (update) WorkOrderItemExpense
/// (Descendent objects must be updated via their individual routes seperately) /// (descendant objects must be updated via their individual routes seperately)
/// </summary> /// </summary>
/// <param name="updatedObject">WorkOrderItemExpense - top level only, no descendents</param> /// <param name="updatedObject">WorkOrderItemExpense - top level only, no descendants</param>
/// <returns>New concurrency token</returns> /// <returns>New concurrency token</returns>
[HttpPut("items/expenses")] [HttpPut("items/expenses")]
public async Task<IActionResult> PutWorkOrderItemExpense([FromBody] WorkOrderItemExpense updatedObject) public async Task<IActionResult> PutWorkOrderItemExpense([FromBody] WorkOrderItemExpense updatedObject)
@@ -422,9 +422,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Create WorkOrderItemLabor /// Create WorkOrderItemLabor
/// </summary> /// </summary>
/// <param name="newObject">WorkOrderItemLabor level only no descendents</param> /// <param name="newObject">WorkOrderItemLabor level only no descendants</param>
/// <param name="apiVersion"></param> /// <param name="apiVersion"></param>
/// <returns>WorkOrderItemLabor object (no descendents)</returns> /// <returns>WorkOrderItemLabor object (no descendants)</returns>
[HttpPost("items/labors")] [HttpPost("items/labors")]
public async Task<IActionResult> PostWorkOrderItemLabor([FromBody] WorkOrderItemLabor newObject, ApiVersion apiVersion) public async Task<IActionResult> PostWorkOrderItemLabor([FromBody] WorkOrderItemLabor newObject, ApiVersion apiVersion)
{ {
@@ -467,9 +467,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Put (update) WorkOrderItemLabor /// Put (update) WorkOrderItemLabor
/// (Descendent objects must be updated via their individual routes seperately) /// (descendant objects must be updated via their individual routes seperately)
/// </summary> /// </summary>
/// <param name="updatedObject">WorkOrderItemLabor - top level only, no descendents</param> /// <param name="updatedObject">WorkOrderItemLabor - top level only, no descendants</param>
/// <returns>New concurrency token</returns> /// <returns>New concurrency token</returns>
[HttpPut("items/labors")] [HttpPut("items/labors")]
public async Task<IActionResult> PutWorkOrderItemLabor([FromBody] WorkOrderItemLabor updatedObject) public async Task<IActionResult> PutWorkOrderItemLabor([FromBody] WorkOrderItemLabor updatedObject)
@@ -531,9 +531,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Create WorkOrderItemLoan /// Create WorkOrderItemLoan
/// </summary> /// </summary>
/// <param name="newObject">WorkOrderItemLoan level only no descendents</param> /// <param name="newObject">WorkOrderItemLoan level only no descendants</param>
/// <param name="apiVersion"></param> /// <param name="apiVersion"></param>
/// <returns>WorkOrderItemLoan object (no descendents)</returns> /// <returns>WorkOrderItemLoan object (no descendants)</returns>
[HttpPost("items/loans")] [HttpPost("items/loans")]
public async Task<IActionResult> PostWorkOrderItemLoan([FromBody] WorkOrderItemLoan newObject, ApiVersion apiVersion) public async Task<IActionResult> PostWorkOrderItemLoan([FromBody] WorkOrderItemLoan newObject, ApiVersion apiVersion)
{ {
@@ -575,9 +575,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Put (update) WorkOrderItemLoan /// Put (update) WorkOrderItemLoan
/// (Descendent objects must be updated via their individual routes seperately) /// (descendant objects must be updated via their individual routes seperately)
/// </summary> /// </summary>
/// <param name="updatedObject">WorkOrderItemLoan - top level only, no descendents</param> /// <param name="updatedObject">WorkOrderItemLoan - top level only, no descendants</param>
/// <returns>New concurrency token</returns> /// <returns>New concurrency token</returns>
[HttpPut("items/loans")] [HttpPut("items/loans")]
public async Task<IActionResult> PutWorkOrderItemLoan([FromBody] WorkOrderItemLoan updatedObject) public async Task<IActionResult> PutWorkOrderItemLoan([FromBody] WorkOrderItemLoan updatedObject)
@@ -637,9 +637,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Create WorkOrderItemPart /// Create WorkOrderItemPart
/// </summary> /// </summary>
/// <param name="newObject">WorkOrderItemPart level only no descendents</param> /// <param name="newObject">WorkOrderItemPart level only no descendants</param>
/// <param name="apiVersion"></param> /// <param name="apiVersion"></param>
/// <returns>WorkOrderItemPart object (no descendents)</returns> /// <returns>WorkOrderItemPart object (no descendants)</returns>
[HttpPost("items/parts")] [HttpPost("items/parts")]
public async Task<IActionResult> PostWorkOrderItemPart([FromBody] WorkOrderItemPart newObject, ApiVersion apiVersion) public async Task<IActionResult> PostWorkOrderItemPart([FromBody] WorkOrderItemPart newObject, ApiVersion apiVersion)
{ {
@@ -681,9 +681,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Put (update) WorkOrderItemPart /// Put (update) WorkOrderItemPart
/// (Descendent objects must be updated via their individual routes seperately) /// (descendant objects must be updated via their individual routes seperately)
/// </summary> /// </summary>
/// <param name="updatedObject">WorkOrderItemPart - top level only, no descendents</param> /// <param name="updatedObject">WorkOrderItemPart - top level only, no descendants</param>
/// <returns>New concurrency token</returns> /// <returns>New concurrency token</returns>
[HttpPut("items/parts")] [HttpPut("items/parts")]
public async Task<IActionResult> PutWorkOrderItemPart([FromBody] WorkOrderItemPart updatedObject) public async Task<IActionResult> PutWorkOrderItemPart([FromBody] WorkOrderItemPart updatedObject)
@@ -743,9 +743,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Create WorkOrderItemPartRequest /// Create WorkOrderItemPartRequest
/// </summary> /// </summary>
/// <param name="newObject">WorkOrderItemPartRequest level only no descendents</param> /// <param name="newObject">WorkOrderItemPartRequest level only no descendants</param>
/// <param name="apiVersion"></param> /// <param name="apiVersion"></param>
/// <returns>WorkOrderItemPartRequest object (no descendents)</returns> /// <returns>WorkOrderItemPartRequest object (no descendants)</returns>
[HttpPost("items/partrequests")] [HttpPost("items/partrequests")]
public async Task<IActionResult> PostWorkOrderItemPartRequest([FromBody] WorkOrderItemPartRequest newObject, ApiVersion apiVersion) public async Task<IActionResult> PostWorkOrderItemPartRequest([FromBody] WorkOrderItemPartRequest newObject, ApiVersion apiVersion)
{ {
@@ -787,9 +787,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Put (update) WorkOrderItemPartRequest /// Put (update) WorkOrderItemPartRequest
/// (Descendent objects must be updated via their individual routes seperately) /// (descendant objects must be updated via their individual routes seperately)
/// </summary> /// </summary>
/// <param name="updatedObject">WorkOrderItemPartRequest - top level only, no descendents</param> /// <param name="updatedObject">WorkOrderItemPartRequest - top level only, no descendants</param>
/// <returns>New concurrency token</returns> /// <returns>New concurrency token</returns>
[HttpPut("items/partrequests")] [HttpPut("items/partrequests")]
public async Task<IActionResult> PutWorkOrderItemPartRequest([FromBody] WorkOrderItemPartRequest updatedObject) public async Task<IActionResult> PutWorkOrderItemPartRequest([FromBody] WorkOrderItemPartRequest updatedObject)
@@ -849,9 +849,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Create WorkOrderItemScheduledUser /// Create WorkOrderItemScheduledUser
/// </summary> /// </summary>
/// <param name="newObject">WorkOrderItemScheduledUser level only no descendents</param> /// <param name="newObject">WorkOrderItemScheduledUser level only no descendants</param>
/// <param name="apiVersion"></param> /// <param name="apiVersion"></param>
/// <returns>WorkOrderItemScheduledUser object (no descendents)</returns> /// <returns>WorkOrderItemScheduledUser object (no descendants)</returns>
[HttpPost("items/scheduledusers")] [HttpPost("items/scheduledusers")]
public async Task<IActionResult> PostWorkOrderItemScheduledUser([FromBody] WorkOrderItemScheduledUser newObject, ApiVersion apiVersion) public async Task<IActionResult> PostWorkOrderItemScheduledUser([FromBody] WorkOrderItemScheduledUser newObject, ApiVersion apiVersion)
{ {
@@ -893,9 +893,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Put (update) WorkOrderItemScheduledUser /// Put (update) WorkOrderItemScheduledUser
/// (Descendent objects must be updated via their individual routes seperately) /// (descendant objects must be updated via their individual routes seperately)
/// </summary> /// </summary>
/// <param name="updatedObject">WorkOrderItemScheduledUser - top level only, no descendents</param> /// <param name="updatedObject">WorkOrderItemScheduledUser - top level only, no descendants</param>
/// <returns>New concurrency token</returns> /// <returns>New concurrency token</returns>
[HttpPut("items/scheduledusers")] [HttpPut("items/scheduledusers")]
public async Task<IActionResult> PutWorkOrderItemScheduledUser([FromBody] WorkOrderItemScheduledUser updatedObject) public async Task<IActionResult> PutWorkOrderItemScheduledUser([FromBody] WorkOrderItemScheduledUser updatedObject)
@@ -955,9 +955,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Create WorkOrderItemTask /// Create WorkOrderItemTask
/// </summary> /// </summary>
/// <param name="newObject">WorkOrderItemTask level only no descendents</param> /// <param name="newObject">WorkOrderItemTask level only no descendants</param>
/// <param name="apiVersion"></param> /// <param name="apiVersion"></param>
/// <returns>WorkOrderItemTask object (no descendents)</returns> /// <returns>WorkOrderItemTask object (no descendants)</returns>
[HttpPost("items/tasks")] [HttpPost("items/tasks")]
public async Task<IActionResult> PostWorkOrderItemTask([FromBody] WorkOrderItemTask newObject, ApiVersion apiVersion) public async Task<IActionResult> PostWorkOrderItemTask([FromBody] WorkOrderItemTask newObject, ApiVersion apiVersion)
{ {
@@ -999,9 +999,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Put (update) WorkOrderItemTask /// Put (update) WorkOrderItemTask
/// (Descendent objects must be updated via their individual routes seperately) /// (descendant objects must be updated via their individual routes seperately)
/// </summary> /// </summary>
/// <param name="updatedObject">WorkOrderItemTask - top level only, no descendents</param> /// <param name="updatedObject">WorkOrderItemTask - top level only, no descendants</param>
/// <returns>New concurrency token</returns> /// <returns>New concurrency token</returns>
[HttpPut("items/tasks")] [HttpPut("items/tasks")]
public async Task<IActionResult> PutWorkOrderItemTask([FromBody] WorkOrderItemTask updatedObject) public async Task<IActionResult> PutWorkOrderItemTask([FromBody] WorkOrderItemTask updatedObject)
@@ -1061,9 +1061,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Create WorkOrderItemTravel /// Create WorkOrderItemTravel
/// </summary> /// </summary>
/// <param name="newObject">WorkOrderItemTravel level only no descendents</param> /// <param name="newObject">WorkOrderItemTravel level only no descendants</param>
/// <param name="apiVersion"></param> /// <param name="apiVersion"></param>
/// <returns>WorkOrderItemTravel object (no descendents)</returns> /// <returns>WorkOrderItemTravel object (no descendants)</returns>
[HttpPost("items/travels")] [HttpPost("items/travels")]
public async Task<IActionResult> PostWorkOrderItemTravel([FromBody] WorkOrderItemTravel newObject, ApiVersion apiVersion) public async Task<IActionResult> PostWorkOrderItemTravel([FromBody] WorkOrderItemTravel newObject, ApiVersion apiVersion)
{ {
@@ -1105,9 +1105,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Put (update) WorkOrderItemTravel /// Put (update) WorkOrderItemTravel
/// (Descendent objects must be updated via their individual routes seperately) /// (descendant objects must be updated via their individual routes seperately)
/// </summary> /// </summary>
/// <param name="updatedObject">WorkOrderItemTravel - top level only, no descendents</param> /// <param name="updatedObject">WorkOrderItemTravel - top level only, no descendants</param>
/// <returns>New concurrency token</returns> /// <returns>New concurrency token</returns>
[HttpPut("items/travels")] [HttpPut("items/travels")]
public async Task<IActionResult> PutWorkOrderItemTravel([FromBody] WorkOrderItemTravel updatedObject) public async Task<IActionResult> PutWorkOrderItemTravel([FromBody] WorkOrderItemTravel updatedObject)
@@ -1167,9 +1167,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Create WorkOrderItemUnit /// Create WorkOrderItemUnit
/// </summary> /// </summary>
/// <param name="newObject">WorkOrderItemUnit level only no descendents</param> /// <param name="newObject">WorkOrderItemUnit level only no descendants</param>
/// <param name="apiVersion"></param> /// <param name="apiVersion"></param>
/// <returns>WorkOrderItemUnit object (no descendents)</returns> /// <returns>WorkOrderItemUnit object (no descendants)</returns>
[HttpPost("items/units")] [HttpPost("items/units")]
public async Task<IActionResult> PostWorkOrderItemUnit([FromBody] WorkOrderItemUnit newObject, ApiVersion apiVersion) public async Task<IActionResult> PostWorkOrderItemUnit([FromBody] WorkOrderItemUnit newObject, ApiVersion apiVersion)
{ {
@@ -1211,9 +1211,9 @@ namespace AyaNova.Api.Controllers
/// <summary> /// <summary>
/// Put (update) WorkOrderItemUnit /// Put (update) WorkOrderItemUnit
/// (Descendent objects must be updated via their individual routes seperately) /// (descendant objects must be updated via their individual routes seperately)
/// </summary> /// </summary>
/// <param name="updatedObject">WorkOrderItemUnit - top level only, no descendents</param> /// <param name="updatedObject">WorkOrderItemUnit - top level only, no descendants</param>
/// <returns>New concurrency token</returns> /// <returns>New concurrency token</returns>
[HttpPut("items/units")] [HttpPut("items/units")]
public async Task<IActionResult> PutWorkOrderItemUnit([FromBody] WorkOrderItemUnit updatedObject) public async Task<IActionResult> PutWorkOrderItemUnit([FromBody] WorkOrderItemUnit updatedObject)