public async Task <bool> RegisterUnit(PushUri pushUri) { string deviceId = pushUri.DeviceId.GetHashCode().ToString(); List <PushRegistrationDescription> usersDevices = null; try { usersDevices = await _unitNotificationProvider.GetRegistrationsByUUID(pushUri.PushLocation); } catch (TimeoutException) { } if (usersDevices == null || !usersDevices.Any(x => x.Tags.Contains(string.Format("unitId:{0}", pushUri.UnitId.ToString())))) { await _unitNotificationProvider.RegisterPush(pushUri); } else { await _unitNotificationProvider.UnRegisterPushByUUID(pushUri.PushLocation); await _unitNotificationProvider.RegisterPush(pushUri); } return(true); }