コード例 #1
0
ファイル: BusinessRules.cs プロジェクト: demonzhq/JLR
		public static DataSet GetParameterOptions(int paramId, int thisParamVal, DataSet optionDS)
		{
			int maskI = 255;
			DataSet dataSet = new DataSet();
			DataTable dataTable = new DataTable();
			IEnumerator enumerator = optionDS.get_Tables().get_Item(0).get_Columns().GetEnumerator();
			try
			{
				while (enumerator.MoveNext())
				{
					DataColumn dataColumn = (DataColumn)enumerator.get_Current();
					dataTable.get_Columns().Add(new DataColumn(dataColumn.get_ColumnName(), dataColumn.get_DataType()));
				}
			}
			finally
			{
				IDisposable disposable = enumerator as IDisposable;
				if (disposable != null)
				{
					disposable.Dispose();
				}
			}
			dataTable.get_Columns().Add(new DataColumn("Selected", typeof(bool)));
			dataTable.get_Columns().Add(new DataColumn("ValueText", typeof(string)));
			dataTable.get_Columns().Add(new DataColumn("Checked", typeof(string)));
			enumerator = optionDS.get_Tables().get_Item(0).get_Rows().GetEnumerator();
			try
			{
				while (enumerator.MoveNext())
				{
					DataRow dataRow = (DataRow)enumerator.get_Current();
					int num = Convert.ToInt32(dataRow.get_Item("fldParamGroupID"));
					int num2 = Convert.ToInt32(dataRow.get_Item("fldOptionVal"));
					int num3 = Convert.ToInt32(dataRow.get_Item("fldTypeID"));
					try
					{
						maskI = Convert.ToInt32(dataRow.get_Item("fldMask").ToString(), 2);
					}
					catch
					{
						maskI = 255;
					}
					switch (num3)
					{
					case 1:
					case 4:
					{
						DataRow dataRow2 = dataTable.NewRow();
						IEnumerator enumerator2 = optionDS.get_Tables().get_Item(0).get_Columns().GetEnumerator();
						try
						{
							while (enumerator2.MoveNext())
							{
								DataColumn dataColumn2 = (DataColumn)enumerator2.get_Current();
								dataRow2.set_Item(dataColumn2.get_ColumnName(), dataRow.get_Item(dataColumn2.get_ColumnName()));
							}
						}
						finally
						{
							IDisposable disposable = enumerator2 as IDisposable;
							if (disposable != null)
							{
								disposable.Dispose();
							}
						}
						string text = "0x" + num2.ToString("X2");
						bool flag;
						if (num3 == 1)
						{
							flag = Common.IsSelected(maskI, num2, thisParamVal);
						}
						else
						{
							flag = ((num2 & thisParamVal) == num2);
						}
						dataRow2.set_Item("Selected", flag);
						if (flag)
						{
							dataRow2.set_Item("Checked", "Checked");
						}
						dataRow2.set_Item("ValueText", text);
						dataTable.get_Rows().Add(dataRow2);
						break;
					}
					case 2:
					{
						num = 1;
						int i = 48;
						while (i < 122)
						{
							if (i <= 57 || (i >= 65 && i <= 90) || i >= 97)
							{
								DataRow dataRow3 = dataTable.NewRow();
								string text = Convert.ToChar(i).ToString();
								bool flag = Common.IsSelected(maskI, i, thisParamVal);
								dataRow3.set_Item("fldOptionVal", i);
								dataRow3.set_Item("fldTypeID", num3);
								dataRow3.set_Item("fldTypeDesc", Constants.OptionType.ASCII.ToString());
								dataRow3.set_Item("fldFullDesc", text);
								dataRow3.set_Item("fldOptionGroup", 1);
								dataRow3.set_Item("Selected", flag);
								if (flag)
								{
									dataRow3.set_Item("Checked", "Checked");
								}
								dataRow3.set_Item("ValueText", "0x" + i.ToString("X2"));
								dataTable.get_Rows().Add(dataRow3);
							}
							i++;
							num++;
						}
						break;
					}
					}
				}
			}
			finally
			{
				IDisposable disposable = enumerator as IDisposable;
				if (disposable != null)
				{
					disposable.Dispose();
				}
			}
			dataSet.get_Tables().Add(dataTable);
			return dataSet;
		}
