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);
        }
Пример #2
0
        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));
        }