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); } } } }
public static DeviceContact GetInstance() { if (_object == null) { lock (LockHelper) { if (_object == null) { _object = new DeviceContact(); } } } return(_object); }
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); } } }