/// <summary> /// Create a new response /// </summary> /// <param name="responseObj">ResponseCreationModel</param> /// <returns>ResponseModel</returns> public async Task <ResponseModel> CreateResponse(ResponseCreationModel responseObj) { //Instantiate the actions InstantiateResponseActions(responseObj.ActionPlan.OpenActions); InstantiateResponseActions(responseObj.ActionPlan.CloseActions); ResponseDAO response = new ResponseDAO() { ActionPlan = _mapper.Map <ResponseActionPlanDAOObject>(responseObj.ActionPlan), ResponderUserId = responseObj.ResponderUserId, ResponseState = RESPONSE_STATE_ACTIVE, PrimaryEventClusterId = responseObj.PrimaryEventClusterId, Geolocation = _mapper.Map <GeolocationDAOObject>(responseObj.Geolocation) }; response.Id = await _repoResponses.CreateItemAsync(response); if (_repoResponses.IsDocumentKeyNull(response)) { throw new Exception($"An error occured when creating a new response"); } ResponseModel output = _mapper.Map <ResponseModel>(response); return(output); }
public async Task <IActionResult> CreateResponse([FromBody] ResponseCreationModel responseObj) { var result = await _responseDataManager.CreateResponse(responseObj); if (result != null) { IEventSagaReceiveResponseCreated newMessage = new EventSagaReceiveResponseCreated() { Response = result, ActionStatus = ActionStatus.NotStarted }; await _serviceBus.BusAccess.Publish(newMessage); } return(Ok(result)); }
public async Task <ResponseModel> CreateResponse(ResponseCreationModel responseObj) { RestRequest request = await PrepareQuery("Responses", Method.POST); request.AddParameter("application/json", JsonConvert.SerializeObject(responseObj), ParameterType.RequestBody); var queryResult = await _client.ExecuteTaskAsync <ResponseModel>(request); if (queryResult.IsSuccessful) { return(queryResult.Data); } else { _logger.LogError($"CreateResponse: Error while adding a response: {queryResult.StatusCode}"); } return(null); }