コード例 #2
0
ファイル: Collections.cs プロジェクト: demonzhq/JLR
		public static ICollection GetDataSourceSelector(DataSet gds, int valField, int textField)
		{
			DataTable dataTable = new DataTable(gds.get_Tables().get_Item(0).get_TableName());
			dataTable.get_Columns().Add(new DataColumn(Constants.DropDownColumnTypes.Val, typeof(string)));
			dataTable.get_Columns().Add(new DataColumn(Constants.DropDownColumnTypes.Text, typeof(string)));
			DataRow dataRow = dataTable.NewRow();
			dataRow.set_Item(0, 0);
			dataRow.set_Item(1, Constants.Unassigned);
			dataTable.get_Rows().Add(dataRow);
			int count = gds.get_Tables().get_Item(0).get_Rows().get_Count();
			if (count > 0)
			{
				IEnumerator enumerator = gds.get_Tables().get_Item(0).get_Rows().GetEnumerator();
				try
				{
					while (enumerator.MoveNext())
					{
						DataRow dataRow2 = (DataRow)enumerator.get_Current();
						dataRow = dataTable.NewRow();
						dataRow.set_Item(0, dataRow2.get_Item(valField));
						dataRow.set_Item(1, dataRow2.get_Item(textField));
						dataTable.get_Rows().Add(dataRow);
					}
				}
				finally
				{
					IDisposable disposable = enumerator as IDisposable;
					if (disposable != null)
					{
						disposable.Dispose();
					}
				}
			}
			return new DataView(dataTable);
		}
コード例 #3
0
ファイル: ParamSpec.cs プロジェクト: demonzhq/JLR
		private void FillT5(ref DataSet ds, ref string message, int importType)
		{
			bool flag = false;
			int num = 0;
			int num2 = 0;
			string text = "";
			string text2 = "";
			string text3 = "";
			string text4 = "";
			int count = ds.get_Tables().get_Item(0).get_Rows().get_Count();
			int count2 = ds.get_Tables().get_Item(0).get_Columns().get_Count();
			int i = 0;
			while (i < count && !flag)
			{
				DataRow dataRow = ds.get_Tables().get_Item(0).get_Rows().get_Item(i);
				for (int j = 0; j < count2; j++)
				{
					string text5 = dataRow.get_Item(j).ToString().Trim();
					int num3 = text5.ToLower().IndexOf("parameter number", 0);
					if (num3 >= 0)
					{
						flag = true;
						num = i + 1;
						num2 = j;
						break;
					}
				}
				i++;
			}
			int num4 = 0;
			string text6 = "";
			if (flag)
			{
				for (i = num; i < count; i++)
				{
					DataRow dataRow2 = ds.get_Tables().get_Item(0).get_Rows().get_Item(i);
					string text7 = dataRow2.get_Item(num2).ToString().Trim();
					string text8 = dataRow2.get_Item(num2 + 1).ToString().Trim();
					string text9 = dataRow2.get_Item(num2 + 2).ToString().Trim();
					string text10 = dataRow2.get_Item(num2 + 3).ToString().Trim();
					string text11 = dataRow2.get_Item(num2 + 4).ToString().Trim();
					string text12 = dataRow2.get_Item(num2 + 5).ToString().Trim();
					string text13 = dataRow2.get_Item(num2 + 6).ToString().Trim();
					string text14 = dataRow2.get_Item(num2 - 1).ToString().Trim();
					if (text14 != "")
					{
						if (importType == 1)
						{
							text3 = text14.Replace("Block No ", "");
						}
						else
						{
							text3 = Convert.ToInt32(text14, 16).ToString();
						}
					}
					if (text7 != "")
					{
						text = text7.Trim(ParamSpec.TrimChars);
						text = text.Trim();
						DataRow dataRow3 = this.ss.Parameters.NewRow();
						dataRow3.set_Item("fldParameter", text);
						dataRow3.set_Item("fldName", text8);
						dataRow3.set_Item("fldFrame", text3);
						this.ss.Parameters.get_Rows().Add(dataRow3);
						num4 = 0;
						text2 = "";
						text6 = "";
					}
					if (text9 != "")
					{
						text2 = text9;
					}
					if (text11 != "")
					{
						DataRow dataRow4 = this.ss.Options.NewRow();
						dataRow4.set_Item("fldParameter", text);
						dataRow4.set_Item("fldDescription", text2);
						dataRow4.set_Item("fldSubDesc", text10);
						string value = this.GetValue(text13, text12, out text4);
						dataRow4.set_Item("fldValue", value);
						dataRow4.set_Item("fldError", value == "");
						try
						{
							dataRow4.set_Item("fldMask", text4.Substring(0, 8));
						}
						catch
						{
							dataRow4.set_Item("fldMask", text4);
						}
						if (dataRow4.get_Item("fldMask").ToString() != text6)
						{
							num4++;
						}
						text6 = dataRow4.get_Item("fldMask").ToString();
						dataRow4.set_Item("fldSplit", num4.ToString());
						dataRow4.set_Item("fldFormat", text12 + text13);
						dataRow4.set_Item("fldFormat", dataRow4.get_Item("fldFormat").ToString().Replace("0x0x", "0x"));
						dataRow4.set_Item("fldType", text11);
						dataRow4.set_Item("fldError", text11 == "");
						this.ss.Options.get_Rows().Add(dataRow4);
					}
				}
				if (this.ss.Parameters.get_Rows().get_Count() != int.Parse(text))
				{
					message = string.Concat(new string[]
					{
						"There are ",
						this.ss.Parameters.get_Rows().get_Count().ToString(),
						" parameters ready for import, yet the last one is numbered ",
						text.ToString(),
						"!  Please check for missing parameters as this could affect existing prototype settings!"
					});
					return;
				}
			}
		}
