コード例 #1
0
        /// <summary>
        /// Constructor
        /// </summary>
        public GcrRequest()
        {
            CMD_LEN1      = new RegionProperty("CMD_LEN1", 3);
            GCR_ACQIDXREQ = new FixedLengthProperty <Nullable <int> >("GCR_ACQIDXREQ", 2, false,
                                                                      StringFormatter.IntegerStringFormatter, StringParser.IntegerStringParser);
            GCR_APPTYPREQ = new FixedLengthProperty <Nullable <int> >("GCR_APPTYPREQ", 2, false,
                                                                      StringFormatter.IntegerStringFormatter, StringParser.IntegerStringParser);
            GCR_AMOUNT = new FixedLengthProperty <Nullable <long> >("GCR_AMOUNT", 12, false,
                                                                    StringFormatter.LongIntegerStringFormatter, StringParser.LongIntegerStringParser);
            GCR_DATE_TIME = new TextProperty <Nullable <DateTime> >("GCR_DATE_TIME", false,
                                                                    StringFormatter.DateTimeStringFormatter, StringParser.DateTimeStringParser);
            GCR_TABVER = new FixedLengthProperty <string>("GCR_TABVER", 10, false,
                                                          StringFormatter.StringStringFormatter, StringParser.StringStringParser);
            GCR_IDAPP_Collection = new DataCollectionProperty <GcrIdApp>("GCR_IDAPP_Collection", 2, 0, 4,
                                                                         StringFormatter.PropertyControllerStringFormatter,
                                                                         StringParser.PropertyControllerStringParser <GcrIdApp>);
            GCR_CTLSON = new TextProperty <Nullable <bool> >("GCR_CTLSON", true,
                                                             StringFormatter.BooleanStringFormatter, StringParser.BooleanStringParser);

            this.StartRegion(CMD_LEN1);
            {
                this.AddProperty(GCR_ACQIDXREQ);
                this.AddProperty(GCR_APPTYPREQ);
                this.AddProperty(GCR_AMOUNT);
                this.AddProperty(GCR_DATE_TIME);
                this.AddProperty(GCR_TABVER);
                this.AddProperty(GCR_IDAPP_Collection);
                this.AddProperty(GCR_CTLSON);
            }
            this.EndLastRegion();
        }
コード例 #2
0
 set => SetValue(RegionProperty, value);
コード例 #3
0
 /// <summary>
 /// Creates a LFE request.
 /// </summary>
 public LfeRequest()
     : base(new IngenicoContext())
 {
     this.CMD_LEN1 = new RegionProperty("CMD_LEN1", 3);
 }
