protected void CreateThread_Click(object sender, EventArgs args) { if (!Page.IsValid) { return; } var thread = CreateThread(); if (NewForumThreadSubscribe.Checked) { var threadDataAdapter = new ForumThreadDataAdapter(thread, CreateForumDataAdapterDependencies()); threadDataAdapter.CreateAlert(thread.Author.EntityReference); } Response.Redirect(thread.Url); }
public ForumPostsDrop(IPortalLiquidContext portalLiquidContext, IDataAdapterDependencies dependencies, IForumThread forumThread, int startRowIndex = 0, int pageSize = -1) : base(portalLiquidContext) { Dependencies = dependencies; PortalLiquidContext = portalLiquidContext; SetParams(startRowIndex, pageSize); ForumThread = forumThread; var forumAggregationDataAdapter = new ForumThreadDataAdapter(forumThread.Entity.ToEntityReference(), Dependencies); _adapter = forumAggregationDataAdapter; _posts = new Lazy <ForumPostDrop[]>(() => _adapter.SelectPosts(StartRowIndex, PageSize).Select(e => new ForumPostDrop(this, Dependencies, e)).ToArray(), LazyThreadSafetyMode.None); }
protected override void ProcessRequest(HttpContext context, ICmsEntityServiceProvider serviceProvider, Guid portalScopeId, IPortalContext portal, OrganizationServiceContext serviceContext, Entity entity, CmsEntityMetadata entityMetadata, ICrmEntitySecurityProvider security) { if (!(IsRequestMethod(context.Request, "POST") || IsRequestMethod(context.Request, "DELETE"))) { throw new CmsEntityServiceException(HttpStatusCode.MethodNotAllowed, "Request method {0} not allowed for this resource.".FormatWith(context.Request.HttpMethod)); } CrmEntityInactiveInfo inactiveInfo; if (CrmEntityInactiveInfo.TryGetInfo(entity.LogicalName, out inactiveInfo)) { serviceContext.SetState(inactiveInfo.InactiveState, inactiveInfo.InactiveStatus, entity); WriteNoContentResponse(context.Response); return; } if (entity.LogicalName == "adx_communityforumthread") { var forum = entity.GetRelatedEntity(serviceContext, new Relationship("adx_communityforum_communityforumthread")); if (forum != null) { var forumDataAdapter = new ForumDataAdapter( forum.ToEntityReference(), new PortalConfigurationDataAdapterDependencies(portalName: PortalName, requestContext: context.Request.RequestContext)); forumDataAdapter.DeleteThread(entity.ToEntityReference()); WriteNoContentResponse(context.Response); if (FeatureCheckHelper.IsFeatureEnabled(FeatureNames.TelemetryFeatureUsage)) { PortalFeatureTrace.TraceInstance.LogFeatureUsage(FeatureTraceCategory.Forum, HttpContext.Current, "delete_forumthread", 1, entity.ToEntityReference(), "delete"); } return; } } if (entity.LogicalName == "adx_communityforumpost") { var forumThread = entity.GetRelatedEntity(serviceContext, new Relationship("adx_communityforumthread_communityforumpost")); if (forumThread != null) { var forumThreadDataAdapter = new ForumThreadDataAdapter( forumThread.ToEntityReference(), new PortalConfigurationDataAdapterDependencies(portalName: PortalName, requestContext: context.Request.RequestContext)); forumThreadDataAdapter.DeletePost(entity.ToEntityReference()); WriteNoContentResponse(context.Response); if (FeatureCheckHelper.IsFeatureEnabled(FeatureNames.TelemetryFeatureUsage)) { PortalFeatureTrace.TraceInstance.LogFeatureUsage(FeatureTraceCategory.Forum, HttpContext.Current, "delete_forumpost", 1, entity.ToEntityReference(), "delete"); } return; } } serviceContext.DeleteObject(entity); serviceContext.SaveChanges(); WriteNoContentResponse(context.Response); if (FeatureCheckHelper.IsFeatureEnabled(FeatureNames.TelemetryFeatureUsage)) { PortalFeatureTrace.TraceInstance.LogFeatureUsage(FeatureTraceCategory.Blog, HttpContext.Current, "delete_blogpost", 1, entity.ToEntityReference(), "delete"); } }