コード例 #1
0
        public Approach GetApproachByApproachID(int approachId)
        {
            var approach = (from r in _db.Approaches
                            where r.ApproachID == approachId
                            select r).FirstOrDefault();

            if (approach != null)
            {
                return(approach);
            }
            {
                var repository =
                    ApplicationEventRepositoryFactory.Create();
                var error = new ApplicationEvent
                {
                    ApplicationName = "MOE.Common",
                    Class           = "Models.Repository.ApproachRepository",
                    Function        = "GetApproachByApproachID",
                    Description     = "No approach for ID.  Attempted ID# = " + approachId,
                    SeverityLevel   = ApplicationEvent.SeverityLevels.High,
                    Timestamp       = DateTime.Now
                };
                repository.Add(error);
                throw new Exception("There is no Approach for this ID");
            }
        }
コード例 #2
0
        public void Remove(int approachId)
        {
            var approach = _db.Approaches.Find(approachId);

            if (approach != null)
            {
                try
                {
                    _db.Approaches.Remove(approach);
                    _db.SaveChanges();
                }
                catch (Exception ex)
                {
                    var repository =
                        ApplicationEventRepositoryFactory.Create();
                    var error =
                        new ApplicationEvent
                    {
                        ApplicationName = "MOE.Common",
                        Class           = "Models.Repository.ApproachRepository",
                        Function        = "Remove",
                        Description     = ex.Message,
                        SeverityLevel   = ApplicationEvent.SeverityLevels.High,
                        Timestamp       = DateTime.Now
                    };
                    repository.Add(error);
                    throw ex;
                }
            }
        }
コード例 #3
0
        public void AddOrUpdate(MetricComment metricComment)
        {
            var g = (from r in db.MetricComments
                     where r.CommentID == metricComment.CommentID
                     select r).FirstOrDefault();

            if (g != null)
            {
                try
                {
                    db.Entry(g).CurrentValues.SetValues(metricComment);
                    db.SaveChanges();
                }
                catch (Exception ex)
                {
                    var repository =
                        ApplicationEventRepositoryFactory.Create();
                    var error = new ApplicationEvent();
                    error.ApplicationName = "MOE.Common";
                    error.Class           = "Models.Repository.MetricCommentRepository";
                    error.Function        = "AddOrUpdate";
                    error.Description     = ex.Message;
                    error.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
                    error.Timestamp       = DateTime.Now;
                    repository.Add(error);
                    throw;
                }
            }
            else
            {
                db.MetricComments.Add(metricComment);
                db.SaveChanges();
            }
        }
コード例 #4
0
        private void AddDetectiontypestoDetector(Detector detector)
        {
            try
            {
                var g = (from r in _db.Detectors
                         where r.ID == detector.ID
                         select r).FirstOrDefault();
                if (g == null)
                {
                    detector.DetectionTypes = new List <DetectionType>();
                    detector.DetectionTypes = _db.DetectionTypes
                                              .Where(dt => detector.DetectionTypeIDs.Contains(dt.DetectionTypeID)).ToList();
                }
            }

            catch (Exception ex)
            {
                var repository =
                    ApplicationEventRepositoryFactory.Create();
                var error = new ApplicationEvent();
                error.ApplicationName = "MOE.Common";
                error.Class           = "Models.Repository.SignalRepository";
                error.Function        = "Add";
                error.Description     = ex.Message;
                error.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
                error.Timestamp       = DateTime.Now;
                repository.Add(error);
                throw;
            }
        }
コード例 #5
0
ファイル: RouteSignalRepository.cs プロジェクト: gmonk/ATSPM
        public void UpdateByRouteAndApproachID(int routeID, string signalId, int newOrderNumber)
        {
            var RouteDetail = (from r in db.RouteSignals
                               where r.RouteId == routeID &&
                               r.SignalId == signalId
                               select r).FirstOrDefault();

            if (RouteDetail != null)
            {
                var newRouteDetail = new RouteSignal();
                newRouteDetail.Order = newOrderNumber;

                try
                {
                    db.Entry(RouteDetail).CurrentValues.SetValues(newRouteDetail);
                    db.SaveChanges();
                }
                catch (Exception ex)
                {
                    var repository =
                        ApplicationEventRepositoryFactory.Create();
                    var error = new ApplicationEvent();
                    error.ApplicationName = "MOE.Common";
                    error.Class           = "Models.Repository.ApproachRouteDetailsRepository";
                    error.Function        = "UpdateByRouteAndApproachID";
                    error.Description     = ex.Message;
                    error.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
                    error.Timestamp       = DateTime.Now;
                    repository.Add(error);
                    throw;
                }
            }
        }
