Esempio n. 1
0
 public CMRequestOptions(CMUser user)
     : this()
 {
     if (user != null && !string.IsNullOrEmpty(user.Session))
     {
         this.Headers["X-CloudMine-SessionToken"] = user.Session;
     }
 }
        public CMRequestOptions(CMRequestOptions opts, CMUser user)
            : this()
        {
            this.Merge(opts);

            if (user != null && !string.IsNullOrEmpty(user.Session))
                this.Headers["X-CloudMine-SessionToken"] = user.Session;
        }
 public Task<CMResponse> ModifyAccessList(CMUser user, CMAccessList acl)
 {
     return APIService.Request (this.Application, "user/access", HttpMethod.Put, CMSerializer.ToStream (acl), new CMRequestOptions (null, user));
 }
        /// <summary>
        /// Registers the android device push notifications.
        /// </summary>
        /// <returns>The android device push notifications.</returns>
        /// <param name="user">User.</param>
        /// <param name="uniqueDeviceId">Android.OS.Build.Serial</param>
        /// <param name="gcmToken">Device token from Google GCM registration.</param>
        public Task<CMResponse> RegisterAndroidDevicePushNotifications(CMUser user, string uniqueDeviceId, object gcmToken)
        {
            CMRequestOptions options = new CMRequestOptions(null, user);

            options.Headers.Add ("device_type", "android");
            options.Headers.Add ("HTTP_X_CLOUDMINE_UT", uniqueDeviceId);
            options.Headers.Add ("X-CloudMine-Agent", "Android");

            Dictionary<string, object> dataDict = new Dictionary<string, object>();
            dataDict.Add("token", gcmToken);
            dataDict.Add("device_type", "android");
            dataDict.Add("device_id", uniqueDeviceId);

            return APIService.Request(Application, "device", HttpMethod.Post, CMSerializer.ToStream(dataDict), options);
        }
        public Task<CMResponse> UnsubscribeToChannel(string channelName, CMUser userToRemove)
        {
            var opts = new CMRequestOptions(userToRemove);

            Dictionary<string, object> dataDict = new Dictionary<string, object>();
            dataDict.Add("user", true);

            return APIService.Request(Application, string.Format("push/channel/{0}/unsubscribe", channelName), HttpMethod.Post, CMSerializer.ToStream(dataDict), opts);
        }
        /// <summary>
        /// Unregister WP device push notifications.
        /// </summary>
        /// <returns>The register WP device push notifications.</returns>
        /// <param name="user">User with valid session.</param>
        /// <param name="uniqueDeviceId">Windows.Phone.System.Analytics.HostInformation.PublisherHostId</param>
        public Task<CMResponse> UnRegisterWPDevicePushNotifications(CMUser user, string uniqueDeviceId)
        {
            CMRequestOptions options = new CMRequestOptions(null, user);

            options.Headers.Add ("device_type", "wp");
            options.Headers.Add ("HTTP_X_CLOUDMINE_UT", uniqueDeviceId);
            options.Headers.Add ("X-CloudMine-Agent", "wp");

            throw new NotImplementedException();
        }
        /// <summary>
        /// Allows for unregistering a valid logged in CMUser from push notifications.
        /// </summary>
        /// <param name="user">Valid logged in CMUser</param>
        /// <param name="uniqueDeviceId">UIKit.UIDevice.CurrentDevice.IdentifierForVendor.AsString()</param>
        public Task<CMResponse> UnRegisterIOSDevicePushNotifications(CMUser user, string uniqueDeviceId)
        {
            CMRequestOptions options = new CMRequestOptions(null, user);

            options.Headers.Add ("device_type", "ios");
            options.Headers.Add ("HTTP_X_CLOUDMINE_UT", uniqueDeviceId);
            options.Headers.Add ("X-CloudMine-Agent", "iOS");

            return APIService.Request(Application, "device", HttpMethod.Delete, null, options);
        }
        /// <summary>
        /// Registers the WP device push notifications.
        /// </summary>
        /// <returns>The WP device push notifications.</returns>
        /// <param name="user">User with valid session.</param>
        /// <param name="uniqueDeviceId">Windows.Phone.System.Analytics.HostInformation.PublisherHostId</param>
        /// <param name="wpToken">Device token.</param>
        public Task<CMResponse> RegisterWPDevicePushNotifications(CMUser user, string uniqueDeviceId, object wpToken)
        {
            CMRequestOptions options = new CMRequestOptions(null, user);

            options.Headers.Add ("device_type", "wp");
            options.Headers.Add ("HTTP_X_CLOUDMINE_UT", uniqueDeviceId);
            options.Headers.Add ("X-CloudMine-Agent", "wp");

            Dictionary<string, object> dataDict = new Dictionary<string, object>();
            dataDict.Add("token", wpToken);
            dataDict.Add("device_type", "wp");
            dataDict.Add("device_id", uniqueDeviceId);

            throw new NotImplementedException();
        }
        /// <summary>
        /// Strips the device ID from device token callback value for the method
        /// didRegisterForRemoteNotificationsWithDeviceToken. Requires the Apple device 
        /// identification string contained in the callback and an actively logged in 
        /// CMUser to register with CloudMine.
        /// </summary>
        /// <param name="user">User with valid session</param>
        /// /// <param name="uniqueDeviceId">UIKit.UIDevice.CurrentDevice.IdentifierForVendor.AsString()</param>
        /// <param name="apnsToken">The token object returned in didRegisterForRemoteNotificationsWithDeviceToken</param>
        public Task<CMResponse> RegisterIOSDevicePushNotifications(CMUser user, string uniqueDeviceId, object apnsToken)
        {
            CMRequestOptions options = new CMRequestOptions(null, user);

            options.Headers.Add ("device_type", "ios");
            options.Headers.Add ("HTTP_X_CLOUDMINE_UT", uniqueDeviceId);
            options.Headers.Add ("X-CloudMine-Agent", "iOS");

            string deviceTokenString = StripIOSDeviceToken(apnsToken.ToString());

            Dictionary<string, string> dataDict = new Dictionary<string, string>();
            dataDict.Add("token", deviceTokenString);
            dataDict.Add("device_type", "ios");
            dataDict.Add("device_id", uniqueDeviceId);

            return APIService.Request(Application, "device", HttpMethod.Post, CMSerializer.ToStream(dataDict), options);
        }