private Models.Approach CreateNewApproach(Data.Signals.Graph_DetectorsRow row, List <Models.DirectionType> directions) { MOE.Common.Models.Approach newApproach = new Models.Approach(); newApproach.SignalID = row.SignalID; newApproach.ProtectedPhaseNumber = Convert.ToInt32(row.Phase); newApproach.DirectionType = directions.Where(d => d.Description == row.Direction).First(); if (Convert.ToInt32(row.Phase) == 0) { newApproach.Description = newApproach.DirectionType.Description + " (Phase Only)"; } else { newApproach.Description = newApproach.DirectionType.Description + " Phase " + newApproach.ProtectedPhaseNumber.ToString(); } if (row.MPH > 0) { newApproach.MPH = row.MPH; } newApproach.IsProtectedPhaseOverlap = row.Is_Overlap; if (Convert.ToInt32(row.Perm_Phase) > 0) { newApproach.PermissivePhaseNumber = Convert.ToInt32(row.Perm_Phase); } return(newApproach); }
private Models.Detector CreateNewDetector(Data.Signals.Graph_DetectorsRow row, List <Models.DetectionType> detectionstypeslist) { Models.Detector detector = new Models.Detector(); detector.DetectorID = row.DetectorID; detector.DetChannel = row.Det_Channel; if (!row.IsNull("Date_Added")) { detector.DateAdded = row.Date_Added; } else { detector.DateAdded = DateTime.Now; } if (detector.DetectionTypes == null && detector.DetectionTypeIDs == null) { detector.DetectionTypeIDs = new List <int>(); detector.DetectionTypes = new List <MOE.Common.Models.DetectionType>(); } GetDetectionTypes(row, detector, detectionstypeslist); if (row.DistanceFromStopBar > 0) { detector.DistanceFromStopBar = row.DistanceFromStopBar; } if (row.Min_Speed_Filter > 0) { detector.MinSpeedFilter = row.Min_Speed_Filter; } if (!String.IsNullOrEmpty(row.Lane) && (String.Compare(row.Lane.ToUpper(), "NULL") != 0)) { detector.LaneNumber = Convert.ToInt32(row.Lane); } if (row.Decision_Point > 0) { detector.DecisionPoint = row.Decision_Point; } if (row.Movement_Delay > 0) { detector.MovementDelay = row.Movement_Delay; } if (!String.IsNullOrEmpty(row.Comments)) { Models.DetectorComment comment = new Models.DetectorComment(); comment.CommentText = row.Comments; comment.TimeStamp = DateTime.Now; detector.DetectorComments = new List <Models.DetectorComment>(); detector.DetectorComments.Add(comment); } if (row.TMC_Lane_Type != null) { SetLaneInfo(row, detector); } return(detector); }
private void GetDetectionTypes(Data.Signals.Graph_DetectorsRow row, Models.Detector detector, List <Models.DetectionType> detectionstypeslist) { GetDetectionType(row.Has_PCD, 2, detector, detectionstypeslist); GetDetectionType(row.Has_Speed_Detector, 3, detector, detectionstypeslist); GetDetectionType(row.Has_SplitFail, 6, detector, detectionstypeslist); GetDetectionType(row.Has_RLM, 5, detector, detectionstypeslist); GetDetectionType(row.Has_TMC, 4, detector, detectionstypeslist); }
private void SetLaneInfo(Data.Signals.Graph_DetectorsRow row, Models.Detector detector) { switch (row.TMC_Lane_Type) { case "L1": detector.LaneNumber = 1; detector.LaneTypeID = 1; detector.MovementTypeID = 3; break; case "L2": detector.LaneNumber = 2; detector.LaneTypeID = 1; detector.MovementTypeID = 3; break; case "L3": detector.LaneNumber = 3; detector.LaneTypeID = 1; detector.MovementTypeID = 3; break; case "L4": detector.LaneNumber = 4; detector.LaneTypeID = 1; detector.MovementTypeID = 3; break; case "R1": detector.LaneNumber = 1; detector.LaneTypeID = 1; detector.MovementTypeID = 2; break; case "R2": detector.LaneNumber = 2; detector.LaneTypeID = 1; detector.MovementTypeID = 2; break; case "R3": detector.LaneNumber = 3; detector.LaneTypeID = 1; detector.MovementTypeID = 2; break; case "R4": detector.LaneNumber = 4; detector.LaneTypeID = 1; detector.MovementTypeID = 2; break; case "T1": detector.LaneNumber = 1; detector.LaneTypeID = 1; detector.MovementTypeID = 1; break; case "T2": detector.LaneNumber = 2; detector.LaneTypeID = 1; detector.MovementTypeID = 1; break; case "T3": detector.LaneNumber = 3; detector.LaneTypeID = 1; detector.MovementTypeID = 1; break; case "T4": detector.LaneNumber = 4; detector.LaneTypeID = 1; detector.MovementTypeID = 1; break; case "TL1": detector.LaneNumber = 1; detector.LaneTypeID = 1; detector.MovementTypeID = 5; break; case "TR1": detector.LaneNumber = 1; detector.LaneTypeID = 1; detector.MovementTypeID = 4; break; case "T1E": detector.LaneNumber = 1; detector.LaneTypeID = 4; detector.MovementTypeID = 1; break; case "T2E": detector.LaneNumber = 2; detector.LaneTypeID = 4; detector.MovementTypeID = 1; break; case "T3E": detector.LaneNumber = 3; detector.LaneTypeID = 4; detector.MovementTypeID = 1; break; case "T4E": detector.LaneNumber = 4; detector.LaneTypeID = 4; detector.MovementTypeID = 1; break; case "L1B": detector.LaneNumber = 1; detector.LaneTypeID = 2; detector.MovementTypeID = 3; break; case "T1B": detector.LaneNumber = 1; detector.LaneTypeID = 2; detector.MovementTypeID = 1; break; case "R1B": detector.LaneNumber = 1; detector.LaneTypeID = 2; detector.MovementTypeID = 2; break; case "PED": detector.LaneNumber = 1; detector.LaneTypeID = 3; detector.MovementTypeID = 1; break; } if (detector.LaneNumber == null) { if (!String.IsNullOrEmpty(row.Lane) && (String.Compare(row.Lane.ToUpper(), "NULL") != 0)) { detector.LaneNumber = Convert.ToInt32(row.Lane); detector.LaneTypeID = 1; detector.MovementTypeID = 1; } if (detector.LaneNumber == null) { detector.LaneNumber = 1; detector.LaneTypeID = 1; detector.MovementTypeID = 1; } } }