private bool ValidateAlertEntityQueueDataForUpdate(AlertJobsQueueEntityDataSave updatedata, IConfiguration configuration) { var HRToken = new JwtSecurityToken(updatedata.HRToken); if (Helper.TokenValid(HRToken) == false) { return(false); } if (updatedata.AlertJobsQueueEntity == null) { return(false); } // Check if HR is up before calling HR routines var hrResponse = Helper.GetHRServerStatus(configuration); // We expect a 400 - Bad Request, if 404 Not Found, return an error if (hrResponse.StatusCode == 404) { return(false); } return(true); }
public IActionResult UpdateEntry([FromBody] AlertJobsQueueEntityDataSave updatedata) { var result = _repository.UpdateEntry(updatedata, _configuration); if (result == null) { return(Helper.CheckResult(result, false, true)); } else { return(Helper.CheckResult(result)); } }
public void AlertJobsQueueEntity() { IEnumerable <AlertJobFilterData> AlertJobFilterDataItems = Enumerable.Empty <AlertJobFilterData>(); object t = new object(); AlertJobsQueueEntityData data = new AlertJobsQueueEntityData(); AlertJobsQueueEntity dataEntity = new AlertJobsQueueEntity(); AlertJobFilter filter = new AlertJobFilter(); Mock <IAlertJobsQueueEntityRepository> AlertJobsQueueEntityService = new Mock <IAlertJobsQueueEntityRepository>(); Guid guid = new Guid(); IConfiguration config = null; WorkItemPostData wrkitemdata = new WorkItemPostData(); AlertJobsQueueEntityDataSave datasave = new AlertJobsQueueEntityDataSave(); object obj = new object(); try { AlertJobsQueueEntityService.Setup(x => x.GetAlertBatchItems()).Returns(t); AlertJobsQueueEntityService.Setup(x => x.GetFilteredAlertEntities(It.IsAny <AlertJobFilter>())).Returns(AlertJobFilterDataItems); AlertJobsQueueEntityService.Setup(x => x.CheckWorkItemIDForEntity(It.IsAny <WorkItemPostData>(), It.IsAny <IConfiguration>())) .Returns(t); AlertJobsQueueEntityService.Setup(x => x.GetByGuid(It.IsAny <Guid>())).Returns(data); AlertJobsQueueEntityService.Setup(x => x.UpdateEntry(It.IsAny <AlertJobsQueueEntityDataSave>(), It.IsAny <IConfiguration>())) .Returns(dataEntity); var AlertJobsQueueEntityObject = AlertJobsQueueEntityService.Object; var p1 = AlertJobsQueueEntityObject.GetAlertBatchItems(); var p2 = AlertJobsQueueEntityObject.GetFilteredAlertEntities(filter); var p3 = AlertJobsQueueEntityObject.GetByGuid(guid); var p4 = AlertJobsQueueEntityObject.CheckWorkItemIDForEntity(wrkitemdata, config); var p5 = AlertJobsQueueEntityObject.UpdateEntry(datasave, config); Assert.IsAssignableFrom <object>(p1); Assert.IsAssignableFrom <IEnumerable <AlertJobFilterData> >(p2); Assert.IsAssignableFrom <AlertJobsQueueEntityData>(p3); Assert.IsAssignableFrom <object>(p4); Assert.IsAssignableFrom <AlertJobsQueueEntity>(p5); AlertJobsQueueEntityService.VerifyAll(); AlertJobsQueueEntityObject.Dispose(); } finally { AlertJobsQueueEntityService = null; } }
public AlertJobsQueueEntity UpdateEntry(AlertJobsQueueEntityDataSave updatedata, IConfiguration configuration) { bool DataValid = ValidateAlertEntityQueueDataForUpdate(updatedata, configuration); if (DataValid == false) { return(null); } AlertJobsQueueEntity thisEntityObject = updatedata.AlertJobsQueueEntity; var AlertJobsQueueEntityObject = _context.AlertJobsQueueEntity .FirstOrDefault(t => t.AlertJobsQueueEntityID == thisEntityObject.AlertJobsQueueEntityID); // check if object exists if (AlertJobsQueueEntityObject == null) { return(null); } // status can only be 26, "Open" fail otherwise if (!(AlertJobsQueueEntityObject.StatusID == 26)) { return(null); } var thisUser = _context.AppUser .FirstOrDefault(t => t.AppUserID.ToString() == thisEntityObject.UpdatedBy); if (thisUser == null) { return(null); } // Check the locks table // WorkUnitTypeID == 6 is BWQ, 3 is Investigations, 4 Alerts var locks = _context.RecordLocks .Where(v => v.WorkUnitTypeID == 4 && v.IDFromWorkUnitsDBTable == thisEntityObject.AlertJobsQueueEntityID); foreach (var lockentry in locks) { if (lockentry.AppUserID != thisUser.AppUserID) // record lock found for another user { return(null); } if (lockentry != null) { _context.RecordLocks.Remove(lockentry); // clear locks before saving } } _context.Entry(AlertJobsQueueEntityObject).CurrentValues.SetValues(thisEntityObject); // Save Editorial data _context.SaveChanges(); #region Human Review var workItemGuid = AlertJobsQueueEntityObject.WorkItemID.ToString(); var QueueGuid = (from module in _context.ApplicationModules where module.ModuleName == EditorialModules.Alerts select module.QueueGuid).FirstOrDefault(); var QueueGuidString = QueueGuid.ToString(); var JsonData = JsonConvert.SerializeObject(thisEntityObject); var HRCreateRequest = Helper.BuildHRWorkItemRequest(EditorialModules.Alerts, QueueGuidString, JsonData, configuration, workItemGuid, HRRequestMode.Update); var GuidResult = Helper.PutHRWorkItem((WorkItemPutRequest)HRCreateRequest, updatedata.HRToken, configuration); #endregion return(thisEntityObject); }
public IActionResult UpdateEntry([FromBody] AlertJobsQueueEntityDataSave updatedata) { AlertJobsQueueEntity thisentity = updatedata.AlertJobsQueueEntity; if (updatedata.HRToken == "") { return(BadRequest("Invalid Token")); } var targetObject = _context.AlertJobsQueueEntity .FirstOrDefault(t => t.AlertJobsQueueEntityID == thisentity.AlertJobsQueueEntityID); if (targetObject == null) { return(NotFound()); } var thisUser = _context.AppUser .FirstOrDefault(t => t.AppUserID.ToString() == thisentity.UpdatedBy); if (thisUser == null) { return(BadRequest("Invalid User")); } // Check if HR is up var hruri = _configuration.GetSection("HumanReview:uri").Value + "auth/token"; var hrResponse = Common.ServerStatusBy(hruri); // We expect a 400 - Bad Request. Anything else specifically 404 Not Found, return an error if (hrResponse.StatusCode == 404) { { return(NotFound("Error: Human Review Service unavailable")); } } // WorkUnitTypeID == 6 is BWQ, 3 is Investigations, 4 Alerts var thislock = _context.RecordLocks .Where(v => v.WorkUnitTypeID == 4 && v.IDFromWorkUnitsDBTable == thisentity.AlertJobsQueueEntityID); foreach (var locks in thislock) { if (locks.AppUserID != thisUser.AppUserID) // record lock found for another user { var lockedToUser = _context.AppUser.FirstOrDefault(u => u.AppUserID == locks.AppUserID); return(BadRequest("Investigation locked to: " + lockedToUser.AppUserName)); } if (locks != null) // no locks { _context.RecordLocks.Remove(locks); } } _context.Entry(targetObject).CurrentValues.SetValues(thisentity); // Save Editorial data ReturnData ret; ret = _context.SaveData(); if (ret.Message != "Success") { return(Json(ret)); } #region Human Review try { var workItemGuid = targetObject.WorkItemID.ToString(); var Modules = _context.ApplicationModules; var QueueGuid = (from mods in Modules where mods.ModuleName == "Alerts" select mods.QueueGuid).FirstOrDefault(); var JsonData = JsonConvert.SerializeObject(thisentity); WorkItemPutRequest HRPutRequest = new WorkItemPutRequest(); HRPutRequest.isActive = true; HRPutRequest.name = "Updating WorkItem details for Alert Entity " + thisentity.AlertJobsQueueEntityID; HRPutRequest.description = "Updating WorkItem details for Alert Entity " + thisentity.AlertJobsQueueEntityID; HRPutRequest.queueGuid = QueueGuid; HRPutRequest.statusDetailTypeGuid = _configuration.GetSection("HumanReview:statusDetailTypeGuid_upd").Value; HRPutRequest.reviewTypeGuid = _configuration.GetSection("HumanReview:reviewTypeGuid_upd").Value; HRPutRequest.formDefinitionJson = JsonData; HRPutRequest.workitemGuid = workItemGuid; var returnDataFromHR = Common.putWorkItemForEntityAsync(HRPutRequest, updatedata.HRToken, _configuration); } catch (Exception e) { // log error var logInfo = e.Message; } #endregion if (ret.Message == "Success") { return(Ok()); } return(NotFound(ret)); }