コード例 #1
0
        /// <inheritdoc />
        public Task SaveSnapshot(IAnalysis analysis, AnalysisViewTemplate viewTemplate)
        {
            var tmp = analysis as ActiveAnalysis;

            if (tmp == null)
            {
                throw new ArgumentException("It makes no sense to create a snapshot from anything else but an active analysis",
                                            nameof(analysis));
            }

            var analysisSnapshot = tmp.CreateSnapshot();
            var template         = new AnalysisTemplate(analysisSnapshot.Analysers.Select(x => new AnalyserTemplate
            {
                Id = x.Id,
                AnalyserPluginId = x.AnalyserPluginId,
                Configuration    = x.Configuration
            }));
            var clone   = viewTemplate.Clone();
            var results = analysisSnapshot.Analysers.Select(x => new AnalyserResult
            {
                AnalyserId = x.Id,
                Result     = x.Result
            }).ToList();
            var snapshot = new Core.Analysis.AnalysisSnapshot(template, clone, results);

            return(_snapshots.Save(snapshot));
        }