Example #1
0
        protected void Unnamed_Click(object sender, EventArgs e)
        {
            YammerStandaloneContext yammerContext = new YammerStandaloneContext();
            yammerContext.UserId = String.Empty;
            yammerContext.LoadAuthenticationResponseToken(String.Empty);

            Activity a = new Activity();
            a.Action = "update";
            a.Message = "test update";

            a.Actor.Name = "Mike Ammerlaan";
            a.Actor.EMail = "emailaddress";

            a.Object.Url = "https://yourserverURLhere/sites/dev/Shared%20Documents/test.docx";
            a.Object.Title = "Test Document";
            a.Object.Type = "document";

            a.Private = false;

            yammerContext.PostActivity(a);
        }
        public void ProcessOneWayEvent(SPRemoteEventProperties properties)
        {
            YammerStandaloneContext yammerContext = new YammerStandaloneContext();
            yammerContext.UserId = String.Empty;
            yammerContext.LoadAuthenticationResponseToken(String.Empty);

            String message = string.Empty;

            if (properties == null || properties.ItemEventProperties == null)
            {
                yammerContext.PostMessage("Error: properties or item event properties was not specified.");
                return;
            }

            try
            {
                Web web;
                Microsoft.SharePoint.Client.User user;
                List list;
                ListItem li;

                using (ClientContext clientContext = TokenHelper.CreateRemoteEventReceiverClientContext(properties))
                 {

                    if (clientContext == null)
                    {
                        yammerContext.PostMessage("Error: could not create a client context within an event.");
                        return;
                    }

                    web = clientContext.Web;
                    clientContext.Load(web);

                    user = clientContext.Web.CurrentUser;
                    clientContext.Load(user);

                    list = web.Lists.GetById(properties.ItemEventProperties.ListId);
                    clientContext.Load(list);

                    li = list.GetItemById(properties.ItemEventProperties.ListItemId);
                    clientContext.Load(li, listItem => listItem.DisplayName);

                    clientContext.ExecuteQuery();
                 }

                Activity a = new Activity();
                a.Action = "update";
                a.Actor.Name = properties.ItemEventProperties.UserDisplayName;
                a.Actor.EMail = user.Email;

                if (properties.EventType == SPRemoteEventType.ItemUpdated || properties.EventType == SPRemoteEventType.ItemUpdating)
                {
                    a.Message = "An item was updated.";
                }
                else if (properties.EventType == SPRemoteEventType.ItemAdded || properties.EventType == SPRemoteEventType.ItemAdding)
                {
                    a.Message = "An item was added.";
                }
                else if (properties.EventType == SPRemoteEventType.ItemDeleted || properties.EventType == SPRemoteEventType.ItemDeleting)
                {
                    a.Message = "An item was deleted.";
                }

                a.Object.Url =  UrlUtilities.EnsurePathEndsWithSlash(properties.ItemEventProperties.WebUrl) + properties.ItemEventProperties.AfterUrl;
                a.Object.Title = li.DisplayName;
                a.Object.Type = "document";

                a.Private = false;

                //message += a.Actor.Name + "|" + a.Actor.EMail + "|" + a.Object.Url + "|" + a.Object.Title + "|";

                //yammerContext.PostMessage(message);

                yammerContext.PostActivity(a);
            }
            catch (Exception e)
            {
                yammerContext.PostMessage("An error occurred while posting a message." + e.Message);
            }
        }