Exemple #1
0
        public async Task <AnalysisResult> PerformAnalysisAsync(AnalysisContext context)
        {
            context.ThrowIfNull(nameof(context));

            _logger.Info("Starting algorithm analysis.");
            _logger.Info($"Parameters: {context.ToLogString()}");

            try
            {
                AnalysisResult result = await PerformInternalAsync(context);

                _logger.Info($"Analysis completely finished. Final result: {result.ToLogString()}");
                return(result);
            }
            catch (Exception ex)
            {
                string message = $"Analysis failed: {ex.Message}";

                _logger.Error(ex, message);
                return(AnalysisResult.CreateFailure(message, context));
            }
        }