コード例 #4
0
ファイル: ParamSpec.cs プロジェクト: demonzhq/JLR
		private void FillEUCD(ref DataSet ds)
		{
			bool flag = false;
			int num = 0;
			string text = "";
			string text2 = "";
			int num2 = 0;
			int count = ds.get_Tables().get_Item(0).get_Rows().get_Count();
			int count2 = ds.get_Tables().get_Item(0).get_Columns().get_Count();
			int i = 0;
			while (i < count && !flag)
			{
				DataRow dataRow = ds.get_Tables().get_Item(0).get_Rows().get_Item(i);
				for (int j = 0; j < count2; j++)
				{
					string text3 = dataRow.get_Item(j).ToString().Trim();
					if (text3.ToLower() == "nbr")
					{
						flag = true;
						num = i + 1;
						num2 = j;
						break;
					}
				}
				i++;
			}
			if (flag)
			{
				for (i = num; i < count; i++)
				{
					DataRow dataRow2 = ds.get_Tables().get_Item(0).get_Rows().get_Item(i);
					string text4 = dataRow2.get_Item(num2).ToString().Trim();
					string text5 = dataRow2.get_Item(num2 + 1).ToString().Trim();
					string text6 = dataRow2.get_Item(num2 + 2).ToString().Trim();
					string text7 = dataRow2.get_Item(num2 + 11).ToString().Trim();
					string paramValue = dataRow2.get_Item(num2 + 8).ToString().Trim();
					try
					{
						text2 = text7.Substring(0, text7.ToLower().IndexOf("byte"));
						text2 = text2.Replace(":", "");
						text2 = text2.Replace("Block", "");
						text2 = text2.Trim();
					}
					catch
					{
						text2 = "";
					}
					if (text4 != "")
					{
						text = text4.Trim(ParamSpec.TrimChars);
						text = text.Trim();
						DataRow dataRow3 = this.ss.Parameters.NewRow();
						dataRow3.set_Item("fldParameter", text);
						dataRow3.set_Item("fldName", text5);
						dataRow3.set_Item("fldFrame", text2.Trim());
						this.ss.Parameters.get_Rows().Add(dataRow3);
					}
					if (text6 != "")
					{
						DataRow dataRow4 = this.ss.Options.NewRow();
						dataRow4.set_Item("fldParameter", text);
						dataRow4.set_Item("fldDescription", text6);
						dataRow4.set_Item("fldSplit", "1");
						dataRow4.set_Item("fldMask", "11111111");
						string text8 = Common.ConvertToInt(paramValue, 2).ToString();
						dataRow4.set_Item("fldValue", text8);
						dataRow4.set_Item("fldError", text8 == "");
						dataRow4.set_Item("fldType", Constants.Config.DefaultParamType);
						this.ss.Options.get_Rows().Add(dataRow4);
					}
				}
				return;
			}
		}