コード例 #6
0
ファイル: RouteSignalRepository.cs プロジェクト: gmonk/ATSPM
 public void Add(RouteSignal newRouteDetail)
 {
     try
     {
         if (!db.RouteSignals.Any(s =>
                                  s.SignalId == newRouteDetail.SignalId && s.RouteId == newRouteDetail.RouteId))
         {
             db.RouteSignals.Add(newRouteDetail);
             db.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         var repository =
             ApplicationEventRepositoryFactory.Create();
         var error = new ApplicationEvent();
         error.ApplicationName = "MOE.Common";
         error.Class           = "Models.Repository.ApproachRouteDetailsRepository";
         error.Function        = "UpdateByRouteAndApproachID";
         error.Description     = ex.Message;
         error.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
         error.Timestamp       = DateTime.Now;
         repository.Add(error);
         throw;
     }
 }
コード例 #7
0
ファイル: RouteRepository.cs プロジェクト: gmonk/ATSPM
        public void Update(Route newRoute)
        {
            var route = (from r in db.Routes
                         where r.Id == newRoute.Id
                         select r).FirstOrDefault();

            if (route != null)
            {
                var newroute = new Route();

                newroute.Id        = route.Id;
                newroute.RouteName = newroute.RouteName;
                try
                {
                    db.Entry(route).CurrentValues.SetValues(newroute);
                    db.SaveChanges();
                }

                catch (Exception ex)
                {
                    var repository =
                        ApplicationEventRepositoryFactory.Create();
                    var error = new ApplicationEvent();
                    error.ApplicationName = "MOE.Common";
                    error.Class           = "Models.Repository.ApproachRouteRepository";
                    error.Function        = "UpdateByID";
                    error.Description     = ex.Message;
                    error.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
                    error.Timestamp       = DateTime.Now;
                    repository.Add(error);
                    throw;
                }
            }
        }
コード例 #8
0
 public Controller_Event_Log GetFirstEventBeforeDateByEventCodeAndParameter(string signalId, int eventCode,
                                                                            int eventParam, DateTime date)
 {
     try
     {
         var tempDate  = date.AddDays(-1);
         var lastEvent = _db.Controller_Event_Log.Where(c => c.SignalID == signalId &&
                                                        c.Timestamp >= tempDate &&
                                                        c.Timestamp < date &&
                                                        c.EventCode == eventCode &&
                                                        c.EventParam == eventParam)
                         .OrderByDescending(c => c.Timestamp).FirstOrDefault();
         return(lastEvent);
     }
     catch (Exception ex)
     {
         var logRepository = ApplicationEventRepositoryFactory.Create();
         var e             = new ApplicationEvent();
         e.ApplicationName = "MOE.Common";
         e.Class           = GetType().ToString();
         e.Function        = "GetEventsByEventCodesParamWithOffsetAndLatencyCorrection";
         e.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
         e.Description     = ex.Message;
         e.Timestamp       = DateTime.Now;
         logRepository.Add(e);
         return(null);
     }
 }
コード例 #9
0
        public List <Controller_Event_Log> GetTopNumberOfSignalEventsBetweenDates(string signalId, int numberOfRecords,
                                                                                  DateTime startTime, DateTime endTime)
        {
            try
            {
                var events =
                    (from r in _db.Controller_Event_Log
                     where r.SignalID == signalId &&
                     r.Timestamp >= startTime &&
                     r.Timestamp < endTime
                     select r).Take(numberOfRecords).ToList();

                if (events != null)
                {
                    return(events);
                }
                var emptyEvents = new List <Controller_Event_Log>();
                return(emptyEvents);
            }
            catch (Exception ex)
            {
                var logRepository =
                    ApplicationEventRepositoryFactory.Create();
                var e = new ApplicationEvent();
                e.ApplicationName = "MOE.Common";
                e.Class           = GetType().ToString();
                e.Function        = "GetTopNumberOfSignalEventsBetweenDates";
                e.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
                e.Timestamp       = DateTime.Now;
                e.Description     = ex.Message;
                logRepository.Add(e);
                throw;
            }
        }
コード例 #10
0
 public List <Controller_Event_Log> GetEventsByEventCodesParam(string signalId, DateTime startTime,
                                                               DateTime endTime, List <int> eventCodes, int param)
 {
     try
     {
         var events = from s in _db.Controller_Event_Log
                      where s.SignalID == signalId &&
                      s.Timestamp >= startTime &&
                      s.Timestamp <= endTime &&
                      s.EventParam == param &&
                      eventCodes.Contains(s.EventCode)
                      select s;
         events = events.OrderBy(e => e.Timestamp).ThenBy(e => e.EventParam);
         return(events.ToList());
     }
     catch (Exception ex)
     {
         var logRepository =
             ApplicationEventRepositoryFactory.Create();
         var e = new ApplicationEvent();
         e.ApplicationName = "MOE.Common";
         e.Class           = GetType().ToString();
         e.Function        = "GetEventsByEventCodesParam";
         e.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
         e.Timestamp       = DateTime.Now;
         e.Description     = ex.Message;
         logRepository.Add(e);
         throw;
     }
 }
コード例 #11
0
        public List <Controller_Event_Log> GetSignalEventsByEventCodes(string signalId,
                                                                       DateTime startTime, DateTime endTime, List <int> eventCodes)
        {
            try
            {
                var events = (from s in _db.Controller_Event_Log
                              where s.SignalID == signalId &&
                              s.Timestamp >= startTime &&
                              s.Timestamp <= endTime &&
                              eventCodes.Contains(s.EventCode)
                              select s).ToList();
                events.Sort((x, y) => DateTime.Compare(x.Timestamp, y.Timestamp));
                return(events);
            }
            //catch (EntityCommandExecutionException ex)
            //{

            //}

            catch (Exception ex)
            {
                var logRepository =
                    ApplicationEventRepositoryFactory.Create();
                var e = new ApplicationEvent();
                e.ApplicationName = "MOE.Common";
                e.Class           = GetType().ToString();
                e.Function        = "GetSignalEventsByEventCodes";
                e.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
                e.Timestamp       = DateTime.Now;
                e.Description     = signalId + " - " + ex.Message;
                logRepository.Add(e);
                throw ex;
            }
        }
コード例 #12
0
        public void Update(RoutePhaseDirection newRoutePhaseDirection)
        {
            CheckForExistingApproach(newRoutePhaseDirection);
            var routePhaseDirection =
                db.RoutePhaseDirections.Where(r => r.Id == newRoutePhaseDirection.Id).FirstOrDefault();

            if (routePhaseDirection != null)
            {
                try
                {
                    db.Entry(routePhaseDirection).CurrentValues.SetValues(newRoutePhaseDirection);
                    db.SaveChanges();
                }

                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("");
                }
            }
            else
            {
                Add(newRoutePhaseDirection);
            }
        }
