Example #1
0
        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);
        }
Example #2
0
        public async Task <IActionResult> UpdateIndicator(string indicatorId, [FromBody] UpdateIndicatorRequest request)
        {
            // Reponse
            request.IndicatorId = indicatorId;
            var response = await _indicatorService.UpdateIndicator(request);

            // Return
            return(Ok(response));
        }