/// <summary> /// Inserts a new subscription. /// </summary> /// <param name="controller">Controller calling this method.</param> /// <returns>Status message.</returns> private static String InsertSubscription(MainController controller) { String collection = controller.Request.Form.Get("collection"); if (String.IsNullOrEmpty(collection)) { collection = "timeline"; } Subscription subscription = new Subscription() { Collection = collection, UserToken = controller.UserId, CallbackUrl = controller.Url.Action( "Notify", "Notify", null, controller.Request.Url.Scheme) }; controller.Service.Subscriptions.Insert(subscription).Fetch(); return "Application is now subscribed to updates."; }
/// <summary> /// Inserts a timeline item to all users (up to 10). /// </summary> /// <param name="controller">Controller calling this method.</param> /// <returns>Status message.</returns> private static String InsertItemAllUsers(MainController controller) { StoredCredentialsDBContext db = new StoredCredentialsDBContext(); int userCount = db.StoredCredentialSet.Count(); if (userCount > 10) { return "Total user count is " + userCount + ". Aborting broadcast to save your quota"; } else { TimelineItem item = new TimelineItem() { Text = "Hello Everyone!", Notification = new NotificationConfig() { Level = "DEFAULT" } }; foreach (StoredCredentials creds in db.StoredCredentialSet) { AuthorizationState state = new AuthorizationState() { AccessToken = creds.AccessToken, RefreshToken = creds.RefreshToken }; MirrorService service = new MirrorService(new BaseClientService.Initializer() { Authenticator = Utils.GetAuthenticatorFromState(state) }); service.Timeline.Insert(item).Fetch(); } return "Successfully sent cards to " + userCount + " users."; } }
/// <summary> /// Inserts a timeline item with action. /// </summary> /// <param name="controller">Controller calling this method.</param> /// <returns>Status message.</returns> private static String InsertItemWithAction(MainController controller) { TimelineItem item = new TimelineItem() { Creator = new Contact() { DisplayName = ".NET Quick Start", Id = "DOTNET_QUICK_START", }, Text = "Tell me what you had for lunch :)", Notification = new NotificationConfig() { Level = "DEFAULT" }, MenuItems = new List<MenuItem>() { { new MenuItem() { Action = "REPLY" } } }, }; controller.Service.Timeline.Insert(item).Fetch(); return "A timeline item with action has been inserted."; }
/// <summary> /// Inserts a timeline item. /// </summary> /// <param name="controller">Controller calling this method.</param> /// <returns>Status message.</returns> private static String InsertItem(MainController controller) { TimelineItem item = new TimelineItem() { Text = controller.Request.Form.Get("message"), Notification = new NotificationConfig() { Level = "DEFAULT" } }; String mediaLink = controller.Request.Form.Get("imageUrl"); if (!String.IsNullOrEmpty(mediaLink)) { Stream stream = null; if (mediaLink.StartsWith("/")) { stream = new StreamReader(controller.Server.MapPath(mediaLink)).BaseStream; } else { HttpWebRequest request = WebRequest.Create(mediaLink) as HttpWebRequest; HttpWebResponse response = request.GetResponse() as HttpWebResponse; stream = response.GetResponseStream(); } controller.Service.Timeline.Insert(item, stream, "image/jpeg").Upload(); } else { controller.Service.Timeline.Insert(item).Fetch(); } return "A timeline item has been inserted."; }
/// <summary> /// Inserts a sharing contact. /// </summary> /// <param name="controller">Controller calling this method.</param> /// <returns>Status message.</returns> private static String InsertContact(MainController controller) { String name = controller.Request.Form.Get("name"); String imageUrl = controller.Request.Form.Get("imageUrl"); if (imageUrl.StartsWith("/")) { UriBuilder builder = new UriBuilder(controller.Request.Url); builder.Path = imageUrl; imageUrl = builder.ToString(); } Contact contact = new Contact() { DisplayName = name, Id = name, ImageUrls = new List<String>() { imageUrl } }; controller.Service.Contacts.Insert(contact).Fetch(); return "Inserted contact: " + name + "."; }
/// <summary> /// Deletes a timeline item. /// </summary> /// <param name="controller">Controller calling this method.</param> /// <returns>Status message.</returns> private static String DeleteTimelineItem(MainController controller) { controller.Service.Timeline.Delete(controller.Request.Form.Get("itemId")).Fetch(); return "A timeline item has been deleted."; }
/// <summary> /// Deletes an existing subscription. /// </summary> /// <param name="controller">Controller calling this method.</param> /// <returns>Status message.</returns> private static String DeleteSubscription(MainController controller) { String collection = controller.Request.Form.Get("subscriptionId"); controller.Service.Subscriptions.Delete(collection).Fetch(); return "Application has been unsubscribed."; }
/// <summary> /// Deletes a sharing contact. /// </summary> /// <param name="controller">Controller calling this method.</param> /// <returns>Status message.</returns> private static String DeleteContact(MainController controller) { controller.Service.Contacts.Delete(controller.Request.Form.Get("id")).Fetch(); return "Contact has been deleted."; }