コード例 #13
0
ファイル: RouteRepository.cs プロジェクト: gmonk/ATSPM
        public Route GetRouteByID(int routeID)
        {
            var route = db.Routes
                        .Include(r => r.RouteSignals.Select(s => s.PhaseDirections)).FirstOrDefault(r => r.Id == routeID);

            route.RouteSignals = route.RouteSignals.OrderBy(s => s.Order).ToList();
            var signalRepository = Repositories.SignalsRepositoryFactory.Create();

            foreach (var routeSignal in route.RouteSignals)
            {
                routeSignal.Signal = signalRepository.GetLatestVersionOfSignalBySignalID(routeSignal.SignalId);
            }
            if (route != null)
            {
                return(route);
            }
            var repository =
                ApplicationEventRepositoryFactory.Create();
            var error = new ApplicationEvent();

            error.ApplicationName = "MOE.Common";
            error.Class           = "Models.Repository.ApproachRouteRepository";
            error.Function        = "GetByRouteID";
            error.Description     = "No Route for ID.  Attempted ID# = " + routeID;
            error.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
            error.Timestamp       = DateTime.Now;
            repository.Add(error);
            throw new Exception("There is no Route for this ID");
        }
コード例 #14
0
 public List <Controller_Event_Log> GetEventsByEventCodesParamWithLatencyCorrection(string signalId,
                                                                                    DateTime startTime, DateTime endTime, List <int> eventCodes, int param, double latencyCorrection)
 {
     try
     {
         var events = _db.Controller_Event_Log.Where(s => s.SignalID == signalId &&
                                                     s.Timestamp >= startTime &&
                                                     s.Timestamp <= endTime &&
                                                     s.EventParam == param &&
                                                     eventCodes.Contains(s.EventCode)).ToList();
         foreach (var cel in events)
         {
             cel.Timestamp = cel.Timestamp.AddSeconds(0 - latencyCorrection);
         }
         return(events.OrderBy(e => e.Timestamp).ThenBy(e => e.EventCode).ToList());
     }
     catch (Exception ex)
     {
         var logRepository =
             ApplicationEventRepositoryFactory.Create();
         var e = new ApplicationEvent();
         e.ApplicationName = "MOE.Common";
         e.Class           = GetType().ToString();
         e.Function        = "GetEventsByEventCodesParamWithLatencyCorrection";
         e.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
         e.Timestamp       = DateTime.Now;
         e.Description     = ex.Message;
         logRepository.Add(e);
         throw;
     }
 }