コード例 #5
0
ファイル: MulticanDataset.cs プロジェクト: demonzhq/JLR
		protected override void ReadXmlSerializable(XmlReader reader)
		{
			this.Reset();
			DataSet dataSet = new DataSet();
			dataSet.ReadXml(reader);
			if (dataSet.get_Tables().get_Item("Frame") != null)
			{
				base.get_Tables().Add(new MulticanDataset.FrameDataTable(dataSet.get_Tables().get_Item("Frame")));
			}
			base.set_DataSetName(dataSet.get_DataSetName());
			base.set_Prefix(dataSet.get_Prefix());
			base.set_Namespace(dataSet.get_Namespace());
			base.set_Locale(dataSet.get_Locale());
			base.set_CaseSensitive(dataSet.get_CaseSensitive());
			base.set_EnforceConstraints(dataSet.get_EnforceConstraints());
			base.Merge(dataSet, false, 1);
			this.InitVars();
		}
コード例 #6
0
ファイル: MulticanDataset.cs プロジェクト: demonzhq/JLR
		protected MulticanDataset(SerializationInfo info, StreamingContext context)
		{
			string text = (string)info.GetValue("XmlSchema", typeof(string));
			if (text != null)
			{
				DataSet dataSet = new DataSet();
				dataSet.ReadXmlSchema(new XmlTextReader(new StringReader(text)));
				if (dataSet.get_Tables().get_Item("Frame") != null)
				{
					base.get_Tables().Add(new MulticanDataset.FrameDataTable(dataSet.get_Tables().get_Item("Frame")));
				}
				base.set_DataSetName(dataSet.get_DataSetName());
				base.set_Prefix(dataSet.get_Prefix());
				base.set_Namespace(dataSet.get_Namespace());
				base.set_Locale(dataSet.get_Locale());
				base.set_CaseSensitive(dataSet.get_CaseSensitive());
				base.set_EnforceConstraints(dataSet.get_EnforceConstraints());
				base.Merge(dataSet, false, 1);
				this.InitVars();
			}
			else
			{
				this.InitClass();
			}
			base.GetSerializationData(info, context);
			CollectionChangeEventHandler collectionChangeEventHandler = new CollectionChangeEventHandler(this.SchemaChanged);
			base.get_Tables().add_CollectionChanged(collectionChangeEventHandler);
			base.get_Relations().add_CollectionChanged(collectionChangeEventHandler);
		}
