private static void HandleCarParamsReceived(object model, BasicDeliverEventArgs ea) { CarParams carParams = CarParams.Deserialize(ea.Body); Console.WriteLine("Received car params:" + carParams); textLogger.AppendLine(carParams.ToString()); }
private static void BroadcastCarParams(object sender, ElapsedEventArgs elapsedEventArgs) { CarParams carParams = carParamsProvider.Get(); carParams.RaceTime = TimeSpan.FromMilliseconds(raceMiliseconds); Console.WriteLine(carParams.ToString()); var factory = new ConnectionFactory() { HostName = "localhost" }; using (IConnection connection = factory.CreateConnection()) { using (IModel channel = connection.CreateModel()) { channel.ExchangeDeclare(exchange: "car_info", type: "fanout"); channel.BasicPublish(exchange: "car_info", routingKey: "", basicProperties: null, body: CarParams.Serialize(carParams)); } } }
public void Handle(CarParams car) { var carEntity = _mapper.Map <Car>(car); carEntity.AddedOn = DateTime.Now; _carRepository.Add(carEntity); }
private static void HandleCarParamsReceived(object model, BasicDeliverEventArgs ea) { CarParams carParams = CarParams.Deserialize(ea.Body); Warning warning = carParamsAnalyzer.Analyze(carParams); if (warning.EngineTempWarningLevel != WarningLevel.None || warning.RadiatorFluidTempWarningLevel != WarningLevel.None || warning.TyresPressureWarningLevel != WarningLevel.None) { carParamsWarningPublisher.Publish(warning); } }
public void Handle(CarParams car) { var newCar = new Car { Name = car.Name, AddedOn = DateTime.Now }; _repository.CreateCar(newCar); }
public async Task <IActionResult> GetCars([FromQuery] CarParams carParams) { var cars = await _repo.GetCars(carParams); var carsToReturn = _mapper.Map <List <CarForListDto> >(cars); Response.AddPagination(cars.CurrentPage, cars.PageSize, cars.TotalCount, cars.TotalPages); return(Ok(carsToReturn)); }
private static void ParamsReceivedEventHandler(object o, BasicDeliverEventArgs basicDeliverEventArgs) { Warning warning = Warning.Deserialize(basicDeliverEventArgs.Body); Console.ForegroundColor = ConsoleColor.DarkRed; Console.Write("SERIOUS FAULT - CREW GETTING READY: "); CarParams.Print(warning.TyresPressureWarningLevel, $"Tyres pressure - {warning.TyresPressureWarningLevel}"); CarParams.Print(warning.RadiatorFluidTempWarningLevel, $"Radiator fluid temperature - {warning.RadiatorFluidTempWarningLevel}"); CarParams.Print(warning.EngineTempWarningLevel, $"Engine temperature - {warning.EngineTempWarningLevel}"); Console.WriteLine(); }
private static void RequestPitStop(CarParams carParams) { Console.WriteLine("Pit stop requested!"); var pitStopRequester = new PitStopRequester(); PitStopRequestReply pitStopRequestReply = pitStopRequester.Request(new PitStopRequest() { Message = $"Requesting PitStop from bolide! - {carParams}" }); pitStopRequester.Stop(); Console.WriteLine(pitStopRequestReply.IsAccepted ? "PitStop accepted!" : "PitStop denied!"); }
public static void readAllCarParams(String ruleFile, String dataFile) { Hashtable ruleKey = new Hashtable(); // 读取匹配数据信息 String ruleFileName = @"D:\柔性参数填报系统\上海通用\rules.xls"; ExcelInstance rules = ExcelUtil.readExcel(ruleFileName); int i = 0; String key = ExcelUtil.reader.getCellValue(i, 2, rules.dataTables[0]).Trim(); while (key != null && key.Length > 0) { Hashtable properties = new Hashtable(); properties.Add(Matcher.ELEMENT_ID, ExcelUtil.reader.getCellValue(i, 1, rules.dataTables[0])); properties.Add(Matcher.ELEMENT_TYPE, ExcelUtil.reader.getCellValue(i, 3, rules.dataTables[0])); ruleKey.Add(key, properties); i++; if (i < (rules.dataTables[0].Rows.Count)) { key = ExcelUtil.reader.getCellValue(i, 2, rules.dataTables[0]); } else { break; } } //读取样车数量和packageCode String dataFileName = dataFile; String sheetName = "Sheet1"; ExcelInstance data = ExcelUtil.readExcel(dataFileName); int rowcounter = data.dataTables[0].Rows.Count - 3; int counter = data.dataTables[0].Columns.Count - 3; for (int j = 3; j < counter + 3; j++) { CarParams c = new CarParams(); String modelcode = ExcelUtil.reader.getCellValue(5, j, data.dataTables[0]); String packagemode = ExcelUtil.reader.getCellValue(6, j, data.dataTables[0]); String ordercode = ExcelUtil.reader.getCellValue(7, j, data.dataTables[0]); if (String.IsNullOrEmpty(modelcode) || String.IsNullOrEmpty(packagemode) || String.IsNullOrEmpty(ordercode)) { continue; } c.packageCode = modelcode + packagemode + "-" + ordercode; carParams.Add(c); } }
public Warning Analyze(CarParams carParams) { WarningLevel pressureExceeded = WarningLevel.None, engineTempExceeded = WarningLevel.None, radiatorFluidTempExceeded = WarningLevel.None; if (carParams.TyresPressure > lv1WarningPressure) { pressureExceeded = WarningLevel.Lv1; if (carParams.TyresPressure > lv2WarningPressure) { pressureExceeded = WarningLevel.Lv2; } } if (carParams.EngineTemperature > lv1WarningTemperature) { engineTempExceeded = WarningLevel.Lv1; if (carParams.EngineTemperature > lv2WarningTemperature) { engineTempExceeded = WarningLevel.Lv2; } } if (carParams.RadiatorFluidTemperature > lv1WarningTemperature) { radiatorFluidTempExceeded = WarningLevel.Lv1; if (carParams.RadiatorFluidTemperature > lv2WarningTemperature) { radiatorFluidTempExceeded = WarningLevel.Lv2; } } if (pressureExceeded != WarningLevel.None || engineTempExceeded != WarningLevel.None || radiatorFluidTempExceeded != WarningLevel.None) { CarParams.Print(pressureExceeded, $"Tyres press.: {carParams.TyresPressure}"); CarParams.Print(radiatorFluidTempExceeded, $"Radiator fluid temp.: {carParams.RadiatorFluidTemperature}"); CarParams.Print(engineTempExceeded, $"Engine temp press.: {carParams.EngineTemperature}"); Console.WriteLine(); //return (WarningLevel)Math.Max((int)pressureExceeded, Math.Max((int)engineTempExceeded, (int)radiatorFluidTempExceeded)); } return(new Warning() { CarParams = carParams, EngineTempWarningLevel = engineTempExceeded, RadiatorFluidTempWarningLevel = radiatorFluidTempExceeded, TyresPressureWarningLevel = pressureExceeded }); }
private static void ParamsReceivedEventHandler(object o, BasicDeliverEventArgs basicDeliverEventArgs) { Warning warning = Warning.Deserialize(basicDeliverEventArgs.Body); Console.ForegroundColor = ConsoleColor.Cyan; Console.Write("Warning received: "); CarParams.Print(warning.TyresPressureWarningLevel, $"Tyres pressure - {warning.TyresPressureWarningLevel}"); CarParams.Print(warning.RadiatorFluidTempWarningLevel, $"Radiator fluid temperature - {warning.RadiatorFluidTempWarningLevel}"); CarParams.Print(warning.EngineTempWarningLevel, $"Engine temperature - {warning.EngineTempWarningLevel}"); Console.WriteLine(); if (warning.EngineTempWarningLevel == WarningLevel.Lv2 || warning.RadiatorFluidTempWarningLevel == WarningLevel.Lv2 || warning.TyresPressureWarningLevel == WarningLevel.Lv2) { RequestPitStop(warning.CarParams); } }
//重复多次提交配置号 public static Boolean setConfigCodeUtil(CarParams cp, int times) { if (times <= 0) { times = 1; } Boolean result = false; for (int i = 0; i < times; i++) { result = setConfigCode(cp); if (result) { break; } else { continue; } } return(result); }
public async void GetAllCars() { //Arrange var databaseName = Guid.NewGuid().ToString(); var context = BuildContext(databaseName); var mapper = BuildMap(); var carsRepository = new CarRepository(context); var carParams = new CarParams() { PageNumber = 1, PageSize = 10 }; context.Cars.Add(new Car() { }); context.Cars.Add(new Car() { }); await context.SaveChangesAsync(); //Act var testContext = BuildContext(databaseName); var controller = new CarsController( carsRepository, mapper, null, testContext, null); controller.ControllerContext.HttpContext = new DefaultHttpContext(); var response = await controller.GetCars(carParams); OkObjectResult okResult = response as OkObjectResult; var cars = (List <CarForListDto>)okResult.Value; //Assert Assert.Equal(2, (int)cars.Count); }
public static Boolean setConfigCode(CarParams cp) { ConfigCodeService.IPackageInfoServiceService piis = new IPackageInfoServiceService(); String configCode = cp.configCode; String packageCode = cp.packageCode; String version = cp.version; if (!String.IsNullOrEmpty(configCode) && !String.IsNullOrEmpty(packageCode)) { String result = piis.setConfigCode(packageCode, configCode, version); if (result.Equals("y", StringComparison.OrdinalIgnoreCase)) { return(true); } else { return(false); } } else { return(false); } }
public void Post([FromBody] CarParams car) { _createCarUseCase.Handle(car); }
public async Task <PagedList <Car> > GetCars(CarParams carParams) { var cars = _context.Cars.OrderByDescending(c => c.Price).AsQueryable(); if (!string.IsNullOrEmpty(carParams.OrderBy)) { switch (carParams.OrderBy) { case "low": cars = cars.OrderByDescending(u => u.Price); break; default: cars = cars.OrderBy(u => u.Price); break; } } if (carParams.IsLiked && carParams.UserId != 0) { var userLikedCars = await getUserLikedCars(carParams.UserId); cars = cars.Where(c => userLikedCars.Contains(c.Id)); } var predicate = PredicateBuilder.New <Car>(true); if (!string.IsNullOrEmpty(carParams.ModelName)) { predicate = predicate.And(c => c.ModelName == carParams.ModelName); } if (!string.IsNullOrEmpty(carParams.BrandName)) { predicate = predicate.And(c => c.BrandName == carParams.BrandName); } if (carParams.EnginePower != 0) { predicate = predicate.And(c => c.EnginePower == carParams.EnginePower); } if (carParams.Odometr != 0) { predicate = predicate.And(c => c.Odometr == carParams.Odometr); } if (!string.IsNullOrEmpty(carParams.Fuel)) { predicate = predicate.And(c => c.Fuel == carParams.Fuel); } if (!string.IsNullOrEmpty(carParams.Body)) { predicate = predicate.And(c => c.Body == carParams.Body); } if (!string.IsNullOrEmpty(carParams.Transmission)) { predicate = predicate.And(c => c.Transmission == carParams.Transmission); } if (!string.IsNullOrEmpty(carParams.Color)) { predicate = predicate.And(c => c.Color == carParams.Color); } if (!string.IsNullOrEmpty(carParams.Drive)) { predicate = predicate.And(c => c.Drive == carParams.Drive); } if (carParams.MinYear != 1900) { predicate = predicate.And(c => c.Year >= carParams.MinYear); } if (carParams.MaxYear != DateTime.Now.Year) { predicate = predicate.And(c => c.Year <= carParams.MaxYear); } if (carParams.MinPrice != 0) { predicate = predicate.And(c => c.Price >= carParams.MinPrice); } if (carParams.MaxPrice != 10000000) { predicate = predicate.And(c => c.Price <= carParams.MaxPrice); } if (!string.IsNullOrEmpty(carParams.IsNew)) { switch (carParams.IsNew) { case "Used": predicate = predicate.And(c => c.IsNew == true); break; case "New": predicate = predicate.And(c => c.IsNew == false); break; default: break; } } cars = cars.Where(predicate).Select(c => c); return(await PagedList <Car> .CreateAsync(cars, carParams.PageNumber, carParams.PageSize)); }
public List <RentCarRentedCar> GetRentedCarByLicNum([FromBody] CarParams paramsCar) { return(ReturnVehicle.GetRentedCarsByLisnumber(paramsCar.LicenceNumber)); }//search rented car by license numiber from reted cars list
static void Main_service(string[] args) { //读取rule.xls配置文件,形成map包含填报全部参数 DataTable dtRules = ExcelUtils.ExcelUtil.getDataTableFromExcel(@"D:\柔性参数填报系统\上海通用\rules.xls"); LoggerUtils.LoggerUtils.logger(dtRules.Rows.Count.ToString()); Dictionary <String, HtmlAttribute> dicRules = new Dictionary <String, HtmlAttribute>(); int totalRowRules = dtRules.Rows.Count; for (int rownoRules = 1; rownoRules < totalRowRules; rownoRules++) { String name = ExcelUtil.reader.getCellValue(rownoRules, 2, dtRules).Trim(); String eid = ExcelUtil.reader.getCellValue(rownoRules, 1, dtRules).Trim(); String etype = ExcelUtil.reader.getCellValue(rownoRules, 3, dtRules).Trim(); HtmlAttribute ha = new HtmlAttribute(eid, name, etype, null); dicRules.Add(name, ha); } String engineInfoStartString = "车辆名称"; String configInfoStartString = "MD配置信息"; String patacCodeInitial = "P"; DataTable dt = ExcelUtils.ExcelUtil.getDataTableFromExcel(@"D:\柔性参数填报系统\上海通用\data.xls"); //所有车型配置信息的list List <CarParams> listCarParams = new List <CarParams>(); LoggerUtils.LoggerUtils.logger(dt.Columns.Count.ToString()); int columnCounterBeforeConfig = 3; int carConfigCounter = dt.Columns.Count - columnCounterBeforeConfig; //针对每个配置信息获取对应参数 for (int carConfigIter = 0; carConfigIter < carConfigCounter; carConfigIter++) { CarParams cps = new CarParams(); List <paramPo> listParampo = new List <paramPo>(); //配置所在列数 int columnNo = carConfigIter + columnCounterBeforeConfig; //行号 int rowno = 0; String cname = dt.Rows[rowno][0].ToString(); String value = dt.Rows[rowno][columnNo].ToString(); String pcode = dt.Rows[rowno][1].ToString(); //当不是车辆名称的时候继续增加行数 while (!cname.Equals("车辆名称")) { rowno++; cname = dt.Rows[rowno][0].ToString(); if (rowno >= dt.Rows.Count) { throw new Exception("已经超过最大行,还未找到车辆名称"); } } //从车辆名称到燃料种类 while (!cname.Equals("部门会签")) { if (String.IsNullOrEmpty(cname)) { rowno++; cname = dt.Rows[rowno][0].ToString(); continue; } value = dt.Rows[rowno][columnNo].ToString(); pcode = dt.Rows[rowno][1].ToString(); Param p = new EngineParam(cname, pcode, value); cps.listParams.Add(p); rowno++; cname = dt.Rows[rowno][0].ToString(); } //获取配置号信息 String packageCode = getParameter("Model Code", cps.listParams) + getParameter("Package Code", cps.listParams) + "-" + getParameter("Order Sample", cps.listParams); cps.packageCode = packageCode; //通过配置号信息获取工程信息数据 List <String> listPackageCode = new List <string>(); if (!String.IsNullOrEmpty(packageCode)) { listPackageCode.Add(packageCode); listParampo = getParamsByPackageCode(listPackageCode); } foreach (Param p in cps.listParams) { //只有型式认证编码有效的才能够获取数据 if (p.patacode.StartsWith(patacCodeInitial)) { String paramValue = getParameter(cps.packageCode, p.patacode, listParampo); p.value = "test"; if (String.IsNullOrEmpty(paramValue)) { continue; } } } //获取是否需要申报配置号信息 String needConfig = getParameter("是否申报新配置", cps.listParams); if (needConfig.Equals("Y", StringComparison.OrdinalIgnoreCase)) { cps.needConfigCode = true; } else { cps.needConfigCode = false; } //获取配置信息 //从部门会签到MD配置信息 while (!cname.Equals("MD配置信息")) { rowno++; cname = dt.Rows[rowno][0].ToString(); } //对配置参数进行转化,转化为参数列表(listParams而不是listHtmlAttributes) while (rowno < dt.Rows.Count) { cname = dt.Rows[rowno][0].ToString().Trim(); value = dt.Rows[rowno][columnNo].ToString().Trim(); if (String.IsNullOrEmpty(cname)) { rowno++; continue; } HtmlAttribute ha = null; if (dicRules.ContainsKey(cname)) { ha = dicRules[cname]; } //当能够找到对应参数而且参数值不为空的时候才进行 //适用于能够直接找到对应参数名称的情况 if (ha != null && !String.IsNullOrEmpty(value)) { //处理text类型和checkbox类型 if (ha.elementType.Equals(Matcher.TYPE_TEXT) || ha.elementType.Equals(Matcher.TYPE_CHECK_BOX)) { Param p = new Param(cname, null, Matcher.VALUE_CHECKBOX); cps.listParams.Add(p); } //处理othercheckbox类型 else if (ha.elementType.Equals(Matcher.TYPE_OTHER_CHECK_BOX)) { Param p1 = new Param(cname, null, Matcher.VALUE_CHECKBOX); cps.listParams.Add(p1); if (dicRules.ContainsKey(cname + "内容")) { Param p2 = new Param(cname + "内容", null, value); cps.listParams.Add(p2); } } } else if (cname.Contains("下拉菜单")) { cname = cname.Replace("(下拉菜单)", "").Trim(); //如果不包含直接下一个参数U if (!dicRules.ContainsKey(cname)) { rowno++; continue; } ha = dicRules[cname]; Boolean got = false; while (!cname.Equals("其他")) { rowno++; cname = dt.Rows[rowno][0].ToString(); value = dt.Rows[rowno][columnNo].ToString(); if (!got) { if (!String.IsNullOrEmpty(value) && ha != null) { //如果是S的话就是有这个配置,如果有这个配置就把对应的cname作为value。因为这是一个下拉菜单项 Param p1 = new ConfigParam(ha.name, null, cname); cps.listParams.Add(p1); got = !got; if (cname.Equals("其他")) // 其他项目内容 { Param p2 = new ConfigParam(ha.name + "其他", null, value); cps.listParams.Add(p2); } } } } } rowno++; } listCarParams.Add(cps); //通过接口将型式认证参数导入 //将参数转化为实际填报参数 cps.listHtmlAttributes.Clear(); cps.listHtmlAttributes.AddRange(getAllHAInACar(cps.listParams, dicRules)); StringBuilder sb = new StringBuilder(); foreach (Param p in cps.listParams) { sb.Append(p.cname + "---" + p.value + "\r\n"); } LoggerUtils.LoggerUtils.loggerTxt(@"d:\test.txt", sb.ToString()); sb.Clear(); foreach (HtmlAttribute ha in cps.listHtmlAttributes) { sb.Append(handleHtmlAttributes(ha)); } LoggerUtils.LoggerUtils.loggerTxt(@"d:\test2.txt", sb.ToString()); } }
public static void importCarsParams(String dataFilePath) { DataTable dt = ExcelUtils.ExcelUtil.getDataTableFromExcel(dataFilePath); int rowParamNameFirst = 4; //检查参数名称第一顺位行 int rowParamNameSecond = 3; //检查参数名称第二顺位行 int[] cursorPackageCode = searchFromDataTable(dt, "Model"); ParamsCollection.dt = dt; Dictionary <String, HtmlAttribute> dicRules = ParamsCollection.dicRules; //所有车型配置信息的list List <CarParams> listCarParams = new List <CarParams>(); int rowCounterBeforeConfig = getRowCounterBeforeConfig(dt); int carConfigCounter = dt.Rows.Count - rowCounterBeforeConfig; //针对每个配置信息获取对应参数 for (int carConfigIter = 0; carConfigIter < carConfigCounter; carConfigIter++) { CarParams cps = new CarParams(); List <paramPo> listParampo = new List <paramPo>(); //配置所在行数 int rowNo = carConfigIter + rowCounterBeforeConfig; //行号 int columnNo = 0; //当没有到达最后一列的时候继续增加列数 while (columnNo < dt.Columns.Count) { String cname = null; String value = null; String cnameFirst = null; String cnameSecond = null; Param p = null; //因为packageCode与其他参数在不同行,所以需要单独判断 if (cursorPackageCode[1] >= 0 && columnNo <= cursorPackageCode[1] + 2) { int rowNoPackageCode = cursorPackageCode[0]; cname = dt.Rows[rowNoPackageCode][columnNo].ToString().Trim(); value = dt.Rows[rowNo][columnNo].ToString().Trim(); if (!String.IsNullOrEmpty(cname)) { p = new EngineParam(cname, null, value); cps.listParams.Add(p); } columnNo++; continue; } cnameFirst = dt.Rows[rowParamNameFirst][columnNo].ToString(); cnameSecond = dt.Rows[rowParamNameSecond][columnNo].ToString(); value = dt.Rows[rowNo][columnNo].ToString().Trim(); cname = null; if (!String.IsNullOrEmpty(cnameFirst)) { cname = cnameFirst.Trim(); } else { if (!String.IsNullOrEmpty(cnameSecond)) { cname = cnameSecond.Trim(); } else { columnNo++; continue; } } p = new EngineParam(cname, null, value); cps.listParams.Add(p); columnNo++; } //获取配置号信息 String packageCode = ImportServiceForHCBM.getParameter("Model", cps.listParams) + "_" + ImportServiceForSHFY.getParameter("Package", cps.listParams) + "_" + ImportServiceForSHFY.getParameter("Profile", cps.listParams); cps.packageCode = packageCode; listCarParams.Add(cps); } //将全部参数添加到参数合集当中 ParamsCollection.carParams = listCarParams; }
public List <RentCarNewVehiclesDB> GetListOFcarsBySearchParameter([FromBody] CarParams carParameter) { return(Customers.CarsSearchFilter(carParameter.Gear, carParameter.Year, carParameter.Manufacturer, carParameter.Model, carParameter.Category, carParameter.Branch, carParameter.YourText)); }//Search cars Filter
//private void Form1_FormClosing(object sender, EventArgs e) //{ // Application.Exit(); //} //protected override void OnResize(EventArgs e) //{ // base.OnResize(e); // if (cccFiller != null && ribbon.SelectedPage.Text == "CCC") // cccFiller.SetWindowPos(); //} //protected override void OnLocationChanged(EventArgs e) //{ // base.OnLocationChanged(e); // if (cccFiller != null && ribbon.SelectedPage.Text == "CCC") // cccFiller.SetWindowPos(); //} //protected override void OnSizeChanged(EventArgs e) //{ // base.OnSizeChanged(e); // if (cccFiller != null && ribbon.SelectedPage.Text == "CCC") // cccFiller.SetWindowPos(); //} private void barButtonItem2_ItemClick(object sender, ItemClickEventArgs e) { try { //判断dataFile地址是不是为空 if (this.dataFileTextBox.EditValue == null) { throw new Exception("数据文件未导入,请选择数据文件"); } String dataFilePath = this.dataFileTextBox.EditValue.ToString(); String ruleFilePath = ParamsCollection.localAddr + "rules.xls"; ImportAction importAction = new ImportAction(); List <String> listPackageCode = importAction.importDataAndRules(ruleFilePath, dataFilePath); ChooseSample cs = new ChooseSample(); if (cs.ShowDialog() == System.Windows.Forms.DialogResult.Yes) { importAction.deleteUnselectedCarParams(ParamsCollection.selectedPackageCodes); StringBuilder sb = new StringBuilder(); for (int i = 0; i < ParamsCollection.carParams.Count; i++) { CarParams cps = ParamsCollection.carParams[i]; ParamsCollection.runningCarParams = cps; this.RunningCarInfo.Caption = "当前正在处理的车型为" + cps.packageCode + " (" + (i + 1) + "/" + ParamsCollection.carParams.Count + ")"; cps.listHtmlAttributes.Clear(); cps.listHtmlAttributes.AddRange(DataTransformServiceForHCBM.getAllHAInACar(cps.listParams, ParamsCollection.dicRules)); LoginAction.tryLogin(this.mainWebBrowser); this.wait(1); this.mainWebBrowser.Navigate(Constants.APPLY_TEMPORARY_SEQUENCE_NUMBER_PAGE); this.wait(1); FillConfigurationAction f = new FillConfigurationAction(this.mainWebBrowser); f.fillConfigTest(cps.listHtmlAttributes); this.wait(1); //f.submit(); this.wait(1); //while (String.IsNullOrEmpty(ParamsCollection.runningCarParams.configCode)) //{ // Application.DoEvents(); //} this.wait(1); f = new FillConfigurationAction(this.mainWebBrowser); ExportServiceForHCBM.exportCarParams(dataFilePath, cps); //在网页上直接提交车型 //f.submitConfigCode(ParamsCollection.runningCarParams.configCode); //while (ParamsCollection.runningCarParams.submitConfigCode != true) //{ // Application.DoEvents(); //} } //LoggerUtils.LoggerUtils.loggerTxt(@"d:\test.txt", sb.ToString()); this.mainWebBrowser.Url = new Uri(DeclarationSite.PZSite); this.RunningCarInfo.Caption = "全部任务完成"; } else { } } catch (Exception ex) { MessageBox.Show(ex.StackTrace + ex.Message); } }
/// <summary> /// 直接将申报参数填写会导入的excel文件中 /// </summary> /// <param name="filePath"></param> /// <param name="list"></param> public static void exportCarParams(String filePath, CarParams cps) { ExcelUtil.exportCarParamsForSHGM(filePath, cps.packageCode, cps.listParams); }
public void importCarsParams(String dataFilePath) { String engineInfoStartString = "车辆名称"; String configInfoStartString = "MD配置信息"; String patacCodeInitial = "P"; DataTable dt = ExcelUtils.ExcelUtil.getDataTableFromExcel(dataFilePath); ParamsCollection.dt = dt; Dictionary <String, HtmlAttribute> dicRules = ParamsCollection.dicRules; //所有车型配置信息的list List <CarParams> listCarParams = new List <CarParams>(); LoggerUtils.LoggerUtils.logger(dt.Columns.Count.ToString()); int columnCounterBeforeConfig = 3; int carConfigCounter = dt.Columns.Count - columnCounterBeforeConfig; //针对每个配置信息获取对应参数 for (int carConfigIter = 0; carConfigIter < carConfigCounter; carConfigIter++) { CarParams cps = new CarParams(); List <paramPo> listParampo = new List <paramPo>(); //配置所在列数 int columnNo = carConfigIter + columnCounterBeforeConfig; //行号 int rowno = 0; String cname = dt.Rows[rowno][0].ToString(); String value = dt.Rows[rowno][columnNo].ToString(); String pcode = dt.Rows[rowno][1].ToString(); //当不是车辆名称的时候继续增加行数 while (!cname.Equals("车辆名称")) { rowno++; cname = dt.Rows[rowno][0].ToString(); if (rowno >= dt.Rows.Count) { throw new Exception("已经超过最大行,还未找到车辆名称"); } } //从车辆名称到燃料种类 while (!cname.Equals("部门会签")) { if (String.IsNullOrEmpty(cname)) { rowno++; cname = dt.Rows[rowno][0].ToString(); continue; } value = dt.Rows[rowno][columnNo].ToString(); pcode = dt.Rows[rowno][1].ToString(); Param p = new EngineParam(cname, pcode, value); cps.listParams.Add(p); rowno++; cname = dt.Rows[rowno][0].ToString(); } //获取配置号信息 String packageCode = ImportServiceForSHFY.getParameter("Model Code", cps.listParams) + ImportServiceForSHFY.getParameter("Package Code", cps.listParams) + "-" + ImportServiceForSHFY.getParameter("Order Sample", cps.listParams); cps.packageCode = packageCode; //获取是否需要申报配置号信息 String needConfig = ImportServiceForSHFY.getParameter("是否申报新配置", cps.listParams); if (needConfig.Equals("Y", StringComparison.OrdinalIgnoreCase)) { cps.needConfigCode = true; } else { cps.needConfigCode = false; } //通过配置号信息获取工程信息数据 List <String> listPackageCode = new List <string>(); if (!String.IsNullOrEmpty(packageCode)) { //如果需要填报才显示对应的packagecode if (cps.needConfigCode) { listPackageCode.Add(packageCode); } listParampo = ImportServiceForSHFY.getParamsByPackageCode(listPackageCode); } foreach (Param p in cps.listParams) { //只有型式认证编码有效的才能够获取数据 if (p.patacode.StartsWith(patacCodeInitial)) { String paramValue = ImportServiceForSHFY.getParameter(cps.packageCode, p.patacode, listParampo); if (String.IsNullOrEmpty(p.value)) { //p.value = "test"; } if (String.IsNullOrEmpty(paramValue)) { continue; } p.value = paramValue; } } //获取配置信息版本号 String versionNum = getVersionNumFromListParamPo(listParampo); cps.version = versionNum; //获取配置信息 //从部门会签到MD配置信息 while (!cname.Equals("MD配置信息")) { rowno++; cname = dt.Rows[rowno][0].ToString(); } //对配置参数进行转化,转化为参数列表(listParams而不是listHtmlAttributes) while (rowno < dt.Rows.Count) { cname = dt.Rows[rowno][0].ToString().Trim(); //将全部英文符号换成中文符号 cname = cname.Replace("(", "(").Replace(")", ")"); value = dt.Rows[rowno][columnNo].ToString().Trim(); if (String.IsNullOrEmpty(cname)) { rowno++; continue; } HtmlAttribute ha = null; if (dicRules.ContainsKey(cname)) { ha = dicRules[cname]; } //当能够找到对应参数而且参数值不为空的时候才进行 //适用于能够直接找到对应参数名称的情况 if (ha != null && !String.IsNullOrEmpty(value)) { //处理text类型和checkbox类型 if (ha.elementType.Equals(Matcher.Matcher.TYPE_TEXT) || ha.elementType.Equals(Matcher.Matcher.TYPE_CHECK_BOX)) { Param p = new ConfigParam(cname, null, Matcher.Matcher.VALUE_CHECKBOX); cps.listParams.Add(p); } //处理othercheckbox类型 else if (ha.elementType.Equals(Matcher.Matcher.TYPE_OTHER_CHECK_BOX)) { Param p1 = new ConfigParam(cname, null, Matcher.Matcher.VALUE_CHECKBOX); cps.listParams.Add(p1); if (dicRules.ContainsKey(cname + "内容")) { Param p2 = new ConfigParam(cname + "内容", null, value); cps.listParams.Add(p2); } } } else if (cname.Contains("下拉菜单")) { cname = cname.Replace("(下拉菜单)", "").Trim(); //如果不包含直接下一个参数U if (!dicRules.ContainsKey(cname)) { rowno++; continue; } ha = dicRules[cname]; Boolean got = false; while (!cname.Equals("其他")) { rowno++; cname = dt.Rows[rowno][0].ToString(); value = dt.Rows[rowno][columnNo].ToString(); if (!got) { if (!String.IsNullOrEmpty(value) && ha != null) { //如果是S的话就是有这个配置,如果有这个配置就把对应的cname作为value。因为这是一个下拉菜单项 Param p1 = new ConfigParam(ha.name, null, cname); cps.listParams.Add(p1); got = !got; if (cname.Equals("其他")) // 其他项目内容 { Param p2 = new ConfigParam(ha.name + "其他", null, value); cps.listParams.Add(p2); } } } } } rowno++; } listCarParams.Add(cps); } //将全部参数添加到参数合集当中 ParamsCollection.carParams = listCarParams; }
/// <summary> /// 直接将申报参数填写会导入的excel文件中 /// </summary> /// <param name="filePath"></param> /// <param name="list"></param> public static void exportCarParams(String filePath, CarParams cps) { ExcelUtil.exportCarParamsForHCBM(filePath, cps.packageCode, cps.ConfigCode); }