コード例 #15
0
        public void Remove(Approach approach)
        {
            var g = (from r in _db.Approaches
                     where r.ApproachID == approach.ApproachID
                     select r).FirstOrDefault();

            if (g != null)
            {
                try
                {
                    _db.Approaches.Remove(g);
                    _db.SaveChanges();
                }
                catch (Exception ex)
                {
                    {
                        var repository =
                            ApplicationEventRepositoryFactory.Create();
                        var error = new ApplicationEvent
                        {
                            ApplicationName = "MOE.Common",
                            Class           = "Models.Repository.ApproachRepository",
                            Function        = "Remove",
                            Description     = ex.Message,
                            SeverityLevel   = ApplicationEvent.SeverityLevels.High,
                            Timestamp       = DateTime.Now
                        };
                        repository.Add(error);
                        throw ex;
                    }
                }
            }
        }
コード例 #16
0
        public void Remove(int ID)
        {
            var g = (from r in _db.Detectors
                     where r.ID == ID
                     select r).FirstOrDefault();

            if (g != null)
            {
                try
                {
                    _db.Detectors.Remove(g);
                    _db.SaveChanges();
                }
                catch (Exception ex)
                {
                    var repository =
                        ApplicationEventRepositoryFactory.Create();
                    var error = new ApplicationEvent();
                    error.ApplicationName = "MOE.Common";
                    error.Class           = "Models.Repository.DetectorRepository";
                    error.Function        = "Remove";
                    error.Description     = ex.Message;
                    error.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
                    error.Timestamp       = DateTime.Now;
                    repository.Add(error);
                    throw;
                }
            }
        }
コード例 #17
0
 public List <Controller_Event_Log> GetSignalEventsByEventCode(string signalId,
                                                               DateTime startTime, DateTime endTime, int eventCode)
 {
     try
     {
         return((from r in _db.Controller_Event_Log
                 where r.SignalID == signalId &&
                 r.Timestamp >= startTime &&
                 r.Timestamp < endTime &&
                 r.EventCode == eventCode
                 select r).ToList());
     }
     catch (Exception ex)
     {
         var logRepository =
             ApplicationEventRepositoryFactory.Create();
         var e = new ApplicationEvent();
         e.ApplicationName = "MOE.Common";
         e.Class           = GetType().ToString();
         e.Function        = "GetSignalEventsByEventCode";
         e.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
         e.Timestamp       = DateTime.Now;
         e.Description     = ex.Message;
         logRepository.Add(e);
         throw;
     }
 }