コード例 #4
0
ファイル: RegionSetup.cs プロジェクト: SweetieXu/lhzw
        private Task <OperationResult> InternalAddRegionSettings(
            RegionProperty RegionProperty,
            string PlateNum,
            string TerminalCode,
            List <MapRegionsEditModel> RegionModel,
            TerminalOperationClient client
            )
        {
            return(Task <OperationResult> .Run(() =>
            {
                dynamic settingData = new ExpandoObject();
                settingData.OperationType = RegionSettingType.追加区域;
                settingData.RegionProperty = RegionProperty;
                settingData.Vehicles = new string[] { PlateNum };
                settingData.RegionID = RegionModel[0].ID;

                var exists = TerminalSettingsBLL.RegionVehicleRelationExists(PlateNum, TerminalCode, RegionModel[0].ID);
                if (exists.Item1)
                {
                    var r = new OperationResult()
                    {
                        Success = false,
                        Message = "数据库中已存在与指定车辆、区域对应的设置记录。"
                    };
                    TerminalSettingsBLL.InsertTerminalOperationsLog(
                        base.CurrentUserID,
                        TerminalSettingType.RegionSettings_Add,
                        PlateNum,
                        TerminalCode,
                        false,
                        JsonConvert.SerializeObject(settingData),
                        r.Message,
                        GetRemoteAddress()
                        );
                    return r;
                }

                StringBuilder start = new StringBuilder(), end = new StringBuilder();
                start.Append(RegionModel[0].StartDate == null ? "1601.01.01" : RegionModel[0].StartDate);
                start.Append(" ");
                start.Append(RegionModel[0].StartTime == null ? "00:00:00.000" : RegionModel[0].StartTime);

                end.Append(RegionModel[0].EndDate == null ? "1601.01.01" : RegionModel[0].EndDate);
                end.Append(" ");
                end.Append(RegionModel[0].EndTime == null ? "00:00:00.000" : RegionModel[0].EndTime);

                OperationResultGeneralRep response = null;
                switch (RegionModel[0].RegionsType)
                {
                case 1:        //圆形
                    response = client.SetCircularRegion(TerminalCode, new CircularRegionSettingData()
                    {
                        RegionSettingType = RegionSettingType.追加区域,
                        CircularRegionItems = new CircularRegionItem[]
                        {
                            new CircularRegionItem()
                            {
                                RegionID = (uint)RegionModel[0].ID,
                                CentralPointLatitude = RegionModel[0].CenterLatitude,
                                CentralPointLongitude = RegionModel[0].CenterLongitude,
                                Radius = Convert.ToUInt32(RegionModel[0].Radius),
                                MaxSpeed = Convert.ToUInt16(RegionModel[0].SpeedLimit),
                                OverSpeedDuration = (byte)RegionModel[0].OverSpeedDuration,
                                IsCyclical = RegionModel[0].Periodic,
                                StartDateTime = DateTime.Parse(start.ToString()),
                                EndDateTime = DateTime.Parse(end.ToString()),
                                RegionProperty = (RegionProperty)RegionProperty,
                            }
                        }
                    });
                    break;

                case 2:        //矩形
                    response = client.SetRectangularRegion(TerminalCode, new RectangularRegionSettingData()
                    {
                        RegionSettingType = RegionSettingType.追加区域,
                        RectangularRegionItems = new RectangularRegionItem[]
                        {
                            new RectangularRegionItem()
                            {
                                RegionID = (uint)RegionModel[0].ID,
                                TopLeftPointLatitude = RegionModel[0].LeftUpperLatitude,
                                TopLeftPointLongitude = RegionModel[0].LeftUpperLongitude,
                                BottomRightPointLatitude = RegionModel[0].RightLowerLatitude,
                                BottomRightPointLongitude = RegionModel[0].RightLowerLongitude,
                                MaxSpeed = Convert.ToUInt16(RegionModel[0].SpeedLimit),
                                OverSpeedDuration = (byte)RegionModel[0].OverSpeedDuration,
                                IsCyclical = RegionModel[0].Periodic,
                                StartDateTime = DateTime.Parse(start.ToString()),
                                EndDateTime = DateTime.Parse(end.ToString()),
                                RegionProperty = (RegionProperty)RegionProperty,
                            }
                        }
                    });
                    break;

                case 3:        //多边形
                    break;

                default:
                    break;
                }

                OperationResult resultElement = null;

                if (!response.State)
                {
                    //车机端操作失败
                    resultElement = new OperationResult()
                    {
                        Success = false,
                        Message = response.Message
                    };
                    TerminalSettingsBLL.InsertTerminalOperationsLog(
                        base.CurrentUserID,
                        TerminalSettingType.RegionSettings_Update,
                        PlateNum,
                        TerminalCode,
                        false,
                        JsonConvert.SerializeObject(settingData),
                        resultElement.Message,
                        GetRemoteAddress()
                        );
                }
                else
                {
                    bool success = TerminalSettingsBLL.AddRegionVehicleRelation(PlateNum, TerminalCode, RegionModel[0].ID, (ushort)RegionProperty);
                    resultElement = new OperationResult()
                    {
                        Success = success,
                        Message = success ? DisplayText.OperationSucceeded : "车机端更新操作成功完成,添加数据库记录出错。"
                    };
                    TerminalSettingsBLL.InsertTerminalOperationsLog(
                        base.CurrentUserID,
                        TerminalSettingType.RegionSettings_Update,
                        PlateNum,
                        TerminalCode,
                        success,
                        JsonConvert.SerializeObject(settingData),
                        resultElement.Message,
                        GetRemoteAddress()
                        );
                }
                return resultElement;
            }));
        }