コード例 #7
0
ファイル: VBFFile.cs プロジェクト: demonzhq/JLR
		public string Import(out bool error)
		{
			error = false;
			int num = 0;
			int num2 = 0;
			string text = "";
			string reason = "Imported " + DateTime.get_Now();
			VehicleModule vehicleModule = new VehicleModule();
			this.ImportVBF();
			num2 = this.Params.get_Count();
			if (num2 <= 0)
			{
				throw new CarConfigException("No bytes loaded, invalid VBF file?");
			}
			VehiclePrototype vehiclePrototype = new VehiclePrototype(this.VehicleInstId);
			IEnumerator enumerator = vehiclePrototype.Modules.GetEnumerator();
			try
			{
				while (enumerator.MoveNext())
				{
					VehicleModule vehicleModule2 = (VehicleModule)enumerator.get_Current();
					if (vehicleModule2.ID == this.ModuleID)
					{
						vehicleModule = vehicleModule2;
						break;
					}
				}
			}
			finally
			{
				IDisposable disposable = enumerator as IDisposable;
				if (disposable != null)
				{
					disposable.Dispose();
				}
			}
			int noOfBytes = vehicleModule.NoOfBytes;
			if (noOfBytes > 0)
			{
				if (vehiclePrototype.VBFType == 1)
				{
					if (noOfBytes > num2)
					{
						text = "More bytes in database than imported, database records will remain unchanged for extra bytes [00].  File loaded.";
					}
					else if (num2 > noOfBytes)
					{
						text = "More bytes imported than available in the database, " + (num2 - noOfBytes).ToString() + " ignored!  Check you selected the correct module!";
						error = true;
					}
					enumerator = vehicleModule.Parameters.GetEnumerator();
					try
					{
						while (enumerator.MoveNext())
						{
							ConfigByte configByte = (ConfigByte)enumerator.get_Current();
							if (num >= num2)
							{
								break;
							}
							configByte.Update(this.VehicleInstId, ((ConfigByte)this.Params.get_Item(num)).ParamValue, this.UserName, reason);
							num++;
						}
						goto IL_7D3;
					}
					finally
					{
						IDisposable disposable = enumerator as IDisposable;
						if (disposable != null)
						{
							disposable.Dispose();
						}
					}
				}
				int num3 = 1;
				int num4 = 0;
				int num5 = 8;
				int num6 = 0;
				int num7 = 0;
				int num8 = 1;
				DataSet dataSet = new DataSet();
				VDF vDF = new VDF();
				ArrayList arrayList = new ArrayList();
				VDFBlock vDFBlock = new VDFBlock();
				enumerator = this.Params.GetEnumerator();
				try
				{
					while (enumerator.MoveNext())
					{
						ConfigByte configByte2 = (ConfigByte)enumerator.get_Current();
						if (num3 == 1)
						{
							vDF.CRC = (ushort)(configByte2.ParamValue << 8);
						}
						else if (num3 == 2)
						{
							vDF.CRC = (ushort)((int)vDF.CRC | configByte2.ParamValue);
						}
						else if (num3 == 3)
						{
							vDF.DataBlockSize = configByte2.ParamValue << 8;
						}
						else if (num3 == 4)
						{
							vDF.DataBlockSize |= configByte2.ParamValue;
						}
						else if (num3 == 5)
						{
							vDF.VDFVersion = configByte2.ParamValue << 8;
						}
						else if (num3 == 6)
						{
							vDF.VDFVersion |= configByte2.ParamValue;
						}
						else if (num3 == 7)
						{
							vDF.Blocksize = configByte2.ParamValue << 8;
						}
						else if (num3 == 8)
						{
							vDF.Blocksize |= configByte2.ParamValue;
						}
						else if (num3 == 9)
						{
							vDFBlock.Type = configByte2.ParamValue << 8;
						}
						else if (num3 == 10)
						{
							vDFBlock.Type |= configByte2.ParamValue;
						}
						else if (num3 == 11)
						{
							num6 = configByte2.ParamValue << 8;
							vDFBlock.Offset = num6;
						}
						else if (num3 == 12)
						{
							num6 |= configByte2.ParamValue;
							vDFBlock.Offset = num6;
							if (num6 == num3)
							{
								num7 = 1;
								vDFBlock.Size = vDF.DataBlockSize - num5;
							}
							else
							{
								num7 = (num6 - num5) / 4;
							}
							arrayList.Add(vDFBlock);
						}
						else
						{
							if (num3 > num6)
							{
								break;
							}
							int num9 = num3 - num5;
							switch (num9 % 4)
							{
							case 0:
							{
								vDFBlock.Offset |= configByte2.ParamValue;
								VDFBlock vDFBlock2 = (VDFBlock)arrayList.get_Item(num8 - 2);
								vDFBlock2.Size = vDFBlock.Offset - vDFBlock2.Offset;
								if (num8 == num7)
								{
									vDFBlock.Size = vDF.DataBlockSize - vDFBlock.Offset;
								}
								arrayList.Add(vDFBlock);
								break;
							}
							case 1:
								num8++;
								vDFBlock = new VDFBlock();
								vDFBlock.Type = configByte2.ParamValue << 8;
								break;
							case 2:
								vDFBlock.Type |= configByte2.ParamValue;
								break;
							case 3:
								vDFBlock.Offset = configByte2.ParamValue << 8;
								break;
							}
						}
						num3++;
					}
				}
				finally
				{
					IDisposable disposable = enumerator as IDisposable;
					if (disposable != null)
					{
						disposable.Dispose();
					}
				}
				if (vehicleModule.BuildTypes.get_Count() != arrayList.get_Count())
				{
					throw new CarConfigException("Incorrect no of blocks in import file compared to those in the database.");
				}
				int i = 1;
				for (int j = 0; j < vehicleModule.BuildTypes.get_Count(); j++)
				{
					int num10 = 1;
					BuildType buildType = (BuildType)vehicleModule.BuildTypes.get_Item(j);
					VDFBlock vDFBlock3 = (VDFBlock)arrayList.get_Item(j);
					int size = vDFBlock3.Size;
					if (buildType.FrameCount)
					{
						for (i = num3; i < size + num3; i++)
						{
							ConfigByte configByte3 = (ConfigByte)this.Params.get_Item(i - 1);
							if (num10 == 1)
							{
								dataSet = DataAccess.GetVehicleFrameParameterIDs(configByte3.ParamValue.ToString(), buildType.ID, this.VehicleInstId);
								if (dataSet.get_Tables().get_Item(0).get_Rows().get_Count() == 0)
								{
									text = text + "Frame 0x" + configByte3.ParamValueHex.ToString() + " does not exist in the database.  All bytes will not be imported.<br>";
									error = true;
								}
								else
								{
									num4 = configByte3.ParamValue;
								}
							}
							else if (dataSet.get_Tables().get_Item(0).get_Rows().get_Count() > 0)
							{
								try
								{
									DataRow dataRow = dataSet.get_Tables().get_Item(0).get_Rows().get_Item(num10 - 2);
									DataAccess.UpdateParamInst(this.VehicleInstId.ToString(), dataRow.get_Item(0).ToString(), configByte3.ParamValue.ToString(), 1, this.UserName, reason);
								}
								catch (SqlException)
								{
									throw;
								}
								catch
								{
									string text2 = text;
									text = string.Concat(new string[]
									{
										text2,
										"Frame 0x",
										num4.ToString("x2"),
										" byte ",
										(num10 - 1).ToString(),
										" missing from the database.<br>"
									});
									error = true;
								}
							}
							if (num10 == 8)
							{
								num10 = 1;
								dataSet.Dispose();
							}
							else
							{
								num10++;
							}
						}
					}
					else
					{
						if (buildType.DataBytes.get_Count() > vDFBlock3.Size)
						{
							text = "More bytes in database for [" + buildType.Name + "] than imported, database records will remain unchanged for extra bytes [00].  File loaded.";
						}
						else if (vDFBlock3.Size > buildType.DataBytes.get_Count())
						{
							text = string.Concat(new string[]
							{
								"More bytes imported than available in the database for [",
								buildType.Name,
								"], ",
								(vDFBlock3.Size - buildType.DataBytes.get_Count()).ToString(),
								" ignored!  Check you selected the correct module!"
							});
							error = true;
						}
						enumerator = buildType.DataBytes.GetEnumerator();
						try
						{
							while (enumerator.MoveNext())
							{
								ConfigByte configByte4 = (ConfigByte)enumerator.get_Current();
								if (i >= size + num3)
								{
									break;
								}
								configByte4.Update(this.VehicleInstId, ((ConfigByte)this.Params.get_Item(i - 1)).ParamValue, this.UserName, reason);
								i++;
							}
						}
						finally
						{
							IDisposable disposable = enumerator as IDisposable;
							if (disposable != null)
							{
								disposable.Dispose();
							}
						}
					}
					num3 = i;
					if (buildType.BlockType != vDFBlock3.Type)
					{
						DataAccess.UpdateBuildType(buildType.ID, vDFBlock3.Type);
					}
				}
				int vehicleBuildID = DataAccess.GetVehicleBuildID(this.VehicleInstId.ToString());
				DataAccess.UpdateVehicle(vehicleBuildID, vDF.VDFVersion, this.UserName);
				IL_7D3:
				DataAccess.UpdateVehicleInst(this.VehicleInstId.ToString(), "", string.Concat(new object[]
				{
					"Imported ",
					DateTime.get_Now(),
					" by ",
					this.UserName
				}), 1, this.UserName);
				return text;
			}
			throw new CarConfigException("No parameter records found for Vehicle ID " + this.VehicleInstId.ToString());
		}