private void SetLaneGroupValues(Models.Approach Appr, Models.LaneGroup lg, DetectorConverter dc, int movementID, int lanetypeID) { Models.MovementType mt = (from r in db.MovementTypes where r.MovementTypeID == movementID select r).FirstOrDefault(); lg.Description = Appr.Description + mt.Abbreviation; lg.MovementTypeID = movementID; lg.LaneGroupTypeID = lanetypeID; lg.ProtectedPhaseNumber = dc.ProtectedPhase; lg.IsProtectedPhaseOverlap = dc.IsOverlap; if (dc.PermissivePhase > 0) { lg.PermissivePhaseNumber = dc.PermissivePhase; lg.IsPermissivePhaseOverlap = false; } }
public void GetDetectorList() { //DetectorsList = new List<Models.Graph_Detectors>(); DetectorConverters = new List <DetectorConverter>(); foreach (MOE.Common.Data.Signals.Graph_DetectorsRow row in DetectorsTable) { List <MOE.Common.Models.DetectionType> detectionstypeslist = (from r in db.DetectionTypes select r).ToList(); if (!row.IsNull("Phase") || row.Phase != "0" || row.Phase != "" || row.Det_Channel != 0) { DetectorConverter dc = new DetectorConverter(); Models.Graph_Detectors d = new Models.Graph_Detectors(); if (!row.IsNull("Date_Added")) { d.Date_Added = row.Date_Added; } else { d.Date_Added = DateTime.Now; } d.Det_Channel = row.Det_Channel; d.DetectorID = row.DetectorID; if (!row.IsNull("DistanceFromStopBar")) { d.DistanceFromStopBar = row.DistanceFromStopBar; } else { d.DistanceFromStopBar = 0; } if (!row.IsNull("Min_Speed_Filter")) { d.Min_Speed_Filter = row.Min_Speed_Filter; } else { d.Min_Speed_Filter = 0; } if (d.DetectionTypes == null && d.DetectionTypeIDs == null) { d.DetectionTypeIDs = new List <int>(); d.DetectionTypes = new List <MOE.Common.Models.DetectionType>(); //MOE.Common.Models.DetectionType basicdettype = (from r in detectionstypeslist // where r.DetectionTypeID == 1 // select r).FirstOrDefault(); //d.DetectionTypes.Add(basicdettype); //d.DetectionTypeIDs.Add(basicdettype.DetectionTypeID); } if (!row.IsNull("Has_PCD") && row.Has_PCD) { MOE.Common.Models.DetectionType dettype = (from r in detectionstypeslist where r.DetectionTypeID == 2 select r).FirstOrDefault(); d.DetectionTypes.Add(dettype); d.DetectionTypeIDs.Add(dettype.DetectionTypeID); } if (!row.IsNull("Has_Speed_Detector") && row.Has_Speed_Detector) { MOE.Common.Models.DetectionType dettype = (from r in detectionstypeslist where r.DetectionTypeID == 3 select r).FirstOrDefault(); d.DetectionTypes.Add(dettype); d.DetectionTypeIDs.Add(dettype.DetectionTypeID); } if (!row.IsNull("Has_SplitFail") && row.Has_SplitFail) { MOE.Common.Models.DetectionType dettype = (from r in detectionstypeslist where r.DetectionTypeID == 4 select r).FirstOrDefault(); d.DetectionTypes.Add(dettype); d.DetectionTypeIDs.Add(dettype.DetectionTypeID); } if (!row.IsNull("Has_RLM") && row.Has_RLM) { MOE.Common.Models.DetectionType dettype = (from r in detectionstypeslist where r.DetectionTypeID == 5 select r).FirstOrDefault(); d.DetectionTypes.Add(dettype); d.DetectionTypeIDs.Add(dettype.DetectionTypeID); } if (!row.IsNull("Has_TMC") && row.Has_TMC) { MOE.Common.Models.DetectionType dettype = (from r in detectionstypeslist where r.DetectionTypeID == 6 select r).FirstOrDefault(); d.DetectionTypes.Add(dettype); d.DetectionTypeIDs.Add(dettype.DetectionTypeID); } if (!row.IsNull("Direction") && row.Direction.ToString() != "") { switch (row.Direction.ToString()) { case "Northbound": dc.DirectionTypeID = 1; break; case "Southbound": dc.DirectionTypeID = 2; break; case "Eastbound": dc.DirectionTypeID = 3; break; case "Westbound": dc.DirectionTypeID = 4; break; } } if (!row.IsNull("Movement_Delay")) { dc.MovementDelay = row.Movement_Delay; } else { dc.MovementDelay = 0; } if (!row.IsNull("MPH")) { dc.MPH = row.MPH; } else { dc.MPH = 0; } if (!row.IsNull("TMC_Lane_Type") && row.TMC_Lane_Type != "") { switch (row.TMC_Lane_Type) { case "L1": dc.LaneNumber = 1; dc.LaneTypeID = 1; dc.MovementTypeID = 3; break; case "L2": dc.LaneNumber = 2; dc.LaneTypeID = 1; dc.MovementTypeID = 3; break; case "L3": dc.LaneNumber = 3; dc.LaneTypeID = 1; dc.MovementTypeID = 3; break; case "L4": dc.LaneNumber = 4; dc.LaneTypeID = 1; dc.MovementTypeID = 3; break; case "R1": dc.LaneNumber = 1; dc.LaneTypeID = 1; dc.MovementTypeID = 2; break; case "R2": dc.LaneNumber = 2; dc.LaneTypeID = 1; dc.MovementTypeID = 2; break; case "R3": dc.LaneNumber = 3; dc.LaneTypeID = 1; dc.MovementTypeID = 2; break; case "R4": dc.LaneNumber = 4; dc.LaneTypeID = 1; dc.MovementTypeID = 2; break; case "T1": dc.LaneNumber = 1; dc.LaneTypeID = 1; dc.MovementTypeID = 1; break; case "T2": dc.LaneNumber = 2; dc.LaneTypeID = 1; dc.MovementTypeID = 1; break; case "T3": dc.LaneNumber = 3; dc.LaneTypeID = 1; dc.MovementTypeID = 1; break; case "T4": dc.LaneNumber = 4; dc.LaneTypeID = 1; dc.MovementTypeID = 1; break; case "TL1": dc.LaneNumber = 1; dc.LaneTypeID = 1; dc.MovementTypeID = 5; break; case "TR1": dc.LaneNumber = 1; dc.LaneTypeID = 1; dc.MovementTypeID = 4; break; case "T1E": dc.LaneNumber = 1; dc.LaneTypeID = 4; dc.MovementTypeID = 1; break; case "T2E": dc.LaneNumber = 2; dc.LaneTypeID = 4; dc.MovementTypeID = 1; break; case "T3E": dc.LaneNumber = 3; dc.LaneTypeID = 4; dc.MovementTypeID = 1; break; case "T4E": dc.LaneNumber = 4; dc.LaneTypeID = 4; dc.MovementTypeID = 1; break; case "L1B": dc.LaneNumber = 1; dc.LaneTypeID = 2; dc.MovementTypeID = 3; break; case "T1B": dc.LaneNumber = 1; dc.LaneTypeID = 2; dc.MovementTypeID = 1; break; case "R1B": dc.LaneNumber = 1; dc.LaneTypeID = 2; dc.MovementTypeID = 2; break; case "PED": dc.LaneNumber = 1; dc.LaneTypeID = 3; dc.MovementTypeID = 1; break; } } else { dc.LaneNumber = 1; dc.LaneTypeID = 1; dc.MovementTypeID = 1; } if (dc.LaneNumber == 0) { dc.LaneNumber = 1; } if (dc.LaneTypeID == 0) { dc.LaneTypeID = 1; } if (dc.MovementTypeID == 0) { dc.MovementTypeID = 1; } if (!row.IsNull("Perm_Phase") && row.Perm_Phase != "0" && row.Perm_Phase != "") { dc.PermissivePhase = Convert.ToInt32(row.Phase); } if (!row.IsNull("Is_Overlap") && row.Is_Overlap) { dc.IsOverlap = row.Is_Overlap; } dc.ProtectedPhase = Convert.ToInt32(row.Phase); dc.GraphDetectorModel = d; dc.SignalID = row.SignalID; DetectorConverters.Add(dc); } } }