コード例 #1
0
 protected void GetSignalObjects()
 {
     try
     {
         if (Signals == null)
         {
             Signals = new List <Models.Signal>();
         }
         if (Signals.Count == 0)
         {
             var signalRepository = SignalsRepositoryFactory.Create();
             foreach (var filterSignal in FilterSignals)
             {
                 if (!filterSignal.Exclude)
                 {
                     var signals =
                         signalRepository.GetSignalsBetweenDates(filterSignal.SignalId, StartDate, EndDate);
                     foreach (var signal in signals)
                     {
                         RemoveApproachesByFilter(filterSignal, signal);
                         signal.Approaches = signal.Approaches.OrderBy(a => a.ProtectedPhaseNumber).ToList();
                     }
                     Signals.AddRange(signals);
                 }
             }
         }
     }
     catch (Exception e)
     {
         var errorLog = ApplicationEventRepositoryFactory.Create();
         errorLog.QuickAdd(Assembly.GetExecutingAssembly().GetName().ToString(),
                           GetType().DisplayName(), e.TargetSite.ToString(), ApplicationEvent.SeverityLevels.High, e.Message);
         throw new Exception("Unable to apply signal filter");
     }
 }
コード例 #2
0
        public void LoadSignals(string filePath)
        {
            if (!File.Exists(filePath))
            {
                throw new FileNotFoundException(string.Format("The signals file doesn't exist at: {0}", filePath));
            }

            using (var fileStream = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            {
                var serializer = new XmlSerializer(this.GetType());

                var signals = (serializer.Deserialize(fileStream) as SignalContainer).Signals;

                Signals.AddRange(signals);
            }
        }