An IActivityStoryType allows the user to push story items to the activity stream in a group or main page.
Sample
using System; using System.Collections.Generic; using System.Linq; using Telligent.Evolution.Api.Services; using Telligent.Evolution.Extensibility; using Telligent.Evolution.Extensibility.Api.Entities.Version1; using Telligent.Evolution.Extensibility.Api.Version1; using Telligent.Evolution.Extensibility.Content.Version1; using ActivityStoryActor = Telligent.Evolution.Extensibility.Content.Version1.ActivityStoryActor; namespace MyActivityStory { public class MyActivityStory : IActivityStoryType { public string Name { get { return "My Activity Story Plugin"; } } public string Description { get { return "This plugin will demo how the IActivityStoryType works"; } } public void Initialize() { PublishStory(); } public Guid StoryTypeId { get { return new Guid("247A9821-75F0-4E57-81E2-15B9D0578491"); } } public string StoryTypeName { get { return "My Activity Stories"; } } public bool CanDeleteStory(Guid storyId, int userId) { // unregistered users cannot delete stories var user = Apis.Get<Users>().Get(new UsersGetOptions { Id = userId }); var userIsRegistered = user != null && !user.IsSystemAccount.GetValueOrDefault(false); if (!userIsRegistered) { return false; } // actors can delete var story = Apis.Get<ActivityStories>().Get(storyId); return story != null && story.Actors != null && story.Actors.ToList().Exists(actor => actor.UserId == userId); } public Guid[] ContentTypeIds { get { return new[] { Apis.Get<Users>().ContentTypeId }; } } public string GetPreviewHtml(IActivityStory story, Target target) { var content = Apis.Get<Contents>().Get(story.ContentId.GetValueOrDefault(), story.ContentTypeId.GetValueOrDefault()); if (content == null) return null; return string.Format("<h3>{0}</h3>", content.HtmlName("Web")); } public int? GetPrimaryUser(IActivityStory story) { if (story == null || story.Actors == null || story.Actors.Count == 0) { return null; } return story.Actors.Last().UserId; } public string GetViewHtml(IActivityStory story, Target target) { var content = Apis.Get<Contents>().Get(story.ContentId.GetValueOrDefault(), story.ContentTypeId.GetValueOrDefault()); if (content == null) return null; return string.Format("<h3>{0}</h3><p>{1}</p>", content.HtmlName("Web"), content.HtmlDescription("Web")); } private IActivityStoryController _storyController; public void SetController(IActivityStoryController controller) { _storyController = controller; } public string StoryTypeDescription { get { return "Controls activity stories for My Activity Stories."; } } public bool IsCacheable { get { return true; } } public bool VaryCacheByUser { get { return true; } } private void PublishStory() { var user = Apis.Get<Users>().AccessingUser; _storyController.Create(new ActivityStoryCreateOptions { ContentId = user.ContentId, ContentTypeId = Apis.Get<Users>().ContentTypeId, LastUpdate = DateTime.UtcNow, Actors = new List<ActivityStoryActor> { new ActivityStoryActor { UserId = user.Id.GetValueOrDefault(), Verb = "Add", Date = DateTime.UtcNow } } }); } } }