IronPigeon.Relay.Controllers.InboxController.PushChannelAsync C# (CSharp) Method

PushChannelAsync() private method

private PushChannelAsync ( string id ) : Task
id string
return Task
        public async Task<ActionResult> PushChannelAsync(string id)
        {
            var inbox = await this.GetInboxAsync(id);

            if (this.Request.Form["channel_uri"] != null)
            {
                var channelUri = new Uri(this.Request.Form["channel_uri"], UriKind.Absolute);
                var content = this.Request.Form["channel_content"];
                Requires.Argument(content == null || content.Length <= 4096, "content", "Push content too large");

                inbox.PushChannelUri = channelUri.AbsoluteUri;
                inbox.PushChannelContent = content;
                inbox.ClientPackageSecurityIdentifier = this.Request.Form["package_security_identifier"];
            }
            else if (this.Request.Form["wp8_channel_uri"] != null)
            {
                var channelUri = new Uri(this.Request.Form["wp8_channel_uri"], UriKind.Absolute);
                var content = this.Request.Form["wp8_channel_content"];
                Requires.Argument(content == null || content.Length <= 4096, "content", "Push content too large");

                inbox.WinPhone8PushChannelUri = channelUri.AbsoluteUri;
                inbox.WinPhone8PushChannelContent = content;
                inbox.WinPhone8ToastText1 = this.Request.Form["wp8_channel_toast_text1"];
                inbox.WinPhone8ToastText2 = this.Request.Form["wp8_channel_toast_text2"];
                inbox.WinPhone8TileTemplate = this.Request.Form["wp8_channel_tile_template"];
            }
            else if (this.Request.Form["gcm_registration_id"] != null)
            {
                inbox.GoogleCloudMessagingRegistrationId = this.Request.Form["gcm_registration_id"];
            }
            else if (this.Request.Form["ios_device_token"] != null)
            {
                inbox.ApplePushNotificationGatewayDeviceToken = this.Request.Form["ios_device_token"];
            }
            else
            {
                // No data was posted. So skip updating the entity.
                return new HttpStatusCodeResult(HttpStatusCode.NoContent);
            }

            this.InboxTable.UpdateObject(inbox);
            await this.InboxTable.SaveChangesWithMergeAsync(inbox);
            return new HttpStatusCodeResult(HttpStatusCode.NoContent);
        }