private void BuildInputData() { i = 0; using (OleDbConnection conn = GetConnection.BIPSConn) { using (OleDbCommand cmd = new OleDbCommand(SQLCommands.GetInputSQL(inputTable, scenario), conn)) { using (OleDbDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { OutputData outputData = new OutputData(); outputData.OHUB = reader.IsDBNull((int)InputColumns.OHUB) ? "" : reader.GetString((int)InputColumns.OHUB); outputData.HubMiles = reader.IsDBNull((int)InputColumns.HUB_MILES) ? 0 : reader.GetInt32((int)InputColumns.HUB_MILES); outputData.LaneEmptyVol = reader.IsDBNull((int)InputColumns.MT_VOLUME) ? 0 : reader.GetInt32((int)InputColumns.MT_VOLUME); outputData.AvailableBidVol = reader.IsDBNull((int)InputColumns.AVL_BID_VOL) ? 0 : reader.GetInt32((int)InputColumns.AVL_BID_VOL); outputData.IMLaneRank = reader.IsDBNull((int)InputColumns.IMD_RANK) ? 0 : reader.GetInt32((int)InputColumns.IMD_RANK); outputData.LaneRevenue = reader.IsDBNull((int)InputColumns.LANE_REVENUE) ? 0 : (double)reader.GetDecimal((int)InputColumns.LANE_REVENUE); outputData.LaneCost = reader.IsDBNull((int)InputColumns.LANE_COST) ? 0 : (double)reader.GetDecimal((int)InputColumns.LANE_COST); outputData.LaneProfit = outputData.LaneRevenue - outputData.LaneCost; outputData.LaneWeeklyTrailerTurns = reader.IsDBNull((int)InputColumns.WEEKLY_TURNS) ? 0 : (double)reader.GetDecimal((int)InputColumns.WEEKLY_TURNS); outputData.LaneMinVol = reader.IsDBNull((int)InputColumns.MODEL_MIN) ? 0 : reader.GetInt32((int)InputColumns.MODEL_MIN); outputData.LaneMaxVol = reader.IsDBNull((int)InputColumns.MODEL_MIN) ? 0 : reader.GetInt32((int)InputColumns.MODEL_MIN); outputData.TotalBidVol = reader.IsDBNull((int)InputColumns.TTL_BID_VOL) ? 0 : reader.GetInt32((int)InputColumns.TTL_BID_VOL); outputData.LaneID = i; outputData.ScenarioID = scenario; outputData.DHUB = reader.IsDBNull((int)InputColumns.DHUB) ? "" : reader.GetString((int)InputColumns.DHUB); LoadedMoves[i] = theModel.NumVar(0, outputData.AvailableBidVol, NumVarType.Float, "LM_" + outputData.Lane); outputData.LoadedMoves = LoadedMoves[i]; EmptyMoves[i] = theModel.NumVar(0, outputData.LaneEmptyVol, NumVarType.Float, "EM_" + outputData.Lane); outputData.EmptyMoves = EmptyMoves[i]; theData.AddModelData(i, outputData); LaneRevenue[i] = outputData.LaneRevenue; LaneCost[i] = outputData.LaneCost; TrailerTurns[i] = outputData.LaneWeeklyTrailerTurns; LaneMargin[i] = LaneRevenue[i] - LaneCost[i]; i++; } } } using (OleDbCommand cmd = new OleDbCommand(SQLCommands.GetHubListSQL(inputTable, scenario), conn)) { using (OleDbDataReader reader = cmd.ExecuteReader()) { i = 0; while (reader.Read()) { HubList.Add(i, reader.IsDBNull(0) ? "" : reader.GetString(0)); i++; } } } } }
public void AddModelData(Int32 LaneID, OutputData DataRecord) { ModelData.Add(LaneID, DataRecord); }