Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
		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;
			}