Beispiel #1
0
        protected void AddAlert_Click(object sender, EventArgs e)
        {
            if (!Request.IsAuthenticated)
            {
                return;
            }

            var user = Portal.User;

            if (user == null)
            {
                return;
            }

            var dataAdapter = CreateAlertDataAdapter();

            var url = XrmContext.GetUrl(Entity);

            var id = ServiceRequest.GetAttributeValue <EntityReference>("adx_servicerequest").Id.ToString();

            dataAdapter.CreateAlert(user.ToEntityReference(), url, id);

            Response.Redirect(Request.Url.PathAndQuery);
        }
Beispiel #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (ServiceRequestRollupRecord != null)
            {
                var serviceRequestTypeReference =
                    ServiceRequestRollupRecord.GetAttributeValue <EntityReference>("adx_servicerequesttype");

                var serviceRequestType =
                    XrmContext.CreateQuery("adx_servicerequesttype").FirstOrDefault(
                        srt => srt.GetAttributeValue <Guid>("adx_servicerequesttypeid") == serviceRequestTypeReference.Id);

                var entityName = serviceRequestType.GetAttributeValue <string>("adx_entityname");

                RegardingContactFieldName = serviceRequestType.GetAttributeValue <string>("adx_regardingcontactfieldname");

                var trueMetadataRequest = new RetrieveEntityRequest
                {
                    LogicalName   = entityName,
                    EntityFilters = EntityFilters.Attributes
                };

                var trueMetadataResponse = (RetrieveEntityResponse)XrmContext.Execute(trueMetadataRequest);

                var primaryFieldName = trueMetadataResponse.EntityMetadata.PrimaryIdAttribute;

                var entityId = ServiceRequestRollupRecord.GetAttributeValue <string>("adx_entityid");

                var trueRecordId = Guid.Parse(entityId);

                var trueRecord =
                    XrmContext.CreateQuery(entityName).FirstOrDefault(r => r.GetAttributeValue <Guid>(primaryFieldName) == trueRecordId);

                ServiceRequest = trueRecord;



                var regardingContact = ServiceRequest.GetAttributeValue <EntityReference>(RegardingContactFieldName);

                if (regardingContact == null || Contact == null || regardingContact.Id != Contact.Id)
                {
                    AddANote.Enabled      = false;
                    AddANote.Visible      = false;
                    AddNoteInline.Visible = false;
                    AddNoteInline.Enabled = false;

                    RenderCrmEntityFormView(entityName, primaryFieldName, trueRecordId, FormViewMode.ReadOnly);

                    var dataAdapterDependencies =
                        new PortalConfigurationDataAdapterDependencies(requestContext: Request.RequestContext, portalName: PortalName);
                    var dataAdapter = new AnnotationDataAdapter(dataAdapterDependencies);
                    var annotations = dataAdapter.GetAnnotations(ServiceRequest.ToEntityReference(),
                                                                 new List <Order> {
                        new Order("createdon")
                    });

                    if (!annotations.Any())
                    {
                        NotesLabel.Visible = false;
                        NotesList.Visible  = false;
                    }

                    NotesList.DataSource = annotations;
                    NotesList.DataBind();
                }
                else
                {
                    RenderCrmEntityFormView(entityName, primaryFieldName, trueRecordId, FormViewMode.Edit);

                    var dataAdapterDependencies =
                        new PortalConfigurationDataAdapterDependencies(requestContext: Request.RequestContext, portalName: PortalName);
                    var dataAdapter = new AnnotationDataAdapter(dataAdapterDependencies);
                    var annotations = dataAdapter.GetAnnotations(ServiceRequest.ToEntityReference(),
                                                                 new List <Order> {
                        new Order("createdon")
                    },
                                                                 privacy: AnnotationPrivacy.Web | AnnotationPrivacy.Private | AnnotationPrivacy.Public);

                    NotesList.DataSource = annotations;
                    NotesList.DataBind();
                }

                if (Request.IsAuthenticated && Contact != null)
                {
                    var dataAdapter = CreateAlertDataAdapter();

                    var hasAlert = dataAdapter.HasAlert(Contact.ToEntityReference());

                    AddAlert.Visible    = !hasAlert;
                    RemoveAlert.Visible = hasAlert;
                }
                else
                {
                    AddAlertLoginLink.Visible = true;
                }

                DisplaySlaDetails(serviceRequestType);
            }
        }
Beispiel #3
0
 private IAlertSubscriptionDataAdapter CreateAlertDataAdapter()
 {
     return(new ActivityEnabledEntityDataAdapter(ServiceRequest.ToEntityReference(), new Adxstudio.Xrm.Cms.PortalContextDataAdapterDependencies(Portal, requestContext: Request.RequestContext)));
 }