From d1763bbba53303c9954b4bd5c9293e762340ba33 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Tue, 17 Mar 2020 15:53:39 +0000 Subject: [PATCH] --- .../AyaNova/Controllers/PickListController.cs | 32 ++++++++++++++++- server/AyaNova/biz/PickListBiz.cs | 35 ++++++------------- 2 files changed, 42 insertions(+), 25 deletions(-) diff --git a/server/AyaNova/Controllers/PickListController.cs b/server/AyaNova/Controllers/PickListController.cs index 6600d763..2f0b4ce7 100644 --- a/server/AyaNova/Controllers/PickListController.cs +++ b/server/AyaNova/Controllers/PickListController.cs @@ -89,7 +89,7 @@ namespace AyaNova.Api.Controllers var o = await biz.GetPickListAsync(PickList, query, inactive); - + if (o == null) return BadRequest(new ApiErrorResponse(biz.Errors)); else @@ -97,6 +97,36 @@ namespace AyaNova.Api.Controllers } + + /// + /// Get PickListTemplate + /// + /// + /// The current effective template, either a customized one or the default + [HttpGet("Template/{ayatype}")] + public async Task GetDataListView([FromRoute] AyaType ayaType) + { + if (serverState.IsClosed) + return StatusCode(503, new ApiErrorResponse(ApiErrorCode.API_CLOSED, null, serverState.Reason)); + + //Instantiate the business object handler + PickListBiz biz = PickListBiz.GetBiz(ct, HttpContext); + + if (!Authorized.HasReadFullRole(HttpContext.Items, biz.BizType)) + return StatusCode(403, new ApiNotAuthorizedResponse()); + + if (!ModelState.IsValid) + return BadRequest(new ApiErrorResponse(ModelState)); + + var o = await biz.GetAsync(ayaType); + if (o == null) + return NotFound(new ApiErrorResponse(ApiErrorCode.NOT_FOUND)); + + return Ok(ApiOkResponse.Response(o, !Authorized.HasModifyRole(HttpContext.Items, biz.BizType))); + } + + + /// /// List of all PickList templates /// diff --git a/server/AyaNova/biz/PickListBiz.cs b/server/AyaNova/biz/PickListBiz.cs index 4996c108..3cfda9d7 100644 --- a/server/AyaNova/biz/PickListBiz.cs +++ b/server/AyaNova/biz/PickListBiz.cs @@ -179,36 +179,23 @@ namespace AyaNova.Biz //////////////////////////////////////////////////////////////////////////////////////////////// - //DELETE + //DELETE (return to default template) // internal async Task DeleteAsync(AyaType ayaType) { - //REMOVE ANY RECORD WITH SAME AYATYPE ID - throw new System.NotImplementedException(); + long lTypeId = (long)ayaType; - //Determine if the object can be deleted, do the deletion tentatively - //Probably also in here deal with tags and associated search text etc + var o = await ct.PickListTemplate.FirstOrDefaultAsync(m => m.Id == lTypeId); + if (o != null) + { + ct.PickListTemplate.Remove(o); + await ct.SaveChangesAsync(); + //Event log process delete + await EventLogProcessor.DeleteObjectLogAsync(UserId, BizType, lTypeId, ayaType.ToString(), ct); + } - //FUTURE POSSIBLE NEED - //ValidateCanDelete(dbObj); - - // if (HasErrors) - // return false; - // ct.DataListView.Remove(dbObj); - // await ct.SaveChangesAsync(); - - // //Delete sibling objects - - // //Event log process delete - // await EventLogProcessor.DeleteObjectLogAsync(UserId, BizType, dbObj.Id, dbObj.Name, ct); - - - // //Delete search index - // //Search.ProcessDeletedObjectKeywords(dbObj.Id, BizType); - - - // return true; + return true; } ////////////////////////////////////////////////////////////////////////////////////////////////