public async Task <bool> AllocateAdditionalResourceAsync(AdditionalResourcesRequest request) { var disaster = await _verifiedDisasterReportCollection.GetAsync(request.ReferenceCode); // get the required officer List <OfficerDetails> officersList = await _officerDetailsCollection.GetOfficerDetails(request.Department, request.AdditionalUnits); foreach (OfficerDetails officer in officersList) { try { // add the assign disaster.AssignedOfficers.Add(officer.ReferenceCode); officer.IsOfficerAssigned = true; bool updateResult = await _officerDetailsCollection.UpdateAsync(officer); //send notification introducing a pipeline or direct } catch (NullReferenceException) { continue; } } Trace.WriteLine(disaster.AssignedOfficers); return(await _verifiedDisasterReportCollection.UpdateAsync(disaster)); }
public async Task <IActionResult> AdditionalResourceAllocation(AdditionalResourcesRequest request) { ActionResponse response; try { bool result = await _businessLogic.AllocateAdditionalResourceAsync(request); response = (result) ? new ActionResponse(StatusCodes.Status200OK) : new ActionResponse(StatusCodes.Status422UnprocessableEntity); } catch (Exception ex) { response = new ActionResponse(StatusCodes.Status500InternalServerError); response.StatusDescription += ex.Message.ToString(); } return(StatusCode(response.StatusCode, response)); }