コード例 #18
0
        public void Add(DetectorComment detectorComment)
        {
            var g = (from r in db.DetectorComments
                     where r.CommentID == detectorComment.CommentID
                     select r).FirstOrDefault();

            if (g == null)
            {
                try
                {
                    db.DetectorComments.Add(detectorComment);
                    db.SaveChanges();
                }

                catch (Exception ex)
                {
                    var repository =
                        ApplicationEventRepositoryFactory.Create();
                    var error = new ApplicationEvent();
                    error.ApplicationName = "MOE.Common";
                    error.Class           = "Models.Repository.DetectorCommentRepository";
                    error.Function        = "Add";
                    error.Description     = ex.Message;
                    error.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
                    error.Timestamp       = DateTime.Now;
                    repository.Add(error);
                    throw;
                }
            }
        }
コード例 #19
0
ファイル: RouteSignalRepository.cs プロジェクト: gmonk/ATSPM
        public void DeleteByRouteID(int routeID)
        {
            var routes = (from r in db.RouteSignals
                          where r.RouteId == routeID
                          select r).ToList();

            try
            {
                db.RouteSignals.RemoveRange(routes);
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                var repository =
                    ApplicationEventRepositoryFactory.Create();
                var error = new ApplicationEvent();
                error.ApplicationName = "MOE.Common";
                error.Class           = "Models.Repository.ApproachRouteDetailsRepository";
                error.Function        = "DeleteByRouteID";
                error.Description     = ex.Message;
                error.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
                error.Timestamp       = DateTime.Now;
                repository.Add(error);
                throw;
            }
        }
コード例 #20
0
        public void AddOrUpdate(Signal signal)
        {
            var g = (from r in _db.Signals
                     where r.VersionID == signal.VersionID
                     select r).FirstOrDefault();

            if (g == null)
            {
                if (signal.Approaches != null)
                {
                    foreach (var appr in signal.Approaches)
                    {
                        if (appr.Detectors != null)
                        {
                            foreach (var det in appr.Detectors)
                            {
                                AddDetectiontypestoDetector(det);
                            }
                        }
                    }
                }
                _db.Signals.Add(signal);
                try
                {
                    _db.SaveChanges();
                }
                catch (Exception ex)
                {
                    var repository =
                        ApplicationEventRepositoryFactory.Create();
                    var error = new ApplicationEvent
                    {
                        ApplicationName = "MOE.Common",
                        Class           = "Models.Repository.SignalRepository",
                        Function        = "AddOrUpdate",
                        Description     = ex.Message,
                        SeverityLevel   = ApplicationEvent.SeverityLevels.High,
                        Timestamp       = DateTime.Now
                    };
                    repository.Add(error);
                    throw;
                }
            }
            else
            {
                Update(signal);
                //throw new Exception("Signal already exists in the database");
            }
        }
コード例 #21
0
 public void Add(RoutePhaseDirection newRoutePhaseDirection)
 {
     try
     {
         db.RoutePhaseDirections.Add(newRoutePhaseDirection);
         db.SaveChanges();
     }
     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("");
     }
 }
コード例 #22
0
 public void AddList(List <SPMWatchDogErrorEvent> SPMWatchDogErrorEvents)
 {
     try
     {
         db.SPMWatchDogErrorEvents.AddRange(SPMWatchDogErrorEvents);
         db.SaveChanges();
     }
     catch (Exception ex)
     {
         var er =
             ApplicationEventRepositoryFactory.Create();
         er.QuickAdd("MOE.Common", "SPMWatchDogErrrorEventRepository", "AddList",
                     ApplicationEvent.SeverityLevels.Medium, ex.Message);
     }
 }
