private string SortAndAddToMessage(ConcurrentBag <SPMWatchDogErrorEvent> errors) { var watchDogErrorEventRepository = SPMWatchDogErrorEventRepositoryFactory.Create(); var SortedErrors = errors.OrderBy(x => x.SignalID).ThenBy(x => x.Phase).ToList(); var ErrorMessage = ""; foreach (var error in SortedErrors) { //if (!Settings.EmailAllErrors) //{ // //List<SPMWatchDogErrorEvent> RecordsFromTheDayBefore = new List<SPMWatchDogErrorEvent>(); // //compare to error log to see if this was failing yesterday // if (Settings.WeekdayOnly && ScanDate.DayOfWeek == DayOfWeek.Monday) // RecordsFromTheDayBefore = // watchDogErrorEventRepository.GetSPMWatchDogErrorEventsBetweenDates(ScanDate.AddDays(-3), // ScanDate.AddDays(-2).AddMinutes(-1)); // else // RecordsFromTheDayBefore = // watchDogErrorEventRepository.GetSPMWatchDogErrorEventsBetweenDates(ScanDate.AddDays(-1), // ScanDate.AddMinutes(-1)); //} //if (Settings.EmailAllErrors || FindMatchingErrorInErrorTable(error) == false ) //{ // var signalRepository = SignalsRepositoryFactory.Create(); // var signal = signalRepository.GetLatestVersionOfSignalBySignalID(error.SignalID); // // Add to email if it was not failing yesterday // ErrorMessage += error.SignalID; // ErrorMessage += " - "; // ErrorMessage += signal.PrimaryName; // ErrorMessage += " & "; // ErrorMessage += signal.SecondaryName; // if (error.Phase > 0) // { // ErrorMessage += " - Phase "; // ErrorMessage += error.Phase; // } // ErrorMessage += " (" + error.Message + ")"; // ErrorMessage += "\n"; //} } try { watchDogErrorEventRepository.AddListAndSaveToDatabase(errors.ToList()); } catch (DbEntityValidationException ex) { foreach (var entityValidationErrors in ex.EntityValidationErrors) { foreach (var validationError in entityValidationErrors.ValidationErrors) { Console.WriteLine("Property: " + validationError.PropertyName + " Error: " + validationError.ErrorMessage); } } } return(ErrorMessage); }
//public List<SPMWatchDogErrorEvent> ErrorMessages = new List<SPMWatchDogErrorEvent>(); public void StartScan() { if (!Settings.WeekdayOnly || Settings.WeekdayOnly && ScanDate.DayOfWeek != DayOfWeek.Saturday && ScanDate.DayOfWeek != DayOfWeek.Sunday) { var watchDogErrorEventRepository = SPMWatchDogErrorEventRepositoryFactory.Create(); var signalRepository = SignalsRepositoryFactory.Create(); var signals = signalRepository.EagerLoadAllSignals(); CheckForRecords(signals); CheckAllSignals(signals); CheckSignalsWithData(); CheckApplicationEvents(signals); CreateAndSendEmail(); } }