Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
        }