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)); }
/// <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)); }