コード例 #23
0
        public void Add(MetricComment metricComment)
        {
            var g = (from r in db.MetricComments
                     where r.CommentID == metricComment.CommentID
                     select r).FirstOrDefault();

            if (g == null)
            {
                if (metricComment.MetricTypes == null)
                {
                    metricComment.MetricTypes = db.MetricTypes
                                                .Where(x => metricComment.MetricTypeIDs.Contains(x.MetricID)).ToList();
                }
                try
                {
                    db.MetricComments.Add(metricComment);
                    db.SaveChanges();
                }
                catch (DbEntityValidationException e)
                {
                    var repository =
                        ApplicationEventRepositoryFactory.Create();
                    var errorMessage = string.Empty;
                    foreach (var eve in e.EntityValidationErrors)
                    {
                        foreach (var ve in eve.ValidationErrors)
                        {
                            errorMessage += " Property:" + ve.PropertyName + " Error:" + ve.ErrorMessage;
                        }
                    }
                    repository.QuickAdd("Moe.Common", "MetricCommentRepository", "Add",
                                        ApplicationEvent.SeverityLevels.Medium, errorMessage);
                    throw new Exception(errorMessage);
                }
                catch (Exception ex)
                {
                    var repository =
                        ApplicationEventRepositoryFactory.Create();
                    repository.QuickAdd("Moe.Common", "MetricCommentRepository", "Add",
                                        ApplicationEvent.SeverityLevels.Medium, ex.Message);
                    throw;
                }
            }
            else
            {
                AddOrUpdate(metricComment);
            }
        }
コード例 #24
0
 public List <Controller_Event_Log> GetEventsByEventCodesParamDateTimeRange(string signalId,
                                                                            DateTime startTime, DateTime endTime, int startHour, int startMinute, int endHour, int endMinute,
                                                                            List <int> eventCodes, int param)
 {
     try
     {
         var events = (from s in _db.Controller_Event_Log
                       where s.SignalID == signalId &&
                       s.Timestamp >= startTime &&
                       s.Timestamp <= endTime &&
                       (s.Timestamp.Hour > startHour && s.Timestamp.Hour < endHour ||
                        s.Timestamp.Hour == startHour && s.Timestamp.Hour == endHour &&
                        s.Timestamp.Minute >= startMinute && s.Timestamp.Minute <= endMinute ||
                        s.Timestamp.Hour == startHour && s.Timestamp.Hour < endHour &&
                        s.Timestamp.Minute >= startMinute ||
                        s.Timestamp.Hour < startHour && s.Timestamp.Hour == endHour &&
                        s.Timestamp.Minute <= endMinute)
                       &&
                       s.EventParam == param &&
                       eventCodes.Contains(s.EventCode)
                       select s).ToList();
         events.Sort((x, y) => DateTime.Compare(x.Timestamp, y.Timestamp));
         return(events);
     }
     catch (Exception ex)
     {
         var logRepository =
             ApplicationEventRepositoryFactory.Create();
         var e = new ApplicationEvent();
         e.ApplicationName = "MOE.Common";
         e.Class           = GetType().ToString();
         e.Function        = "GetSignalEventsByEventCodesParamDateTimeRange";
         e.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
         e.Timestamp       = DateTime.Now;
         e.Description     = ex.Message;
         logRepository.Add(e);
         throw;
     }
 }
コード例 #25
0
 public List <Controller_Event_Log> GetTopEventsAfterDateByEventCodesParam(string signalId,
                                                                           DateTime timestamp, List <int> eventCodes, int param, int top)
 {
     try
     {
         var events = _db.Controller_Event_Log.Where(c =>
                                                     c.SignalID == signalId &&
                                                     c.Timestamp > timestamp &&
                                                     c.EventParam == param &&
                                                     eventCodes.Contains(c.EventCode))
                      .OrderBy(s => s.Timestamp)
                      .Take(top).ToList();
         return(events);
     }
     catch (Exception e)
     {
         var errorLog = ApplicationEventRepositoryFactory.Create();
         errorLog.QuickAdd(Assembly.GetExecutingAssembly().FullName,
                           GetType().DisplayName(), e.TargetSite.ToString(), ApplicationEvent.SeverityLevels.Low, e.Message);
         return(null);
     }
 }
コード例 #26
0
ファイル: RouteRepository.cs プロジェクト: gmonk/ATSPM
        public void Add(Route newRoute)
        {
            try
            {
                db.Routes.Add(newRoute);
                db.SaveChanges();
            }

            catch (Exception ex)
            {
                var repository =
                    ApplicationEventRepositoryFactory.Create();
                var error = new ApplicationEvent();
                error.ApplicationName = "MOE.Common";
                error.Class           = "Models.Repository.ApproachRouteRepository";
                error.Function        = "Add";
                error.Description     = ex.Message;
                error.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
                error.Timestamp       = DateTime.Now;
                repository.Add(error);
                throw;
            }
        }
