예제 #1
0
 /// <summary>
 /// 删除通行设置
 /// </summary>
 /// <param name="guid"></param>
 /// <returns></returns>
 public bool DeleteTrafficRestriction(TrafficRestrictionModel model)
 {
     return(databaseoperate.DeleteInDataBase(new TrafficRestrictionModel()
     {
         Guid = model.Guid
     }));
 }
예제 #2
0
        public IHttpActionResult ModifyTrafficRestriction(ModifyTrafficRestrictionRequest model)
        {
            ResponseBaseCommon response = new ResponseBaseCommon()
            {
                IsSuccess      = true,
                MessageCode    = (int)ApiBaseErrorCode.API_SUCCESS,
                MessageContent = ApiBaseErrorCode.API_SUCCESS.ToString()
            };

            if (string.IsNullOrWhiteSpace(model.ParkingCode) ||
                string.IsNullOrWhiteSpace(model.Guid) ||
                string.IsNullOrWhiteSpace(model.ProjectGuid))
            {
                response.IsSuccess      = false;
                response.MessageCode    = (int)ApiBaseErrorCode.API_PARAM_ERROR;
                response.MessageContent = "必要参数缺失,请检查";
                return(Ok(response));
            }

            TrafficRestrictionModel content = _trafficRestrictionManager.GetTrafficRestriction(model.Guid);

            if (content != null)
            {
                if (content.ProjectGuid == model.ProjectGuid)
                {
                    string[] drivewayguids = (model.DrivewayGuid ?? "").Split(',');
                    string[] cartypeguids  = (model.CarTypeGuid ?? "").Split(',');

                    content.DrivewayGuid = drivewayguids.ToList();
                    content.CarTypeGuid  = cartypeguids.ToList();;
                    content.AssignDays   = model.AssignDays;
                    content.StartTime    = model.StartTime;
                    content.EndTime      = model.EndTime;

                    List <DrivewayModel> drivewayList = _parkLotManager.AllDriveway(model.ParkingCode);
                    if (!_trafficRestrictionManager.SaveTrafficRestriction(content, drivewayList))
                    {
                        response.IsSuccess      = false;
                        response.MessageCode    = (int)ApiBaseErrorCode.API_FAIL;
                        response.MessageContent = "保存数据失败";// ApiBaseErrorCode.API_FAIL.ToString();
                    }
                }
                else
                {
                    response.IsSuccess      = false;
                    response.MessageCode    = (int)ApiBaseErrorCode.API_INTERFACENAME_ERROR;
                    response.MessageContent = ApiBaseErrorCode.API_INTERFACENAME_ERROR.ToString();
                }
            }
            else
            {
                response.IsSuccess      = false;
                response.MessageCode    = (int)ApiSystemErrorCode.API_DATA_NULL_ERROR;
                response.MessageContent = ApiSystemErrorCode.API_DATA_NULL_ERROR.ToString();
            }
            return(Ok(response));
        }
예제 #3
0
        /// <summary>
        /// 删除通行设置
        /// </summary>
        /// <param name="guid"></param>
        /// <returns></returns>
        public bool DeleteTrafficRestriction(TrafficRestrictionModel model, List <DrivewayModel> drivewayList)
        {
            bool flag = _iTrafficRestrictionContext.DeleteTrafficRestriction(model);

            if (!flag)
            {
                return(false);
            }
            model.DrivewayGuid.Clear();
            //下发通行限制
            return(SendTrafficRestriction(model, drivewayList));
        }
예제 #4
0
        /// <summary>
        /// 保存通行设置
        /// 并下发mq数据
        /// </summary>
        /// <param name="model"></param>
        /// <param name="drivewayList">该停车场所有的车道</param>
        /// <returns></returns>
        public bool SaveTrafficRestriction(TrafficRestrictionModel model, List <DrivewayModel> drivewayList)
        {
            bool flag = _iTrafficRestrictionContext.SaveTrafficRestriction(model);

            if (!flag)
            {
                return(false);
            }

            //下发通行限制
            return(SendTrafficRestriction(model, drivewayList));
        }
예제 #5
0
        public IHttpActionResult RemoveTrafficRestriction(ModifyTrafficRestrictionRequest model)
        {
            ResponseBaseCommon response = new ResponseBaseCommon()
            {
                IsSuccess      = true,
                MessageCode    = (int)ApiBaseErrorCode.API_SUCCESS,
                MessageContent = ApiBaseErrorCode.API_SUCCESS.ToString()
            };

            if (string.IsNullOrWhiteSpace(model.Guid) ||
                string.IsNullOrWhiteSpace(model.ParkingCode) ||
                string.IsNullOrWhiteSpace(model.ProjectGuid))
            {
                response.IsSuccess      = false;
                response.MessageCode    = (int)ApiBaseErrorCode.API_PARAM_ERROR;
                response.MessageContent = "必要参数缺失,请检查";
                return(Ok(response));
            }

            TrafficRestrictionModel content = _trafficRestrictionManager.GetTrafficRestriction(model.Guid);

            if (content != null)
            {
                if (content.ProjectGuid == model.ProjectGuid && content.ParkCode == model.ParkingCode)
                {
                    List <DrivewayModel> drivewayList = _parkLotManager.AllDriveway(content.ParkCode);
                    if (!_trafficRestrictionManager.DeleteTrafficRestriction(content, drivewayList))
                    {
                        response.IsSuccess      = false;
                        response.MessageCode    = (int)ApiBaseErrorCode.API_FAIL;
                        response.MessageContent = _trafficRestrictionManager.LastErrorDescribe;
                    }
                }
                else
                {
                    response.IsSuccess      = false;
                    response.MessageCode    = (int)ApiBaseErrorCode.API_INTERFACENAME_ERROR;
                    response.MessageContent = ApiBaseErrorCode.API_INTERFACENAME_ERROR.ToString();
                }
            }
            else
            {
                response.IsSuccess      = false;
                response.MessageCode    = (int)ApiSystemErrorCode.API_DATA_NULL_ERROR;
                response.MessageContent = "未找到此限行规则";// ApiSystemErrorCode.API_DATA_NULL_ERROR.ToString();
            }
            return(Ok(response));
        }
