Ejemplo n.º 1
0
        private static void HandleCarParamsReceived(object model, BasicDeliverEventArgs ea)
        {
            CarParams carParams = CarParams.Deserialize(ea.Body);

            Console.WriteLine("Received car params:" + carParams);
            textLogger.AppendLine(carParams.ToString());
        }
Ejemplo n.º 2
0
        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));
                }
            }
        }
Ejemplo n.º 3
0
        public void Handle(CarParams car)
        {
            var carEntity = _mapper.Map <Car>(car);

            carEntity.AddedOn = DateTime.Now;

            _carRepository.Add(carEntity);
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        public void Handle(CarParams car)
        {
            var newCar = new Car
            {
                Name    = car.Name,
                AddedOn = DateTime.Now
            };

            _repository.CreateCar(newCar);
        }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
0
        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();
        }
Ejemplo n.º 8
0
        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!");
        }
Ejemplo n.º 9
0
        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);
            }
        }
Ejemplo n.º 10
0
        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
            });
        }
Ejemplo n.º 11
0
        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);
            }
        }
Ejemplo n.º 12
0
        //重复多次提交配置号
        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);
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        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);
            }
        }
Ejemplo n.º 15
0
 public void Post([FromBody] CarParams car)
 {
     _createCarUseCase.Handle(car);
 }
Ejemplo n.º 16
0
        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));
        }
Ejemplo n.º 17
0
 public List <RentCarRentedCar> GetRentedCarByLicNum([FromBody] CarParams paramsCar)
 {
     return(ReturnVehicle.GetRentedCarsByLisnumber(paramsCar.LicenceNumber));
 }//search rented car by license numiber from reted cars list
Ejemplo n.º 18
0
        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());
            }
        }
Ejemplo n.º 19
0
        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
Ejemplo n.º 21
0
        //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);
            }
        }
Ejemplo n.º 22
0
 /// <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);
 }
Ejemplo n.º 23
0
        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;
        }
Ejemplo n.º 24
0
 /// <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);
 }