Exemple #1
0
        public async Task <ActionResult> SendRegionSettings(int OperationType, int RegionProperty, string[] Vehicles, long RegionID)
        {
            OperationResult valid  = null;
            var             region = TerminalSettingsBLL.GetRegionsByRegionID((int)RegionID);

            TerminalSettingType SettingType;

            if (OperationType == (int)RegionSettingType.更新区域)
            {
                SettingType = TerminalSettingType.RegionSettings_Update;
            }
            else if (OperationType == (int)RegionSettingType.追加区域)
            {
                SettingType = TerminalSettingType.RegionSettings_Add;
            }
            else
            {
                SettingType = TerminalSettingType.None;
                valid       = new OperationResult()
                {
                    Success = false, Message = "区域设置暂不支持除 更新、追加 之外的其它操作。"
                };
            }

            if (Vehicles == null || Vehicles.Length == 0)
            {
                valid = new OperationResult()
                {
                    Success = false, Message = "未指定设置的车辆。"
                }
            }
            ;

            else if (region == null || region.Count == 0)
            {
                valid = new OperationResult()
                {
                    Success = false, Message = "数据库中未找到指定的区域。"
                }
            }
            ;

            else if (region[0].RegionsType < 1 || region[0].RegionsType > 3)
            {
                valid = new OperationResult()
                {
                    Success = false, Message = "指定的区域类型不受支持。"
                }
            }
            ;

            else if (OperationType == (int)RegionSettingType.更新区域 && region[0].RegionsType == 3)
            {
                return(Json(new OperationResult[] { new OperationResult()
                                                    {
                                                        Success = false, Message = "多边形区域不支持更新操作。"
                                                    } }));
            }

            if (valid != null)
            {
                dynamic settingData = new ExpandoObject();
                settingData.OperationType  = OperationType;
                settingData.RegionProperty = RegionProperty;
                settingData.Vehicles       = Vehicles;
                settingData.RegionID       = RegionID;
                TerminalSettingsBLL.InsertTerminalOperationsLog(
                    base.CurrentUserID,
                    SettingType,
                    null,
                    null,
                    false,
                    JsonConvert.SerializeObject(settingData),
                    valid.Message,
                    GetRemoteAddress()
                    );
                return(Json(new OperationResult[] { valid }));
            }

            var tasks = new Task <OperationResult> [Vehicles.Length];

            for (int i = 0; i != Vehicles.Length; i++)
            {
                string[] PlateNumAndTerminalCode = Vehicles[i].Split('#');
                string   PlateNum     = PlateNumAndTerminalCode[0];
                string   TerminalCode = PlateNumAndTerminalCode[1];
                var      client       = new TerminalOperationClient();
                if (OperationType == (int)RegionSettingType.更新区域)
                {
                    tasks[i] = InternalUpdateRegionSettings((RegionProperty)RegionProperty, PlateNum, TerminalCode, region, client);
                }
                else if (OperationType == (int)RegionSettingType.追加区域)
                {
                    tasks[i] = InternalAddRegionSettings((RegionProperty)RegionProperty, PlateNum, TerminalCode, region, client);
                }
            }

            var result = await Task.WhenAll <OperationResult>(tasks);

            return(Json(result));
        }
Exemple #2
0
        /// <summary>
        /// 查询指定区域数据
        /// </summary>
        /// <param name="RegionID">区域ID</param>
        /// <returns>MapRegionsEditModel[]</returns>
        public ActionResult GetRegionData(int RegionID)
        {
            var regions = TerminalSettingsBLL.GetRegionsByRegionID(RegionID);

            return(Json(regions, JsonRequestBehavior.AllowGet));
        }