public ActivityEnvelope Generate(User actor, string action, string title, string description, string message, IEnumerable<AutoCompleteUser> users) { var _users = new List<ActivityUser>(); if (users != null && users.Any()) _users.AddRange(users.Select(user => new ActivityUser() { Name = user.FullName, Email = user.Email })); _object = new OpenGraphObject() { Url = string.Format("{0}/{1}", Constants.OpenGraphUri, Guid.NewGuid().ToString()), /* Hardcoded to a constanct for demop. Url should be to a specific Open Graph entity. */ Title = title, Type = Constants.OpenGraphType, Description = description, ImageUri = Constants.ImageUri, }; _activity = new ActivityEnvelope() { Activity = new Activity() { Actor = new ActivityUser() { Name = actor.FullName, Email = actor.ContactInfo.EmailAddresses[0].Address }, Action = action, Message = message, OgObject = _object, Users = _users.Any() ? _users.ToArray() : null } }; return _activity; }
public async Task <ActionResult> Create(ActivityViewModel model) { ActivityEnvelope envelope = new ActivityEnvelope(model); if (Request.HttpMethod == "POST") { await YammerRepository.PostActivity(envelope); return(Redirect("/")); } else { return(View(model)); } }
private async Task SendMessageAsync(ActivityEnvelope activityEnvelope) { var listOfUsers = new List<string>(); if (_selectedAssignees != null && _selectedAssignees.Any()) listOfUsers.AddRange(_selectedAssignees.Select(user => string.Format(@"[[user:{0}]]", user.Id.ToString()))); var messageObject = new MessageObject() { Body = Body, Title = Title, Type = activityEnvelope.Activity.OgObject.Type, Description = activityEnvelope.Activity.OgObject.Title, ImageUri = activityEnvelope.Activity.OgObject.ImageUri, Url = activityEnvelope.Activity.OgObject.Url, Users = string.Join(",", listOfUsers.ToArray()) }; await _messageRepository.PostMessageAsync(messageObject); }