예제 #1
0
        //获取配置信息
        internal BPServerConfig GetServerConfig(BPServerConfig serverConfig)
        {
            IList <BPServerConfig> serverConfigFlag = bpServerConfigServer.GetBPServerConfigByKey(serverConfig);

            if (serverConfigFlag != null && serverConfigFlag.Count > 0)
            {
                return(serverConfigFlag[0]);
            }
            return(null);
        }
예제 #2
0
        /// <summary>
        ///   获取服务器某块的svc服务是否在本地配置存在
        /// </summary>
        internal string GetServerModelStr()
        {
            BPServerConfig serverConfig = GetServerConfig();

            if (serverConfig != null)
            {
                return(serverConfig.BusinessLogicAddress);
            }
            return("");
        }
 /// <summary>
 ///  需要配置的服务信息
 /// </summary>
 /// <param name="serverConfig">ServerConfig 实体</param>
 public void  InsertBPServerConfig(BPServerConfig serverConfig)
 {
     try
     {
         using (var sessionFactory = nhFactory.GetRepositoryFor <BPServerConfig>())
         {
             sessionFactory.Session.BeginTransaction();
             sessionFactory.Save(serverConfig);
             sessionFactory.Session.CommitChanges();
         }
     }
     catch (BPCloudException e)
     {
         throw new BPCloudException("error line 78", e, myLog);
     }
 }
예제 #4
0
        //获取配置信息
        internal BPServerConfig GetServerConfig()
        {
            BPServerConfig bpServerConfig = new BPServerConfig();

            bpServerConfig.Domain = "default";
            IList <BPServerConfig> bpServerConfigFlag = bpServerConfigServer.GetBPServerConfigByDomain(bpServerConfig);

            if (bpServerConfigFlag == null && bpServerConfigFlag.Count == 0)
            {
                bpServerConfig.BPServerConfigId = 3;
                bpServerConfigFlag.Add(bpServerConfig);
                return(GetServerConfig(bpServerConfigFlag[0]));
            }
            else
            {
                return(bpServerConfigFlag[0]);
            }
        }
        /// <summary>
        ///  查询本地配置的需要的服务器位置 GetBPServerConfigById
        /// </summary>
        /// <param name="serverConfig"> BPServerConfig 实体</param>
        /// <returns></returns>
        public IList <BPServerConfig> GetBPServerConfigByKey(BPServerConfig serverConfig)
        {
            IList <BPServerConfig> serverConfigFlag = null;

            try
            {
                using (var sessionFactory = nhFactory.GetRepositoryFor <BPServerConfig>())
                {
                    sessionFactory.Session.BeginTransaction();
                    serverConfigFlag = sessionFactory.Session.GetISession()
                                       .CreateQuery(" FROM BPServerConfig AS s WHERE s.BPServerConfigId=? ")
                                       .SetInt32(0, serverConfig.BPServerConfigId).List <BPServerConfig>();
                    sessionFactory.Session.CommitChanges();
                }
            }
            catch (BPCloudException e)
            {
                throw new BPCloudException("error line 47", e, myLog);
            }
            return(serverConfigFlag);
        }
