Ejemplo n.º 1
0
        public void CleanRelation(int deviceId)
        {
            if (_dictionaryByDeviceId.ContainsKey(deviceId))
            {
                if (_dictionaryByDeviceId.ContainsKey(deviceId))
                {
                    Model.Entity.Device device = Get(deviceId);
                    _dictionaryByDeviceId[deviceId].IsGuard = false;
                    lock (device)
                    {
                        DeviceContact.GetInstance().CleanByDeviceId(deviceId);  //删除联系人
                        GeoFence.GetInstence().CleanByDeviceId(deviceId);       //删除电子围栏
                        SchoolGuardian.GetInstance().CleanByDeviceId(deviceId); //删除上学守护
                        DeviceSet.GetInstance().Del(deviceId);                  //删除配置信息

                        //删除绑定号用户
                        User.GetInstance().DelByBindNumber(device.BindNumber);
                        User.GetInstance().DelReal(device.UserId);
                        UserDevice.GetInstance().DelDevice(deviceId); //删除关联信息

                        //清理消息
                        Notification.GetInstance().CleanByDeviceId(deviceId);
                        DeviceException.GetInstance().CleanByDeviceId(deviceId);
                        DeviceSMS.GetInstance().CleanByDeviceId(deviceId);
                        DeviceVoice.GetInstance().CleanByDeviceId(deviceId);
                        DevicePhoto.GetInstance().CleanByDeviceId(deviceId);
                        DeviceState.GetInstance().CleanByDeviceId(deviceId);
                        DeviceFriend.GetInstance().DelDevice(deviceId);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public static DeviceContact GetInstance()
        {
            if (_object == null)
            {
                lock (LockHelper)
                {
                    if (_object == null)
                    {
                        _object = new DeviceContact();
                    }
                }
            }

            return(_object);
        }
Ejemplo n.º 3
0
        public void Del(string number)
        {
            lock (_agentNumbers)
            {
                var agt = _agentNumbers.Values.FirstOrDefault(x => x.Number.Equals(number));
                if (agt != null && !agt.Equals(default(Model.Entity.AgentNumber)))
                {
                    _dictionaryByPlatform.TryGetValue(agt.Platform, out var agts);
                    if (agts == null || agts.Count == 0)
                    {
                        return;
                    }

                    List <Model.Entity.AgentNumber> numbers = agts.Where(x => !number.Equals(x.Number)).ToList();
                    if (numbers.Count == 0)
                    {
                        throw new FaultException("没有其它中间号,请先添加中间号!");
                    }

                    long   tick = DateTime.Now.Ticks;
                    Random ran  = new Random((int)(tick & 0xffffffffL) | (int)(tick >> 32));
                    int    idx  = ran.Next(numbers.Count);

                    DeviceContact.GetInstance().ChangeAgentNumber(number, numbers[idx].Number);
                    object[] objs = { agt, 2 };
                    new Thread(ProcessSync).Start(objs);
//                    bool succ = SyncAgentNumber(agentNumber, 2);
//                    if (!succ)
//                    {
//                        throw new FaultException("同步删除中间号失败,暂不能从本地删除!");
//                    }

                    base.Del(agt.AgentNumberID);
                    agts.Remove(agt);
                    _agentNumbers.Remove(agt.AgentNumberID);
                }
            }
        }