/// <summary> /// Enterprise groups analysis /// </summary> /// <param name="analysisQueue">Queue item</param> /// <param name="analyzer">Stat unit analyzer</param> private void AnalyzeEnterpriseGroups(AnalysisQueue analysisQueue, IStatUnitAnalyzer analyzer) { while (true) { var unitForAnalysis = _helper.GetEnterpriseGroupForAnalysis(analysisQueue); if (unitForAnalysis == null) { break; } AddAnalysisLogs(analysisQueue.Id, unitForAnalysis, analyzer); } }
/// <summary> /// Statistical units analysis /// </summary> /// <param name="analysisQueue">Queue item</param> /// <param name="analyzer">Stat unit analyzer</param> private void AnalyzeStatisticalUnits(AnalysisQueue analysisQueue, IStatUnitAnalyzer analyzer) { while (true) { var unitForAnalysis = _helper.GetStatisticalUnitForAnalysis(analysisQueue); if (unitForAnalysis == null) { break; } AddAnalysisLogs(analysisQueue.Id, unitForAnalysis, analyzer); } }
private static AnalysisResult AnalyzeSingleStatUnit(IStatisticalUnit unit, IStatUnitAnalyzer analyzer) { return(analyzer.CheckAll(unit)); }
private void AddAnalysisLogs(int analysisQueueId, IStatisticalUnit unitForAnalysis, IStatUnitAnalyzer analyzer) { var analyzeResult = AnalyzeSingleStatUnit(unitForAnalysis, analyzer); if (analyzeResult.Messages.Any() || analyzeResult.SummaryMessages.Any()) { _context.AnalysisLogs.Add(new AnalysisLog { AnalysisQueueId = analysisQueueId, AnalyzedUnitId = unitForAnalysis.RegId, AnalyzedUnitType = unitForAnalysis.UnitType, IssuedAt = DateTime.Now, SummaryMessages = string.Join(";", analyzeResult.SummaryMessages), ErrorValues = JsonConvert.SerializeObject(analyzeResult.Messages) }); _context.SaveChanges(); } }