예제 #6
0
        /// <summary>
        /// 为各客户端提供播放流需要的相关信息 GetStreamerParameterByCustomerToken
        /// </summary>
        /// <param name="channel">channel.ChannelId</param>
        /// <param name="customerToken">Token</param>
        /// <param name="streamerParmeter">ref 流媒体播放参数</param>
        /// <returns></returns>
        public ResponseBaseDto GetStreamerParameterByCustomerToken(Channel channel, string customerToken, ref BP4StreamerParameter streamerParmeter)
        {
            ResponseBaseDto dto = new ResponseBaseDto();

            try
            {
                UserTokenCache utc = UserTokenCache.GetInstance();
                if (utc.IsValid(customerToken) == false)
                {
                    dto.Code    = (int)CodeEnum.ServerNoToken;
                    dto.Message = "用户token已失效,请重新登录后继续";
                }
                else
                {
                    /*  channel.ChannelId 通道Id
                     *  channel.DeviceId 设备Id
                     *  bpServerConfig.BPServerConfigId 设备调用时需要的源
                     *  3个参数不可缺少
                     */
                    if (channel == null)
                    {
                        dto.Code    = (int)CodeEnum.NoComplete;
                        dto.Message = "提交数据不完整";
                        return(dto);
                    }
                    IList <Channel> channelFlag = channelServer.SelectChannelByChannelId(channel);
                    if (channelFlag == null || channelFlag.Count <= 0)
                    {
                        dto.Code    = (int)CodeEnum.NoHardWare;
                        dto.Message = "未找到需要的通道";
                        return(dto);
                    }
                    Device device = new Device();
                    device.DeviceId = channelFlag[0].DeviceId;
                    IList <Device> deviceFlag = deviceServer.SelectDeviceByDeviceId(device);
                    if (deviceFlag == null || deviceFlag.Count <= 0)
                    {
                        dto.Code    = (int)CodeEnum.NoHardWare;
                        dto.Message = "未找到需要的设备";
                        return(dto);
                    }
                    BPServerConfig bpServerConfig = new BPServerConfig();
                    bpServerConfig.BPServerConfigId = deviceFlag[0].BPServerConfigId;
                    IList <BPServerConfig> bpServerConfigFlag = bpServerConfigServer.GetBPServerConfigByKey(bpServerConfig);
                    if (bpServerConfigFlag == null || bpServerConfigFlag.Count <= 0)
                    {
                        dto.Code    = (int)CodeEnum.NoHardWare;
                        dto.Message = "没有找到需要请求流媒体的服务端";
                        return(dto);
                    }
                    //进行必须的流媒体配置
                    streamerParmeter.LoginModel             = new BP4DeviceLoginModel();
                    streamerParmeter.RealStreamModel        = new BP4RealStreamModel();
                    streamerParmeter.CustomerToken          = customerToken;
                    streamerParmeter.LoginModel.Address     = deviceFlag[0].SerialNumber;//设备的SN码 IP不可使用
                    streamerParmeter.LoginModel.AddressType = 5;
                    streamerParmeter.PlayerType             = 2;
                    if (deviceFlag[0].UserName != null && deviceFlag[0].UserName != "")
                    {
                        streamerParmeter.LoginModel.UserName = deviceFlag[0].UserName;
                    }
                    if (deviceFlag[0].PassWord != null && deviceFlag[0].PassWord != "")
                    {
                        streamerParmeter.LoginModel.Password = MDKey.Encrypt(deviceFlag[0].PassWord);
                    }
                    streamerParmeter.RealStreamModel.Channel   = channelFlag[0].ChannelNumber; //该通道所属设备的插槽号
                    streamerParmeter.RealStreamModel.ChannelId = channel.ChannelId;            //本地的通道Id

                    if (bpServerConfigFlag[0].StreamerPublicAddress.IndexOf(":") != -1)
                    {
                        string[] streamerAddress = bpServerConfigFlag[0].StreamerPublicAddress.Split(':');
                        streamerParmeter.RestServIp   = streamerAddress[0];
                        streamerParmeter.RestServPort = Convert.ToInt32(streamerAddress[1]);
                    }
                    streamerParmeter.RealStreamModel.SubStream = 0;
                    streamerParmeter.RealStreamModel.TransProc = 0;
                    dto.Code    = (int)CodeEnum.Success;
                    dto.Message = "流媒体参数已准备完成";
                }/*end if(utc.IsValid(customerToken) == false)*/
            }
            catch (Exception ex)
            {
                dto.Code    = (int)CodeEnum.ApplicationErr;
                dto.Message = "网络异常,请刷新页面后继续";
                myLog.ErrorFormat("GetStreamerParameterByCustomerToken方法异常,通道Id:{0}", ex, channel.ChannelId);
            }
            return(dto);
        }