예제 #6
0
        /// <summary>
        /// 下发通行限制
        /// </summary>
        /// <param name="model">通行限制模型</param>
        /// <param name="drivewayList">停车场车道集合</param>
        /// <returns></returns>
        public bool SendTrafficRestriction(TrafficRestrictionModel model, List <DrivewayModel> drivewayList)
        {
            bool result = false;

            LastErrorDescribe = BussinessErrorCodeEnum.BUSINESS_MQ_SEND_ERROR.GetDesc();
            try
            {
                //根据车道集合一条一条发送给相机,减少相机计算
                foreach (var drivewayModel in drivewayList)
                {
                    TrafficRestrictionDetialModel sendmodel = new TrafficRestrictionDetialModel()
                    {
                        Guid           = model.Guid,
                        CarTypeGuid    = model.CarTypeGuid,
                        DeviceIdentify = drivewayModel.DeviceMacAddress,
                        AssignDays     = model.AssignDays,
                        StartTime      = model.StartTime,
                        EndTime        = model.EndTime,
                        IsDelete       = model.DrivewayGuid.Count(m => m == drivewayModel.Guid) > 0 ? false : true
                    };

                    CommandEntity <TrafficRestrictionDetialModel> entity = new CommandEntity <TrafficRestrictionDetialModel>()
                    {
                        command = BussineCommand.Restrict,
                        idMsg   = Convert.ToBase64String(Guid.NewGuid().ToByteArray()),
                        message = sendmodel
                    };
                    result = m_rabbitMQ.SendMessageForRabbitMQ("发送通行限制指令", m_serializer.Serialize(entity), entity.idMsg, model.ParkCode);
                    if (!result)
                    {
                        break;
                    }
                }
                return(result);
            }
            catch (Exception ex)
            {
                m_logger.LogFatal(LoggerLogicEnum.Bussiness, model.Guid, model.ParkCode, "", "Fujica.com.cn.Business.ParkLot.TrafficRestrictionManager.SendTrafficRestriction", "下发通行限制时发生异常", ex.ToString());
                LastErrorDescribe = BussinessErrorCodeEnum.BUSINESS_MQ_SEND_ERROR.GetDesc();
                return(false);
            }
        }
예제 #7
0
        public IHttpActionResult AddNewTrafficRestriction(TrafficRestrictionRequest model)
        {
            ResponseBaseCommon response = new ResponseBaseCommon()
            {
                IsSuccess      = true,
                MessageCode    = (int)ApiBaseErrorCode.API_SUCCESS,
                MessageContent = ApiBaseErrorCode.API_SUCCESS.ToString()
            };

            if (string.IsNullOrWhiteSpace(model.ParkingCode) ||
                string.IsNullOrWhiteSpace(model.ProjectGuid))
            {
                response.IsSuccess      = false;
                response.MessageCode    = (int)ApiBaseErrorCode.API_PARAM_ERROR;
                response.MessageContent = "必要参数缺失,请检查";
                return(Ok(response));
            }

            string[] drivewayguids          = (model.DrivewayGuid ?? "").Split(',');
            string[] cartypeguids           = (model.CarTypeGuid ?? "").Split(',');
            TrafficRestrictionModel content = new TrafficRestrictionModel()
            {
                Guid         = Guid.NewGuid().ToString("N"),
                ProjectGuid  = model.ProjectGuid,
                ParkCode     = model.ParkingCode,
                DrivewayGuid = drivewayguids.ToList(),
                CarTypeGuid  = cartypeguids.ToList(),
                AssignDays   = model.AssignDays,
                StartTime    = model.StartTime,
                EndTime      = model.EndTime
            };
            List <DrivewayModel> drivewayList = _parkLotManager.AllDriveway(model.ParkingCode);

            if (!_trafficRestrictionManager.SaveTrafficRestriction(content, drivewayList))
            {
                response.IsSuccess      = false;
                response.MessageCode    = (int)ApiBaseErrorCode.API_FAIL;
                response.MessageContent = "保存数据失败";// ApiBaseErrorCode.API_FAIL.ToString();
            }
            return(Ok(response));
        }
예제 #8
0
 /// <summary>
 /// 保存通行设置
 /// </summary>
 /// <param name="model"></param>
 /// <param name="drivewayList">该停车场所有的车道</param>
 /// <returns></returns>
 public bool SaveTrafficRestriction(TrafficRestrictionModel model)
 {
     return(databaseoperate.SaveToDataBase(model));
 }