protected void OnItemInserted(object sender, CrmEntityFormViewInsertedEventArgs e) { if (e.EntityId == null | e.EntityId == Guid.Empty) { throw new ApplicationException("The ID of the created record wasn't provided. This is usually a result of a plug-in failure. To troubleshoot, please check the ASP.NET trace or review the failed system jobs."); } var newId = e.EntityId ?? Guid.Empty; var attachment = (FileUpload)CreateCaseForm.FindControl("FormView").FindControl("Attachment"); var caseDataAdapter = new CaseDataAdapter(new EntityReference("incident", newId), new PortalContextDataAdapterDependencies(Portal, PortalName, Request.RequestContext)); if (attachment != null && attachment.HasFile) { caseDataAdapter.AddNote(string.Empty, attachment.PostedFile.FileName, attachment.PostedFile.ContentType, attachment.FileBytes); } // redirect to the case var page = ServiceContext.GetPageBySiteMarkerName(Website, "Case"); if (page == null) { throw new ApplicationException("Required Site Marker named 'Case' does not exist."); } var url = new UrlBuilder(ServiceContext.GetUrl(page)); url.QueryString.Set("caseid", newId.ToString()); Response.Redirect(url.PathWithQueryString); }
public ActionResult CancelCase(EntityReference entityReference) { var portalContext = PortalCrmConfigurationManager.CreatePortalContext(); var serviceContext = portalContext.ServiceContext; var entityPermissionProvider = new CrmEntityPermissionProvider(); if (!entityPermissionProvider.PermissionsExist) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, ResourceManager.GetString("Entity_Permissions_Have_Not_Been_Defined_Message"))); } var entity = serviceContext.RetrieveSingle(entityReference.LogicalName, FetchAttribute.None, new Condition("incidentid", ConditionOperator.Equal, entityReference.Id)); var test = entityPermissionProvider.TryAssert(serviceContext, CrmEntityPermissionRight.Write, entity); if (!test) { return(new HttpStatusCodeResult(HttpStatusCode.Forbidden, ResourceManager.GetString("DoNot_Have_Appropriate_Permissions"))); } var adapter = new CaseDataAdapter(entityReference, new PortalContextDataAdapterDependencies(portalContext, null, Request.RequestContext)); adapter.Cancel(); if (FeatureCheckHelper.IsFeatureEnabled(FeatureNames.TelemetryFeatureUsage)) { PortalFeatureTrace.TraceInstance.LogFeatureUsage(FeatureTraceCategory.Case, this.HttpContext, "cancel_incident", 1, entity.ToEntityReference(), "edit"); } return(new HttpStatusCodeResult(HttpStatusCode.NoContent)); }