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;
        }
Example #2
0
        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);
		}