diff --git a/server/AyaNova/Controllers/GlobalBizSettingsController.cs b/server/AyaNova/Controllers/GlobalBizSettingsController.cs index 998e6cf9..016229b5 100644 --- a/server/AyaNova/Controllers/GlobalBizSettingsController.cs +++ b/server/AyaNova/Controllers/GlobalBizSettingsController.cs @@ -67,10 +67,10 @@ namespace AyaNova.Api.Controllers /// /// PUT Global biz settings /// - /// - /// nothing + /// + /// New concurrency token [HttpPut] - public async Task ReplaceGlobalBizSettings([FromBody] GlobalBizSettings global) + public async Task ReplaceGlobalBizSettings([FromBody] GlobalBizSettings updatedObject) { if (serverState.IsClosed) return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); @@ -84,16 +84,10 @@ namespace AyaNova.Api.Controllers if (!Authorized.HasModifyRole(HttpContext.Items, biz.BizType)) return StatusCode(403, new ApiNotAuthorizedResponse()); - try - { - if (!await biz.ReplaceAsync(global)) - return BadRequest(new ApiErrorResponse(biz.Errors)); - } - catch (DbUpdateConcurrencyException) - { - return StatusCode(409, new ApiErrorResponse(ApiErrorCode.CONCURRENCY_CONFLICT)); - } - return NoContent(); + var o = await biz.PutAsync(updatedObject);//In future may need to return entire object, for now just concurrency token + if (o == null) + return StatusCode(409, new ApiErrorResponse(biz.Errors)); + return Ok(ApiOkResponse.Response(new { Concurrency = o.Concurrency })); } /// diff --git a/server/AyaNova/Controllers/GlobalOpsBackupSettingsController.cs b/server/AyaNova/Controllers/GlobalOpsBackupSettingsController.cs index d5a95b71..acc1ea94 100644 --- a/server/AyaNova/Controllers/GlobalOpsBackupSettingsController.cs +++ b/server/AyaNova/Controllers/GlobalOpsBackupSettingsController.cs @@ -67,28 +67,22 @@ namespace AyaNova.Api.Controllers /// /// PUT Global ops backup settings /// - /// - /// nothing + /// + /// New concurrency token [HttpPut] - public async Task ReplaceGlobalOpsBackupSettings([FromBody] GlobalOpsBackupSettings global) + public async Task ReplaceGlobalOpsBackupSettings([FromBody] GlobalOpsBackupSettings updatedObject) { if (serverState.IsClosed) return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); if (!ModelState.IsValid) return BadRequest(new ApiErrorResponse(ModelState)); GlobalOpsBackupSettingsBiz biz = GlobalOpsBackupSettingsBiz.GetBiz(ct, HttpContext); - if (!Authorized.HasModifyRole(HttpContext.Items, biz.BizType)) + if (!Authorized.HasModifyRole(HttpContext.Items, biz.BizType)) return StatusCode(403, new ApiNotAuthorizedResponse()); - try - { - if (!await biz.ReplaceAsync(global)) - return BadRequest(new ApiErrorResponse(biz.Errors)); - } - catch (DbUpdateConcurrencyException) - { - return StatusCode(409, new ApiErrorResponse(ApiErrorCode.CONCURRENCY_CONFLICT)); - } - return NoContent(); + var o = await biz.PutAsync(updatedObject);//In future may need to return entire object, for now just concurrency token + if (o == null) + return StatusCode(409, new ApiErrorResponse(biz.Errors)); + return Ok(ApiOkResponse.Response(new { Concurrency = o.Concurrency })); } // /// diff --git a/server/AyaNova/Controllers/WidgetController.cs b/server/AyaNova/Controllers/WidgetController.cs index 177b4d8b..8a067bab 100644 --- a/server/AyaNova/Controllers/WidgetController.cs +++ b/server/AyaNova/Controllers/WidgetController.cs @@ -133,7 +133,7 @@ namespace AyaNova.Api.Controllers else return BadRequest(new ApiErrorResponse(biz.Errors)); } - return Ok(ApiOkResponse.Response(new { Concurrency = o.Concurrency })); ; + return Ok(ApiOkResponse.Response(new { Concurrency = o.Concurrency })); } /// diff --git a/server/AyaNova/biz/GlobalBizSettingsBiz.cs b/server/AyaNova/biz/GlobalBizSettingsBiz.cs index f6b2f743..ae1b1f09 100644 --- a/server/AyaNova/biz/GlobalBizSettingsBiz.cs +++ b/server/AyaNova/biz/GlobalBizSettingsBiz.cs @@ -59,24 +59,24 @@ namespace AyaNova.Biz // //put - internal async Task ReplaceAsync(GlobalBizSettings inObj) + internal async Task PutAsync(GlobalBizSettings updatedObject) { - var dbObj = await ct.GlobalBizSettings.FirstOrDefaultAsync(m => m.Id == 1); - if (dbObj == null) + var dbObject = await ct.GlobalBizSettings.FirstOrDefaultAsync(m => m.Id == 1); + if (dbObject == null) throw new System.Exception("GlobalBizSettingsBiz::ReplaceAsync -> Global settings object not found in database!!"); - CopyObject.Copy(inObj, dbObj, "Id"); + CopyObject.Copy(updatedObject, dbObject, "Id"); - ct.Entry(dbObj).OriginalValues["Concurrency"] = inObj.Concurrency; + ct.Entry(dbObject).OriginalValues["Concurrency"] = updatedObject.Concurrency; - Validate(dbObj); + Validate(dbObject); if (HasErrors) - return false; + return null; await ct.SaveChangesAsync(); //Log modification and save context await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, 1, BizType, AyaEvent.Modified), ct); //Update the static copy for the server - ServerGlobalBizSettings.Initialize(dbObj); - return true; + ServerGlobalBizSettings.Initialize(dbObject); + return dbObject; } diff --git a/server/AyaNova/biz/GlobalOpsBackupSettingsBiz.cs b/server/AyaNova/biz/GlobalOpsBackupSettingsBiz.cs index c1ebd70d..e495c142 100644 --- a/server/AyaNova/biz/GlobalOpsBackupSettingsBiz.cs +++ b/server/AyaNova/biz/GlobalOpsBackupSettingsBiz.cs @@ -58,11 +58,11 @@ namespace AyaNova.Biz // //put - internal async Task ReplaceAsync(GlobalOpsBackupSettings putObject) + internal async Task PutAsync(GlobalOpsBackupSettings putObject) { var dbObject = await ct.GlobalOpsBackupSettings.FirstOrDefaultAsync(m => m.Id == 1); if (dbObject == null) - throw new System.Exception("GlobalOpsSettingsBiz::ReplaceAsync -> Global settings object not found in database!!"); + throw new System.Exception("GlobalOpsSettingsBiz::PutAsync -> Global settings object not found in database!!"); //If backup time has changed then reset last backup as well as it might block from taking effect if (putObject.BackupTime.Hour != dbObject.BackupTime.Hour && putObject.BackupTime.Minute != dbObject.BackupTime.Minute) @@ -73,12 +73,12 @@ namespace AyaNova.Biz ct.Entry(dbObject).OriginalValues["Concurrency"] = putObject.Concurrency; Validate(dbObject); if (HasErrors) - return false; + return null; await ct.SaveChangesAsync(); await EventLogProcessor.LogEventToDatabaseAsync(new Event(UserId, 1, BizType, AyaEvent.Modified), ct); //Update the static copy for the server ServerGlobalOpsSettingsCache.Backup=dbObject; - return true; + return dbObject; }