コード例 #27
0
 public bool CheckForRecords(string signalId, DateTime startTime, DateTime endTime)
 {
     try
     {
         return(_db.Controller_Event_Log.Any(r => r.SignalID == signalId &&
                                             r.Timestamp >= startTime &&
                                             r.Timestamp < endTime));
     }
     catch (Exception ex)
     {
         var logRepository =
             ApplicationEventRepositoryFactory.Create();
         var e = new ApplicationEvent();
         e.ApplicationName = "MOE.Common";
         e.Class           = GetType().ToString();
         e.Function        = "CheckForRecords";
         e.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
         e.Timestamp       = DateTime.Now;
         e.Description     = ex.Message;
         logRepository.Add(e);
         throw;
     }
 }
コード例 #28
0
        public void Update(Detector detector)
        {
            var g = (from r in _db.Detectors
                     where r.ID == detector.ID
                     select r).FirstOrDefault();

            if (g != null)
            {
                foreach (var i in detector.DetectionTypeIDs)
                {
                    var t = (from r in _db.DetectionTypes
                             where r.DetectionTypeID == i
                             select r).FirstOrDefault();

                    detector.DetectionTypes.Add(t);
                }
                try
                {
                    _db.Entry(g).CurrentValues.SetValues(detector);
                    _db.SaveChanges();
                }
                catch (Exception ex)
                {
                    var repository =
                        ApplicationEventRepositoryFactory.Create();
                    var error = new ApplicationEvent();
                    error.ApplicationName = "MOE.Common";
                    error.Class           = "Models.Repository.DetectorRepository";
                    error.Function        = "Update";
                    error.Description     = ex.Message;
                    error.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
                    error.Timestamp       = DateTime.Now;
                    repository.Add(error);
                    throw;
                }
            }
        }
コード例 #29
0
ファイル: RouteSignalRepository.cs プロジェクト: gmonk/ATSPM
        public List <RouteSignal> GetByRouteID(int routeID)
        {
            var routes = (from r in db.RouteSignals
                          where r.RouteId == routeID
                          select r).ToList();

            if (routes.Count > 0)
            {
                return(routes);
            }
            {
                var repository =
                    ApplicationEventRepositoryFactory.Create();
                var error = new ApplicationEvent();
                error.ApplicationName = "MOE.Common";
                error.Class           = "Models.Repository.ApproachRouteDetailsRepository";
                error.Function        = "GetByRouteID";
                error.Description     = "No Route for ID.  Attempted ID# = " + routeID;
                error.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
                error.Timestamp       = DateTime.Now;
                repository.Add(error);
                throw new Exception("There is no ApproachRouteDetail for this ID");
            }
        }
コード例 #30
0
 public List <Controller_Event_Log> GetEventsByEventCodesParamWithOffsetAndLatencyCorrection(string signalId,
                                                                                             DateTime startTime, DateTime endTime, List <int> eventCodes, int param, double offset,
                                                                                             double latencyCorrection)
 {
     try
     {
         var events = (from s in _db.Controller_Event_Log
                       where s.SignalID == signalId &&
                       s.Timestamp >= startTime &&
                       s.Timestamp <= endTime &&
                       s.EventParam == param &&
                       eventCodes.Contains(s.EventCode)
                       select s).ToList();
         events.Sort((x, y) => DateTime.Compare(x.Timestamp, y.Timestamp));
         foreach (var cel in events)
         {
             cel.Timestamp = cel.Timestamp.AddMilliseconds(offset);
             cel.Timestamp = cel.Timestamp.AddSeconds(0 - latencyCorrection);
         }
         return(events);
     }
     catch (Exception ex)
     {
         var logRepository =
             ApplicationEventRepositoryFactory.Create();
         var e = new ApplicationEvent();
         e.ApplicationName = "MOE.Common";
         e.Class           = GetType().ToString();
         e.Function        = "GetEventsByEventCodesParamWithOffsetAndLatencyCorrection";
         e.SeverityLevel   = ApplicationEvent.SeverityLevels.High;
         e.Timestamp       = DateTime.Now;
         e.Description     = ex.Message;
         logRepository.Add(e);
         throw;
     }
 }