/// <summary> /// Atualiza um novo device para o usuário /// </summary> /// <param name="currentUserId"></param> /// <param name="request"></param> /// <returns></returns> public static DeviceEntity UpdateNewUserDevice(long currentUserId, DeviceEntity current, string endpoint) { DeviceEntity result = null; using (TransactionScope tran = new TransactionScope(TransactionScopeOption.Required)) { current.Endpoint = endpoint; DeviceHandler.UpdateNotificationEndpoint(current); result = DeviceRepository.Instance.UpdateDevice(current); tran.Complete(); } return(result); }
/// <summary> /// Registra um novo device para o usuário /// </summary> /// <param name="currentUserId"></param> /// <param name="request"></param> /// <returns></returns> public static DeviceEntity RegisterNewUserDevice(long currentUserId, DeviceEntity device) { DeviceEntity result = null; using (TransactionScope tran = new TransactionScope(TransactionScopeOption.Required)) { PushRepository.Instance.UnsubscribeAll(currentUserId); DeviceRepository.Instance.RemoveAllDevices(currentUserId); //Cria o novo device DeviceEntity newDevice = new DeviceEntity() { UserId = currentUserId, Status = GenericStatus.ACTIVE, Endpoint = device.Endpoint, DeviceType = device.DeviceType }; string snsEndpoint = DeviceHandler.RegisterNotificationEndpoint(newDevice); if (string.IsNullOrEmpty(snsEndpoint)) { ServiceHelper.ThrowError("Unable to register Device " + device.Id + " ."); } newDevice.BrokerEndpoint = snsEndpoint; string subscriptionResult = TopicHandler.SubscribeTopic(TopicHandler.SNS_DEFAULT_TOPIC, newDevice); if (string.IsNullOrEmpty(subscriptionResult)) { ServiceHelper.ThrowError("Unable to register Device " + device.Id + " ."); } result = DeviceRepository.Instance.CreateDevice(newDevice); tran.Complete(); } return(result); }