protected void ProcessReason(Event eventObj, AccountDbContext accountDbContext) { // пользовательские события (ошибки) if (eventObj.Category == EventCategory.ApplicationError || eventObj.Category == EventCategory.ComponentEvent) { var component = accountDbContext.Components.First(x => x.Id == eventObj.OwnerId); var reason = new ShowEventModelReason() { Event = eventObj, Component = component }; ErrorReasons.Add(reason); return; } // статус метрики if (eventObj.Category == EventCategory.MetricStatus) { var metric = accountDbContext.Metrics.First(x => x.Id == eventObj.OwnerId); var reason = new ShowEventModelReason() { Event = eventObj, Metric = metric, Component = metric.Component }; MetricsReasons.Add(reason); return; } // статус юнит-теста if (eventObj.Category == EventCategory.UnitTestStatus) { var unitTest = accountDbContext.UnitTests.First(x => x.Id == eventObj.OwnerId); var reason = new ShowEventModelReason() { Event = eventObj, UnitTest = unitTest, Component = unitTest.Component }; UnitTestsReasons.Add(reason); return; } // результат юнит-теста if (eventObj.Category == EventCategory.UnitTestResult) { var unitTest = accountDbContext.UnitTests.First(x => x.Id == eventObj.OwnerId); var reason = new ShowEventModelReason() { Event = eventObj, UnitTest = unitTest, Component = unitTest.Component }; UnitTestsReasons.Add(reason); return; } // внешняя колбаса if (eventObj.Category == EventCategory.ComponentExternalStatus) { var component = accountDbContext.Components.First(x => x.Id == eventObj.OwnerId); var reason = new ShowEventModelReason() { Event = eventObj, Component = component }; ChildsReasons.Add(reason); return; } // для статусов загрузим причины еще раз LoadReasons(eventObj, accountDbContext); }
public bool IsActuall () { if ((InternetThumbFileInfos == null) || (InternetFileInfos == null) || (InternetThumbFileInfos.Keys.Count == 0) || (InternetFileInfos.Keys.Count == 0)) { Reason = ErrorReasons.MissingInternetFiles; return false; } if ((ActuallTablePkgFileInfo == null) && (OldTablePkgFileInfo == null)) { Reason = ErrorReasons.MissingPackages; return false; } if (InternetThumbFileInfos.Keys.Count != InternetFileInfos.Keys.Count) { Reason = ErrorReasons.ThumbsAndPicturesMismatch; return false; } DateTime InternetDate = DateTime.MaxValue; foreach (FileInfo InternetThumbFileInfo in InternetThumbFileInfos.Values) if (InternetThumbFileInfo.LastWriteTime < InternetDate) InternetDate = InternetThumbFileInfo.LastWriteTime; foreach (FileInfo InternetFileInfo in InternetFileInfos.Values) if (InternetFileInfo.LastWriteTime < InternetDate) InternetDate = InternetFileInfo.LastWriteTime; DateTime PkgDate = DateTime.MinValue; if ((OldTablePkgFileInfo != null) && (OldTablePkgFileInfo.LastWriteTime > PkgDate)) PkgDate = OldTablePkgFileInfo.LastWriteTime; if ((ActuallTablePkgFileInfo != null) && (ActuallTablePkgFileInfo.LastWriteTime > PkgDate)) PkgDate = ActuallTablePkgFileInfo.LastWriteTime; if (LastModifyTimeStampInTable != null) { if (LastModifyTimeStampInTable > (PkgDate.AddMinutes (2))) { Reason = ErrorReasons.PackageOlderThanTableOrNoTableEntry; return false; } } if (InternetDate > PkgDate) { return true; } Reason = ErrorReasons.PackageYoungerThanPictures; return false; }