/// <summary> /// Gets all the signals based on the region /// </summary> /// <param name="region"></param> /// <returns>Data.Signals.MasterDataTable</returns> public static List <Models.Signal> GetSignals() { MOE.Common.Models.SPM db = new Models.SPM(); var table = (from r in db.Signals select r).ToList(); return(table); }
static public MOE.Common.Models.Controller_Event_Log GetEventBeforeEvent(string signalID, int phase, DateTime startDate) { Models.SPM db = new Models.SPM(); DateTime endDate = startDate.AddHours(-12); var eventRecord = (from s in db.Controller_Event_Log orderby s.Timestamp descending where s.SignalID == signalID && s.EventParam == phase && s.Timestamp <= startDate && s.Timestamp >= endDate select s ).DefaultIfEmpty(null).First(); return(eventRecord); }
static public List <int> GetPedPhases(string signalID, DateTime startDate, DateTime endDate) { Models.SPM db = new Models.SPM(); List <int> pedEventCodes = new List <int> { 21, 45, 90, 23 }; var events = (from s in db.Controller_Event_Log where s.SignalID == signalID && s.Timestamp >= startDate && s.Timestamp <= endDate && pedEventCodes.Contains(s.EventCode) select s.EventParam).Distinct(); return(events.ToList <int>()); }
public void GetRecords() { MOE.Common.Data.SignalsTableAdapters.SignalsTableAdapter sta = new Data.SignalsTableAdapters.SignalsTableAdapter(); SignalsTable = sta.GetData(); MOE.Common.Data.SignalsTableAdapters.Graph_DetectorsTableAdapter gta = new Data.SignalsTableAdapters.Graph_DetectorsTableAdapter(); DetectorsTable = gta.GetData(); MOE.Common.Data.SignalsTableAdapters.SPM_CommentTableAdapter cta = new Data.SignalsTableAdapters.SPM_CommentTableAdapter(); CommentsTable = cta.GetAllData(); MOE.Common.Data.SignalsTableAdapters.ApproachRouteDetailTableAdapter rta = new Data.SignalsTableAdapters.ApproachRouteDetailTableAdapter(); RouteDetailTable = rta.GetData(); db = new Models.SPM(); }
public void GetRecords() { Console.WriteLine("Getting records from old database tables."); MOE.Common.Data.SignalsTableAdapters.SignalsTableAdapter sta = new Data.SignalsTableAdapters.SignalsTableAdapter(); SignalsTable = sta.GetData(); MOE.Common.Data.SignalsTableAdapters.Graph_DetectorsTableAdapter gta = new Data.SignalsTableAdapters.Graph_DetectorsTableAdapter(); DetectorsTable = gta.GetData(); MOE.Common.Data.SignalsTableAdapters.SPM_CommentTableAdapter cta = new Data.SignalsTableAdapters.SPM_CommentTableAdapter(); CommentsTable = cta.GetAllData(); MOE.Common.Data.SignalsTableAdapters.ApproachRouteDetailTableAdapter rta = new Data.SignalsTableAdapters.ApproachRouteDetailTableAdapter(); RouteDetailTable = rta.GetData(); MOE.Common.Data.SignalsTableAdapters.ApproachRouteTableAdapter arAdapter = new Data.SignalsTableAdapters.ApproachRouteTableAdapter(); RouteTable = arAdapter.GetData(); MOE.Common.Data.ActionTableAdapters.ActionLog_DisabledTableAdapter alta = new Data.ActionTableAdapters.ActionLog_DisabledTableAdapter(); ActionLogTable = alta.GetData(); MOE.Common.Data.ActionTableAdapters.Metric_ListTableAdapter mta = new Data.ActionTableAdapters.Metric_ListTableAdapter(); MetricList = mta.GetData(); MOE.Common.Data.ActionTableAdapters.AgenciesTableAdapter ata = new MOE.Common.Data.ActionTableAdapters.AgenciesTableAdapter(); ActionAgencies = ata.GetData(); MOE.Common.Data.ActionTableAdapters.Action_Log_MetricsTableAdapter almt = new Data.ActionTableAdapters.Action_Log_MetricsTableAdapter(); ActionLogMetrics = almt.GetData(); MOE.Common.Data.ActionTableAdapters.ActionsListTableAdapter actionsTA = new Data.ActionTableAdapters.ActionsListTableAdapter(); ActionsList = actionsTA.GetData(); MOE.Common.Data.ActionTableAdapters.Action_Log_ActionsTableAdapter actionlogactionsta = new Data.ActionTableAdapters.Action_Log_ActionsTableAdapter(); ActionLogActions = actionlogactionsta.GetData(); MOE.Common.Data.SettingsTableAdapters.MOE_UsersTableAdapter usersTA = new MOE.Common.Data.SettingsTableAdapters.MOE_UsersTableAdapter(); OldUsersTable = usersTA.GetData(); db = new Models.SPM(); }
public void FillforPreempt(string signalID, DateTime startDate, DateTime endDate) { List <int> Codes = new List <int>(); for (int i = 101; i <= 111; i++) { Codes.Add(i); } Models.SPM db = new Models.SPM(); var events = (from s in db.Controller_Event_Log where s.SignalID == signalID && s.Timestamp >= startDate && s.Timestamp <= endDate && Codes.Contains(s.EventCode) select s).ToList(); this.Events.AddRange(events); OrderEventsBytimestamp(); }
static public DateTime GetMostRecentRecordTimestamp(string signalID) { Models.SPM db = new Models.SPM(); DateTime twoDaysAgo = DateTime.Now.AddDays(-2); MOE.Common.Models.Controller_Event_Log row = (from r in db.Controller_Event_Log where r.SignalID == signalID && r.Timestamp > twoDaysAgo orderby r.Timestamp descending select r).Take(1).FirstOrDefault(); if (row != null) { return(row.Timestamp); } else { return(twoDaysAgo); } }
static public int GetPreviousPlan(string signalID, DateTime startDate) { Models.SPM db = new Models.SPM(); DateTime endDate = startDate.AddHours(-12); var planRecord = from r in db.Controller_Event_Log where r.SignalID == signalID && r.Timestamp >= endDate && r.Timestamp <= startDate && r.EventCode == 131 select r; if (planRecord.Count() > 0) { return(planRecord.OrderByDescending(s => s.Timestamp).FirstOrDefault().EventParam); } else { return(0); } }
public void SetActionLogRepository(Models.SPM context) { db = context; }
public void SetAgencyRepository(Models.SPM context) { db = context; }
public ActionRepository(Models.SPM context) { db = context; }
/// <summary> /// Creates a list of LinkPivotPair objects and exposes a LinkPivotAdjustment Table /// </summary> /// <param name="routeId"></param> /// <param name="startDate"></param> /// <param name="endDate"></param> /// <param name="cycleTime"></param> /// <param name="chartLocation"></param> /// <param name="direction"></param> /// <param name="bias"></param> /// <param name="biasDirection"></param> /// <param name="days"></param> public LinkPivot(int routeId, DateTime startDate, DateTime endDate, int cycleTime, string chartLocation, string direction, double bias, string biasDirection, List <DayOfWeek> days) { MOE.Common.Models.SPM db = new Models.SPM(); var _ApproachRouteDetail = (from ard in db.ApproachRouteDetails .Include("Approach") where ard.ApproachRouteId == routeId orderby ard.ApproachOrder select ard).ToList(); // Get a list of dates that matches the parameters passed by the user dates = GetDates(startDate, endDate, days); //Make a list of numbers to use as indices to perform parallelism List <int> indices = new List <int>(); if (direction == "Upstream") { for (int i = _ApproachRouteDetail.Count - 1; i > 0; i--) { indices.Add(i); } //Parallel.ForEach(indices, i => foreach (int i in indices) { pairedApproaches.Add(new LinkPivotPair(_ApproachRouteDetail[i].Approach.SignalID, GetOppositeDirection(_ApproachRouteDetail[i].Approach.DirectionType), _ApproachRouteDetail[i].Approach.Signal.PrimaryName + " " + _ApproachRouteDetail[i].Approach.Signal.SecondaryName, _ApproachRouteDetail[i - 1].Approach.SignalID, GetOppositeDirection(_ApproachRouteDetail[i - 1].Approach.DirectionType), _ApproachRouteDetail[i - 1].Approach.Signal.PrimaryName + " " + _ApproachRouteDetail[i - 1].Approach.Signal.SecondaryName, startDate, endDate, cycleTime, chartLocation, bias, biasDirection, dates, i + 1)); } //); } else { for (int i = 0; i < _ApproachRouteDetail.Count - 1; i++) { indices.Add(i); } //Parallel.ForEach(indices, i => foreach (int i in indices) { pairedApproaches.Add(new LinkPivotPair(_ApproachRouteDetail[i].Approach.SignalID, _ApproachRouteDetail[i].Approach.DirectionType.Description, _ApproachRouteDetail[i].Approach.Signal.PrimaryName + " " + _ApproachRouteDetail[i].Approach.Signal.SecondaryName, _ApproachRouteDetail[i + 1].Approach.SignalID, _ApproachRouteDetail[i + 1].Approach.DirectionType.Description, _ApproachRouteDetail[i + 1].Approach.Signal.PrimaryName + " " + _ApproachRouteDetail[i + 1].Approach.Signal.SecondaryName, startDate, endDate, cycleTime, chartLocation, bias, biasDirection, dates, i + 1)); } //); } ////If the user has selected the end of the list create a reverse sort the LinkPivotPair list ////otherwise build the list as ordered in the database //if (direction == "Upstream") //{ // //build a reverse sort LinkPivotPair list // for (int i = detailTable.Rows.Count-1; i > 0; i--) // { // pairedApproaches.Add(new LinkPivotPair(detailTable[i].SignalID, detailTable[i].Direction, // detailTable[i].Location, detailTable[i - 1].SignalID, detailTable[i - 1].Direction, // detailTable[i - 1].Location, startDate, endDate, cycleTime, chartLocation, bias, biasDirection, dates)); // } //} //else //{ // //build a LinkPivotPair list as ordered in the database // for (int i = 0; i < detailTable.Rows.Count - 1; i++) // { // pairedApproaches.Add(new LinkPivotPair(detailTable[i].SignalID, detailTable[i].Direction, // detailTable[i].Location, detailTable[i + 1].SignalID, detailTable[i + 1].Direction, // detailTable[i + 1].Location, startDate, endDate, cycleTime, chartLocation, bias, biasDirection, dates)); // } //} //Cycle through the LinkPivotPair list and add the statistics to the LinkPivotadjustmentTable foreach (int i in indices) { //Make sure the list is in the correct order after parrallel processing var lpps = from pair in pairedApproaches where pair.SignalId == _ApproachRouteDetail[i].Approach.SignalID select pair; foreach (var lpp in lpps) { adjustment.AddLinkPivotAdjustmentRow(lpp.SignalId, Convert.ToInt32(lpp.SecondsAdded), 0, lpp.PAOGUpstreamBefore, lpp.PAOGDownstreamBefore, lpp.AOGUpstreamBefore, lpp.AOGDownstreamBefore, lpp.PAOGUpstreamPredicted, lpp.PAOGDownstreamPredicted, lpp.AOGUpstreamPredicted, lpp.AOGDownstreamPredicted, lpp.Location, lpp.DownSignalId, lpp.DownstreamApproachDirection, lpp.UpstreamApproachDirection, lpp.ResultChartLocation, lpp.DownstreamLocation, lpp.AOGTotalBefore, lpp.PAOGTotalBefore, lpp.AOGTotalPredicted, lpp.PAOGTotalPredicted, lpp.LinkNumber, lpp.TotalVolumeDownstream, lpp.TotalVolumeUpstream); } } //Set the end row to have zero for the ajustments. No adjustment can be made because //downstream is unknown. The end row is determined by the starting point seleceted by the user if (direction == "Upstream") { //End row for upstream is index 0 adjustment.AddLinkPivotAdjustmentRow(_ApproachRouteDetail[0].Approach.SignalID, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _ApproachRouteDetail[0].Approach.Signal.PrimaryName + " " + _ApproachRouteDetail[0].Approach.Signal.SecondaryName, "", "", "", "", "", 0, 0, 0, 0, 1, 0, 0); } else { //End row for downstream is last row in the detail table adjustment.AddLinkPivotAdjustmentRow(_ApproachRouteDetail[_ApproachRouteDetail.Count - 1].Approach.SignalID, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _ApproachRouteDetail[_ApproachRouteDetail.Count - 1].Approach.Signal.PrimaryName + " " + _ApproachRouteDetail[_ApproachRouteDetail.Count - 1].Approach.Signal.SecondaryName, "", "", "", "", "", 0, 0, 0, 0, _ApproachRouteDetail.Count, 0, 0); } int cumulativeChange = 0; //Determine the adjustment by adding the previous rows adjustment to the current rows delta for (int i = adjustment.Count - 1; i >= 0; i--) { //if the new adjustment is greater than the cycle time than the adjustment should subtract // the cycle time from the current adjustment and the result should be the new adjustment if (cumulativeChange + adjustment[i].Delta > cycleTime) { adjustment[i].Adjustment = cumulativeChange + adjustment[i].Delta - cycleTime; cumulativeChange = cumulativeChange + adjustment[i].Delta - cycleTime; } else { adjustment[i].Adjustment = cumulativeChange + adjustment[i].Delta; cumulativeChange = cumulativeChange + adjustment[i].Delta; } } }
public void SetApplicationSettingsRepository(Models.SPM context) { db = context; }