예제 #7
0
        /// <summary>
        ///  1添加设备 2初次添加设备通道
        /// </summary>
        /// <returns>ResponseBaseDto</returns>
        public ResponseBaseDto AddDevice(string deviceName, string serialNumber, string customerToken)
        {
            ResponseBaseDto    dto  = new ResponseBaseDto();
            TokenCacheProperty tcp  = new TokenCacheProperty();
            UserTokenCache     utc  = UserTokenCache.GetInstance();
            OperaterLog        oLog = new OperaterLog();

            oLog.Action = " 添加设备 ";
            try
            {
                dto = bllHelper.CheckCustomer(dto, customerToken, ref tcp);
                //获取 判定token
                if (utc.IsValid(customerToken) == false)
                {
                    dto.Code    = (int)CodeEnum.ServerNoToken;
                    dto.Message = "Token已失效";
                }
                else
                {
                    Device device = new Device();
                    device.SerialNumber = serialNumber;
                    IList <Device> deviceFlag = deviceServer.SelectDeviceSerialNumber(device);

                    if (device != null && deviceFlag.Count != 0)
                    {
                        //设备被添加过
                        dto.Code     = (int)CodeEnum.NoHardWare;
                        dto.Message  = "此设备正在被使用中";
                        oLog.Result  = dto.Code;
                        oLog.Remarks = dto.Message;
                        bllHelper.AddOperaterLog(oLog, tcp);
                        return(dto);
                    }
                    //参数 0=IP  3等于 CN
                    AddDeviceResponseDto result = AddDeviceMethod(serialNumber);
                    if (result != null && result.Success == true)
                    {
                        //添加本地设备列表
                        Bsr.Cloud.Model.Entities.Device dev = new Model.Entities.Device();
                        dev.SerialNumber     = result.DeviceDto.AddDeviceEntity.SerialNumber;
                        dev.BPServerDeviceId = result.DeviceDto.AddDeviceEntity.Id;
                        if (deviceName == null || deviceName == "")
                        {
                            deviceName = "BStar";
                        }
                        dev.DeviceName = deviceName;
                        // 序列号添加时填3,需用IDeviceEntity.getDeviceType获取真正实际类型
                        dev.DeviceType   = result.DeviceDto.AddDeviceEntity.AddMode;
                        dev.HardwareType = result.DeviceDto.AddDeviceEntity.HardwareType;
                        dev.CustomerId   = tcp.CustomerId;
                        dev.UserName     = result.DeviceDto.AddDeviceEntity.User;
                        dev.PassWord     = result.DeviceDto.AddDeviceEntity.Password;
                        //以规则需要定义服务器位置
                        BPServerConfig bpServerConfig = new BPServerConfig();
                        bpServerConfig.Domain = "default";
                        IList <BPServerConfig> bpServerConfigFlag = bpServerConfigServer.GetBPServerConfigByDomain(bpServerConfig);
                        if (bpServerConfigFlag != null && bpServerConfigFlag.Count != 0)
                        {
                            dev.BPServerConfigId = bpServerConfigFlag[0].BPServerConfigId;
                        }
                        else
                        {
                            dev.BPServerConfigId = 1; //需修改
                        }
                        int deviceId = deviceServer.InsertDevice(dev);

                        //日志动作的目标对象Id
                        oLog.TargetId = deviceId;
                        //通道添加
                        IList <CameraEntity> channelFlag = result.DeviceDto.AddDeviceEntity.Cameras;
                        for (int i = 0; i < channelFlag.Count; i++)
                        {
                            Bsr.Cloud.Model.Entities.Channel channel = new Model.Entities.Channel();
                            CameraEntity ce = channelFlag[i];
                            channel.DeviceId          = deviceId;
                            channel.ChannelNumber     = ce.ChannelNo;
                            channel.ChannelName       = ce.Name;
                            channel.IsEnable          = 1;
                            channel.BPServerChannelId = ce.Id;
                            channel.ImagePath         = "default.jpg";
                            channelServer.InsertChannel(channel);
                        }
                        dto.Code    = (int)CodeEnum.Success;
                        dto.Message = "设备" + deviceName + "已添加完成!";
                    }
                    else
                    {
                        dto.Code    = (int)CodeEnum.NoHardWare;
                        dto.Message = result.Message;
                    }
                }
            }
            catch (Exception ex)
            {
                dto.Code    = (int)CodeEnum.ApplicationErr;
                dto.Message = "网络异常,添加设备时,远程连接超时!";
                myLog.ErrorFormat("AddDevice方法异常,设备名:{0}, 设备序列号:{1}", ex, deviceName, serialNumber);
            }
            oLog.TargetType = (int)OperaterLogEnum.Device;
            oLog.Result     = dto.Code;
            oLog.Remarks    = dto.Message;
            bllHelper.AddOperaterLog(oLog, tcp);
            return(dto);
        }