コード例 #1
0
ファイル: BuildType.cs プロジェクト: demonzhq/JLR
		private void Generate(int vInstId, int vbfType, int rulesetId)
		{
			string text = "";
			ArrayList arrayList = new ArrayList();
			DataSet vehicleInstParameterFrame = DataAccess.GetVehicleInstParameterFrame(vInstId.ToString(), this.ID);
			this.NoOfBytes = vehicleInstParameterFrame.get_Tables().get_Item(0).get_Rows().get_Count();
			if (this.NoOfBytes <= 0 && this.PadTo <= 0)
			{
				throw new CarConfigException(string.Concat(new object[]
				{
					"No parameters values and no padding specified for Build Type ",
					this.ID,
					" for Prototype ID ",
					vInstId
				}));
			}
			IEnumerator enumerator;
			if (vbfType == 1 || !this.FrameCount)
			{
				enumerator = vehicleInstParameterFrame.get_Tables().get_Item(0).get_Rows().GetEnumerator();
				try
				{
					while (enumerator.MoveNext())
					{
						DataRow dataRow = (DataRow)enumerator.get_Current();
						this.DataBytes.Add(new ConfigByte(Convert.ToInt32(dataRow.get_Item("fldParameter")), Convert.ToInt32(dataRow.get_Item("fldValue"))));
					}
					goto IL_383;
				}
				finally
				{
					IDisposable disposable = enumerator as IDisposable;
					if (disposable != null)
					{
						disposable.Dispose();
					}
				}
			}
			MulticanDataset multicanDataset = new MulticanDataset();
			MulticanDataset.FrameRow frameRow = multicanDataset.Frame.NewFrameRow();
			int num = 0;
			enumerator = vehicleInstParameterFrame.get_Tables().get_Item(0).get_Rows().GetEnumerator();
			try
			{
				while (enumerator.MoveNext())
				{
					DataRow dataRow2 = (DataRow)enumerator.get_Current();
					if (text != dataRow2.get_Item("fldFrame").ToString())
					{
						try
						{
							text = dataRow2.get_Item("fldFrame").ToString();
							frameRow = multicanDataset.Frame.NewFrameRow();
							frameRow.FrameNo = text;
							num = 1;
							if (rulesetId == 0)
							{
								arrayList.Add(new ConfigByte(0, Convert.ToInt32(text)));
							}
						}
						catch
						{
							throw new CarConfigException("Error capturing stored Frame Nos, please check with the specification owner that all Frames in the specification are numeric values.");
						}
					}
					frameRow.set_Item(num, Convert.ToInt32(dataRow2.get_Item("fldValue")));
					if (num == 7)
					{
						multicanDataset.Frame.get_Rows().Add(frameRow);
					}
					num++;
					if (rulesetId == 0)
					{
						arrayList.Add(new ConfigByte(0, Convert.ToInt32(dataRow2.get_Item("fldValue"))));
					}
				}
			}
			finally
			{
				IDisposable disposable = enumerator as IDisposable;
				if (disposable != null)
				{
					disposable.Dispose();
				}
			}
			if (rulesetId > 0)
			{
				DataView dataView = new DataView(multicanDataset.Frame);
				MulticanDataset.FrameRow frameRow2 = (MulticanDataset.FrameRow)dataView.get_Table().get_Rows().get_Item(0);
				DataSet frameOrder = DataAccess.GetFrameOrder(rulesetId);
				if (frameOrder.get_Tables().get_Item(0).get_Rows().get_Count() > 0)
				{
					enumerator = frameOrder.get_Tables().get_Item(0).get_Rows().GetEnumerator();
					try
					{
						while (enumerator.MoveNext())
						{
							DataRow dataRow3 = (DataRow)enumerator.get_Current();
							int num2 = Convert.ToInt32(dataRow3.get_Item(1));
							bool flag = false;
							for (int i = 0; i < dataView.get_Table().get_Rows().get_Count(); i++)
							{
								frameRow2 = (MulticanDataset.FrameRow)dataView.get_Table().get_Rows().get_Item(i);
								if (Convert.ToInt32(frameRow2.get_Item(0)) == num2)
								{
									flag = true;
									break;
								}
							}
							int num3 = 0;
							while (num3 < multicanDataset.Frame.get_Columns().get_Count() && flag)
							{
								this.DataBytes.Add(new ConfigByte(0, Convert.ToInt32(frameRow2.get_Item(num3))));
								num3++;
							}
						}
						goto IL_36B;
					}
					finally
					{
						IDisposable disposable = enumerator as IDisposable;
						if (disposable != null)
						{
							disposable.Dispose();
						}
					}
				}
				this.DataBytes.AddRange(arrayList);
			}
			else
			{
				this.DataBytes.AddRange(arrayList);
			}
			IL_36B:
			multicanDataset.Dispose();
			this.NoOfBytes = this.DataBytes.get_Count();
			IL_383:
			if (this.PadTo > this.NoOfBytes)
			{
				for (int j = this.NoOfBytes; j < this.PadTo; j++)
				{
					this.DataBytes.Add(new ConfigByte(0, 255));
				}
				this.NoOfBytes = this.PadTo;
				return;
			}
		}
コード例 #2
0
ファイル: MulticanDataset.cs プロジェクト: demonzhq/JLR
			public void RemoveFrameRow(MulticanDataset.FrameRow row)
			{
				base.get_Rows().Remove(row);
			}
コード例 #3
0
ファイル: MulticanDataset.cs プロジェクト: demonzhq/JLR
			public FrameRowChangeEvent(MulticanDataset.FrameRow row, DataRowAction action)
			{
				this.eventRow = row;
				this.eventAction = action;
			}
コード例 #4
0
ファイル: MulticanDataset.cs プロジェクト: demonzhq/JLR
			public void AddFrameRow(MulticanDataset.FrameRow row)
			{
				base.get_Rows().Add(row);
			}