public List <Signal> GetSignalsBetweenDates(string signalId, DateTime startDate, DateTime endDate)
        {
            List <Common.Models.Signal> signals = new List <Signal>();

            Common.Models.Signal signalBeforeStart = _db.Signals

                                                     .Where(signal => signal.SignalID == signalId &&
                                                            signal.Start <= startDate &&
                                                            signal.VersionActionId != 3).OrderByDescending(s => s.Start)
                                                     .Take(1)
                                                     .FirstOrDefault();
            if (signalBeforeStart != null)
            {
                signals.Add(signalBeforeStart);
            }
            if (_db.Signals.Any(signal => signal.SignalID == signalId &&
                                signal.Start > startDate &&
                                signal.Start < endDate &&
                                signal.VersionActionId != 3))
            {
                signals.AddRange(_db.Signals

                                 .Where(signal => signal.SignalID == signalId &&
                                        signal.Start > startDate &&
                                        signal.Start < endDate &&
                                        signal.VersionActionId != 3).ToList());
            }
            return(signals);
        }
 public void AddOrUpdate(Common.Models.Signal signal)
 {
     MOE.Common.Models.Signal g = (from r in _db.Signals
                                   where r.SignalID == signal.SignalID
                                   select r).FirstOrDefault();
     if (g == null)
     {
         _db.Signals.Add(signal);
     }
     else
     {
         Update(signal);
     }
 }