public async Task <IndicatorResponse> UpdateIndicator(UpdateIndicatorRequest request) { // Get indicator var indicator = await _indicatorRepository.GetSingle(request.IndicatorId); // Throw NotFoundException if it does not exist if (indicator == null) { throw new NotFoundException(IndicatorMessage.IndicatorNotFound); } // Build dependencies var newDependencies = await BuildDependencies(request.IndicatorId, request.Dependencies); // Update dependencies var currentDependencies = await _indicatorDependencyRepository.GetAll(IndicatorDependencyExpression.IndicatorDependencyFilter(indicator.IndicatorId, null)); _indicatorDependencyRepository.UpdateCollection(currentDependencies, newDependencies); // Update indicator indicator.Update(request.Name, request.Description, request.Formula, newDependencies); _indicatorRepository.Update(indicator); // Save await _mainDbContext.SaveChangesAsync(); // Log into Splunk _logger.LogSplunkRequest(request); // Response var response = _mapper.Map <IndicatorResponse>(indicator); // Return return(response); }
public async Task <IActionResult> UpdateIndicator(string indicatorId, [FromBody] UpdateIndicatorRequest request) { // Reponse request.IndicatorId = indicatorId; var response = await _indicatorService.UpdateIndicator(request); // Return return(Ok(response)); }