private async Task <IActionResult> ProcessRequestAsync <T>(T requestDto) where T : AbstractRequestDto { IActionResult result; string typeForLogs = typeof(T).Name; if (requestDto == null) { _logger.LogError("{0} Null input for '{1}'", LogDescription(), typeForLogs); result = BadRequest(new ResultDto { Message = "Null input." }); } else { // validating input MessageListResult validationResult = requestDto.Validate(); if (!validationResult.IsOk) { _logger.LogError("{0} ValidErr for '{1}': {2}", LogDescription(), typeForLogs, validationResult.Message); ResultDto badValidationResult = _mapper.Map <ResultDto>(validationResult); result = BadRequest(badValidationResult); } else { // getting wsClient WsClient wsClient = await GetWsClient(); // adding request to queue IdResultDto <long> addResult = await _requestService.AddRequestAsync(requestDto, wsClient); if (addResult.IsOk) { _logger.LogDebug("{0} Ok for: '{1}' -> Id: '{2}'", LogDescription(), typeForLogs, addResult.Id); result = Ok(addResult); } else { // when ID from DB <= 0 _logger.LogError("{0} Error for: '{1}' -> Message: '{2}'", LogDescription(), typeForLogs, addResult.Message); result = InternalServerError(addResult); } } } return(result); }
//POST methods public async Task <bool> AddRequestAsync(RequestViewModel model) { var reqDto = mapper.Map <RequestDto>(model); return(await requestService.AddRequestAsync(reqDto)); }