private void AddFetchXmlToDataSource(CrmDataSource dataSource, string entityName, string entityIdAttribute, Guid?entityId) { dataSource.FetchXml = string.Format( @"<fetch mapping='logical'> <entity name='{0}'> <all-attributes /> <filter type='and'> <condition attribute = '{1}' operator='eq' value='{{{2}}}'/> </filter> </entity> </fetch>", entityName, entityIdAttribute, entityId); }
private CrmDataSource CreateDataSource(string dataSourceId, string entityName, string entityIdAttribute, Guid?entityId) { var formViewDataSource = new CrmDataSource { ID = dataSourceId, FetchXml = string.Format(@"<fetch mapping='logical'> <entity name='{0}'> <all-attributes /> <filter type='and'> <condition attribute = '{1}' operator='eq' value='{{{2}}}'/> </filter> </entity> </fetch>", entityName, entityIdAttribute, entityId) }; CrmEntityFormViewPanel.Controls.Add(formViewDataSource); return(formViewDataSource); }
protected void Page_Load(object sender, EventArgs e) { RedirectToLoginIfAnonymous(); if (AccountToEdit == null) { RecordNotFoundError.Visible = true; EditAccountForm.Visible = false; return; } var formViewDataSource = new CrmDataSource { ID = "WebFormDataSource", CrmDataContextName = FormView.ContextName }; var managingPartnerAccount = ServiceContext.CreateQuery("account").FirstOrDefault(a => a.GetAttributeValue <Guid>("accountid") == (AccountToEdit.GetAttributeValue <EntityReference>("msa_managingpartnerid") == null ? Guid.Empty : AccountToEdit.GetAttributeValue <EntityReference>("msa_managingpartnerid").Id)); var channelPermission = ServiceContext.GetChannelAccessByContact(Contact); var channelCreateAccess = (channelPermission != null && channelPermission.GetAttributeValue <bool?>("adx_create").GetValueOrDefault(false)); var channelWriteAccess = (channelPermission != null && channelPermission.GetAttributeValue <bool?>("adx_write").GetValueOrDefault(false)); var channelPermissionForParentAccountExists = managingPartnerAccount != null && channelPermission != null && channelPermission.GetAttributeValue <EntityReference>("adx_accountid") != null && channelPermission.GetAttributeValue <EntityReference>("adx_accountid").Equals(managingPartnerAccount.ToEntityReference()); var validAcccountClassificationCode = managingPartnerAccount != null && managingPartnerAccount.GetAttributeValue <OptionSetValue>("accountclassificationcode") != null && managingPartnerAccount.GetAttributeValue <OptionSetValue>("accountclassificationcode").Value == (int)Enums.AccountClassificationCode.Partner; if (channelPermission == null) { NoChannelPermissionsRecordError.Visible = true; EditAccountForm.Visible = false; ContactsList.Visible = false; return; } if (!channelWriteAccess) { ChannelPermissionsError.Visible = true; } else { if (managingPartnerAccount == null) { NoParentAccountError.Visible = true; } else if (!validAcccountClassificationCode) { ParentAccountClassificationCodeError.Visible = true; } else if (!channelPermissionForParentAccountExists) { NoChannelPermissionsForParentAccountError.Visible = true; } } if (!channelWriteAccess || managingPartnerAccount == null || !channelPermissionForParentAccountExists || !validAcccountClassificationCode) { EditAccountForm.Visible = false; ContactsList.Visible = false; return; } CreateContactButton.Visible = channelCreateAccess; CreateContactButton.QueryStringCollection = CreateCustomerContactQueryStringCollection(); var fetchXml = string.Format("<fetch mapping='logical'><entity name='{0}'><all-attributes /><filter type='and'><condition attribute = '{1}' operator='eq' value='{{{2}}}'/></filter></entity></fetch>", "account", "accountid", AccountToEdit.GetAttributeValue <Guid>("accountid")); formViewDataSource.FetchXml = fetchXml; AccountForm.Controls.Add(formViewDataSource); FormView.DataSourceID = "WebFormDataSource"; if (!IsPostBack) { BindPrimaryContact(); var contacts = ServiceContext.CreateQuery("contact").Where(c => c.GetAttributeValue <EntityReference>("parentcustomerid") != null && c.GetAttributeValue <EntityReference>("parentcustomerid").Equals(AccountToEdit.ToEntityReference())); _contacts = EnumerableExtensions.CopyToDataTable(contacts.Select(c => new { contactid = c.GetAttributeValue <Guid>("contactid"), ID = c.GetAttributeValue <string>("fullname"), CompanyName = c.GetRelatedEntity(ServiceContext, new Relationship("contact_customer_accounts")) == null ? string.Empty : c.GetRelatedEntity(ServiceContext, new Relationship("contact_customer_accounts")).GetAttributeValue <string>("name"), City = c.GetAttributeValue <string>("address1_city"), State = c.GetAttributeValue <string>("address1_stateorprovince"), Phone = c.GetAttributeValue <string>("address1_telephone1"), Email = c.GetAttributeValue <string>("emailaddress1"), }).ToList().OrderBy(c => c.CompanyName)); _contacts.Columns["City"].ColumnName = "City"; _contacts.Columns["State"].ColumnName = "State"; _contacts.Columns["Phone"].ColumnName = "Phone"; _contacts.Columns["Email"].ColumnName = "E-mail Address"; AccountContactsList.DataKeyNames = new[] { "contactid" }; AccountContactsList.DataSource = _contacts; AccountContactsList.DataBind(); } }
protected void Page_Load(object sender, EventArgs e) { RedirectToLoginIfNecessary(); if (ContactToEdit == null) { RecordNotFoundError.Visible = true; ContactInformation.Visible = false; return; } var parentAccount = Contact.GetAttributeValue <EntityReference>("parentcustomerid") == null ? null : XrmContext.CreateQuery("account").FirstOrDefault(a => a.GetAttributeValue <Guid>("accountid") == Contact.GetAttributeValue <EntityReference>("parentcustomerid").Id); var accountAccessPermissionsForParentAccount = parentAccount == null ? new List <Entity>() : XrmContext.GetAccountAccessByContact(Contact).Where(a => a.GetAttributeValue <EntityReference>("adx_accountid") != null && a.GetAttributeValue <EntityReference>("adx_accountid").Equals(parentAccount.ToEntityReference())).ToList(); var contactAccessPermissions = parentAccount == null ? new List <Entity>() : XrmContext.GetContactAccessByContact(Contact).ToList(); var contactAccessPermissionsForParentAccount = parentAccount == null ? new List <Entity>() : contactAccessPermissions.Where(c => c.GetAttributeValue <EntityReference>("adx_accountid") != null && c.GetAttributeValue <EntityReference>("adx_accountid").Equals(parentAccount.ToEntityReference()) && c.GetAttributeValue <OptionSetValue>("adx_scope").Value == (int)Enums.ContactAccessScope.Account).ToList(); var canEditContacts = false; var canReadContacts = false; var canManagePermissions = false; if (parentAccount == null) { ContactInformation.Visible = false; NoParentAccountError.Visible = true; return; } if (!contactAccessPermissions.Any()) { ContactInformation.Visible = false; NoContactAccessPermissionsRecordError.Visible = true; return; } if (!contactAccessPermissionsForParentAccount.Any()) { ContactInformation.Visible = false; NoContactAccessPermissionsForParentAccountError.Visible = true; return; } foreach (var access in contactAccessPermissionsForParentAccount) { if (access.GetAttributeValue <bool?>("adx_write").GetValueOrDefault(false)) { canEditContacts = true; canReadContacts = true; } if (access.GetAttributeValue <bool?>("adx_read").GetValueOrDefault(false)) { canReadContacts = true; } } foreach (var access in accountAccessPermissionsForParentAccount) { if (access.GetAttributeValue <bool?>("adx_managepermissions").GetValueOrDefault(false)) { canManagePermissions = true; } } if (!canReadContacts) { ContactInformation.Visible = false; return; } if (!canEditContacts) { ContactEditFormView.Visible = false; ContactReadOnlyFormView.Visible = true; ContactAccessWritePermissionDeniedMessage.Visible = true; } ManagePermissionsButton.Visible = canManagePermissions; var formViewDataSource = new CrmDataSource { ID = "WebFormDataSource", CrmDataContextName = ContactEditFormView.ContextName }; var fetchXml = string.Format("<fetch mapping='logical'><entity name='{0}'><all-attributes /><filter type='and'><condition attribute = '{1}' operator='eq' value='{{{2}}}'/></filter></entity></fetch>", "contact", "contactid", ContactToEdit.GetAttributeValue <Guid>("contactid")); formViewDataSource.FetchXml = fetchXml; ContactInformation.Controls.Add(formViewDataSource); ContactEditFormView.DataSourceID = "WebFormDataSource"; ContactReadOnlyFormView.DataSourceID = "WebFormDataSource"; }
protected void Page_Load(object sender, EventArgs e) { Guid entityId; var entityIdValue = HttpContext.Current.Request["entityid"]; var entityName = HttpContext.Current.Request["entityname"]; var entityPrimaryKeyName = HttpContext.Current.Request["entityprimarykeyname"]; var formName = HttpContext.Current.Request["formname"]; var controlId = HttpContext.Current.Request["controlid"]; int languageCode; if (!Guid.TryParse(entityIdValue, out entityId) || string.IsNullOrWhiteSpace(entityName) || string.IsNullOrWhiteSpace(formName) || string.IsNullOrWhiteSpace(controlId)) { return; } if (string.IsNullOrWhiteSpace(entityPrimaryKeyName)) { entityPrimaryKeyName = MetadataHelper.GetEntityPrimaryKeyAttributeLogicalName(ServiceContext, entityName); } if (string.IsNullOrWhiteSpace(entityPrimaryKeyName)) { return; } var fetch = new Fetch { MappingType = MappingType.Logical, Entity = new FetchEntity(entityName) { Attributes = FetchAttribute.All, Filters = new List <Filter> { new Filter { Type = LogicalOperator.And, Conditions = new List <Condition> { new Condition(entityPrimaryKeyName, ConditionOperator.Equal, entityId) } } } } }; var dataSource = new CrmDataSource { ID = string.Format("{0}_datasource", controlId), FetchXml = fetch.ToFetchExpression().Query, }; var formView = new CrmEntityFormView { ID = controlId, CssClass = "crmEntityFormView", DataSourceID = dataSource.ID, DataBindOnPostBack = true, EntityName = entityName, FormName = formName, Mode = FormViewMode.ReadOnly, ClientIDMode = ClientIDMode.Static, }; var languageCodeSetting = HttpContext.Current.Request["languagecode"]; if (!string.IsNullOrWhiteSpace(languageCodeSetting) && int.TryParse(languageCodeSetting, out languageCode)) { var found = false; var portalName = languageCode.ToString(CultureInfo.InvariantCulture); var portals = Microsoft.Xrm.Portal.Configuration.PortalCrmConfigurationManager.GetPortalCrmSection().Portals; formView.LanguageCode = languageCode; if (portals.Count > 0) { foreach (var portal in portals) { var portalContext = portal as PortalContextElement; if (portalContext != null && portalContext.Name == portalName) { found = true; } } if (found) { formView.ContextName = portalName; dataSource.CrmDataContextName = portalName; } } } FormPanel.Controls.Add(dataSource); FormPanel.Controls.Add(formView); }
protected void Page_Load(object sender, EventArgs args) { if (CurrentCase == null) { CaseBreadcrumbs.Visible = false; CaseHeader.Visible = false; CaseData.Visible = false; CaseNotFound.Visible = true; return; } if (!(CurrentCaseAccess.Read || CurrentCaseAccess.Public)) { CaseData.Visible = false; NoCaseAccess.Visible = true; return; } if (CurrentCaseAccess.Read && CurrentCase.ResponsibleContact != null) { UserAvatar.DataBind(); UserName.DataBind(); } else { UserAvatar.Visible = false; UserName.Visible = false; } // Only people with private read access see this info. TicketNumber.Visible = CaseInfo.Visible = Notes.Visible = CurrentCaseAccess.Read; CaseControls.Visible = CurrentCaseAccess.Write; ResolveCase.Visible = CancelCase.Visible = AddNote.Visible = AddNoteInline.Visible = CurrentCaseAccess.Write && CurrentCase.IsActive; ReopenCase.Visible = CurrentCaseAccess.Write && !CurrentCase.IsActive; var fetchXml = string.Format(_caseFetchXmlFormat, CurrentCase.EntityReference.Id); var formViewDataSource = new CrmDataSource { ID = "WebFormDataSource", FetchXml = fetchXml, CrmDataContextName = PublicFormView.ContextName }; if (CurrentCaseAccess.Public) { PublicForm.Visible = true; PublicForm.Controls.Add(formViewDataSource); PublicFormView.DataSourceID = "WebFormDataSource"; } else { if (CurrentCase.IsActive) { PrivateOpenCaseForm.Visible = true; PrivateClosedCaseForm.Visible = false; PublicForm.Visible = false; PrivateOpenCaseForm.Controls.Add(formViewDataSource); PrivateOpenCaseFormView.DataSourceID = "WebFormDataSource"; } else { PrivateClosedCaseForm.Visible = true; PrivateOpenCaseForm.Visible = false; PublicForm.Visible = false; PrivateClosedCaseForm.Controls.Add(formViewDataSource); PrivateClosedCaseFormView.DataSourceID = "WebFormDataSource"; } } }
protected void Page_Load(object sender, EventArgs e) { RedirectToLoginIfAnonymous(); if (ContactToEdit == null) { RecordNotFoundError.Visible = true; ContactForm.Visible = false; return; } var formViewDataSource = new CrmDataSource { ID = "WebFormDataSource", CrmDataContextName = FormView.ContextName }; var managingPartnerAccount = Contact.GetAttributeValue <EntityReference>("parentcustomerid") == null ? null : ServiceContext.CreateQuery("account").FirstOrDefault(a => a.GetAttributeValue <Guid>("accountid") == Contact.GetAttributeValue <EntityReference>("parentcustomerid").Id); var channelPermission = ServiceContext.GetChannelAccessByContact(Contact); var channelReadAccess = (channelPermission != null && channelPermission.GetAttributeValue <bool?>("adx_read").GetValueOrDefault(false)); var channelWriteAccess = (channelPermission != null && channelPermission.GetAttributeValue <bool?>("adx_write").GetValueOrDefault(false)); var channelPermissionForParentAccountExists = managingPartnerAccount != null && channelPermission != null && channelPermission.GetAttributeValue <EntityReference>("adx_accountid") != null && channelPermission.GetAttributeValue <EntityReference>("adx_accountid").Equals(managingPartnerAccount.ToEntityReference()); var validAcccountClassificationCode = managingPartnerAccount != null && managingPartnerAccount.GetAttributeValue <OptionSetValue>("accountclassificationcode") != null && managingPartnerAccount.GetAttributeValue <OptionSetValue>("accountclassificationcode").Value == (int)Enums.AccountClassificationCode.Partner; if (channelPermission == null) { NoChannelPermissionsRecordError.Visible = true; ContactForm.Visible = false; return; } if (!channelReadAccess || !channelWriteAccess) { ChannelPermissionsError.Visible = true; } else { if (managingPartnerAccount == null) { NoParentAccountError.Visible = true; } else if (!validAcccountClassificationCode) { ParentAccountClassificationCodeError.Visible = true; } else if (!channelPermissionForParentAccountExists) { NoChannelPermissionsForParentAccountError.Visible = true; } } if (!channelWriteAccess || managingPartnerAccount == null || !channelPermissionForParentAccountExists || !validAcccountClassificationCode) { ContactForm.Visible = false; return; } var fetchXml = string.Format("<fetch mapping='logical'><entity name='{0}'><all-attributes /><filter type='and'><condition attribute = '{1}' operator='eq' value='{{{2}}}'/></filter></entity></fetch>", "account", "accountid", ContactToEdit.GetAttributeValue <Guid>("accountid")); formViewDataSource.FetchXml = fetchXml; ContactForm.Controls.Add(formViewDataSource); FormView.DataSourceID = "WebFormDataSource"; }
protected void Page_Load(object sender, EventArgs e) { RedirectToLoginIfAnonymous(); if (OrderToEdit == null || (OrderToEdit.GetAttributeValue <EntityReference>("customerid") != null && !OrderToEdit.GetAttributeValue <EntityReference>("customerid").Equals(Contact.ToEntityReference()))) { PageBreadcrumbs.Visible = true; GenericError.Visible = true; OrderHeader.Visible = false; OrderDetails.Visible = false; OrderInfo.Visible = false; OrderBreadcrumbs.Visible = false; OrderHeader.Visible = false; return; } var dataAdapterDependencies = new PortalConfigurationDataAdapterDependencies(requestContext: Request.RequestContext, portalName: PortalName); var dataAdapter = new AnnotationDataAdapter(dataAdapterDependencies); var annotations = dataAdapter.GetAnnotations(OrderToEdit.ToEntityReference(), new List <Order> { new Order("createdon") }); NotesList.DataSource = annotations; NotesList.DataBind(); var formViewDataSource = new CrmDataSource { ID = "WebFormDataSource", CrmDataContextName = FormView.ContextName }; var fetchXml = string.Format("<fetch mapping='logical'><entity name='{0}'><all-attributes /><filter type='and'><condition attribute = '{1}' operator='eq' value='{{{2}}}'/></filter></entity></fetch>", "salesorder", "salesorderid", OrderToEdit.GetAttributeValue <Guid>("salesorderid")); formViewDataSource.FetchXml = fetchXml; OrderForm.Controls.Add(formViewDataSource); FormView.DataSourceID = "WebFormDataSource"; var baseCartReference = OrderToEdit.GetAttributeValue <EntityReference>("adx_shoppingcartid"); if (baseCartReference == null) { ShoppingCartSummary.Visible = false; Entity invoice; if (TryGetInvoice(XrmContext, OrderToEdit, out invoice)) { ShowInvoice(XrmContext, invoice); return; } ShowOrder(XrmContext, OrderToEdit); Order.Visible = true; Invoice.Visible = false; return; } // legacy code for displaying summary of ordered items. var baseCart = XrmContext.CreateQuery("adx_shoppingcart").FirstOrDefault(sc => sc.GetAttributeValue <Guid>("adx_shoppingcartid") == baseCartReference.Id); var cartRecord = baseCart == null ? null : new ShoppingCart(baseCart, XrmContext); if (cartRecord == null) { ShoppingCartSummary.Visible = false; return; } var cartItems = cartRecord.GetCartItems().Select(sci => sci.Entity); if (!cartItems.Any()) { ShoppingCartSummary.Visible = false; return; } CartRepeater.DataSource = cartItems; CartRepeater.DataBind(); Total.Text = cartRecord.GetCartTotal().ToString("C2"); }
protected void Page_Load(object sender, EventArgs e) { RedirectToLoginIfAnonymous(); if (ContactToEdit == null) { RecordNotFoundError.Visible = true; ManagePermissions.Visible = false; return; } var parentAccount = Contact.GetAttributeValue <EntityReference>("parentcustomerid") == null ? null : XrmContext.CreateQuery("account").FirstOrDefault(a => a.GetAttributeValue <Guid>("accountid") == Contact.GetAttributeValue <EntityReference>("parentcustomerid").Id); var accountAccessPermissions = parentAccount == null ? new List <Entity>() : ServiceContext.GetAccountAccessByContact(Contact).ToList(); var accountAccessPermissionsForParentAccount = parentAccount == null ? new List <Entity>() : accountAccessPermissions.Where(a => a.GetAttributeValue <EntityReference>("adx_accountid") != null && a.GetAttributeValue <EntityReference>("adx_accountid").Equals(parentAccount.ToEntityReference())).ToList(); var contactAccessPermissions = parentAccount == null ? new List <Entity>() : XrmContext.GetContactAccessByContact(Contact).ToList(); var contactAccessPermissionsForParentAccount = parentAccount == null ? new List <Entity>() : contactAccessPermissions.Where(c => c.GetAttributeValue <EntityReference>("adx_accountid") != null && c.GetAttributeValue <EntityReference>("adx_accountid").Equals(parentAccount.ToEntityReference()) && c.GetAttributeValue <OptionSetValue>("adx_scope").Value == (int)Enums.ContactAccessScope.Account).ToList(); var channelPermissions = XrmContext.GetChannelAccessByContact(Contact); var opportunityPermissions = XrmContext.GetOpportunityAccessByContact(Contact).FirstOrDefault(); var contactToEditOpportunityPermissions = XrmContext.CreateQuery("adx_opportunitypermissions").FirstOrDefault(c => c.GetAttributeValue <EntityReference>("adx_contactid") != null && c.GetAttributeValue <EntityReference>("adx_contactid").Equals(ContactToEdit.ToEntityReference())); var contactToEditChannelPermissions = XrmContext.CreateQuery("adx_channelpermissions").FirstOrDefault(c => c.GetAttributeValue <EntityReference>("adx_contactid") != null && c.GetAttributeValue <EntityReference>("adx_contactid").Equals(ContactToEdit.ToEntityReference())); var canEditContacts = false; var canManagePermissions = false; var canEditChannelPermissions = channelPermissions != null; var canEditOpportunityPermissions = opportunityPermissions != null; if (parentAccount == null) { ManagePermissions.Visible = false; NoParentAccountError.Visible = true; return; } if (!accountAccessPermissions.Any()) { ManagePermissions.Visible = false; NoAccountAccessPermissionsRecordError.Visible = true; return; } if (!accountAccessPermissionsForParentAccount.Any()) { ManagePermissions.Visible = false; NoAccountAccessPermissionsForParentAccountError.Visible = true; return; } if (!contactAccessPermissions.Any()) { ManagePermissions.Visible = false; NoContactAccessPermissionsRecordError.Visible = true; return; } if (!contactAccessPermissionsForParentAccount.Any()) { ManagePermissions.Visible = false; NoContactAccessPermissionsForParentAccountError.Visible = true; return; } foreach (var access in accountAccessPermissionsForParentAccount) { if (access.GetAttributeValue <bool?>("adx_managepermissions").GetValueOrDefault(false)) { canManagePermissions = true; } } if (!canManagePermissions) { ManagePermissions.Visible = false; AccountAccessManagePermissionsDeniedError.Visible = true; return; } foreach (var access in contactAccessPermissionsForParentAccount) { if (access.GetAttributeValue <bool?>("adx_write").GetValueOrDefault(false)) { canEditContacts = true; } } if (!canEditContacts) { ManagePermissions.Visible = false; ContactAccessPermissionsError.Visible = true; return; } if (channelPermissions == null && opportunityPermissions == null) { ManagePermissions.Visible = false; NoPermissionsError.Visible = true; return; } if (contactToEditOpportunityPermissions == null & contactToEditChannelPermissions == null) { ManagePermissions.Visible = false; PermissionsRecordsForContactEditNotFoundError.Visible = true; return; } if (!canEditOpportunityPermissions) { OpportunityPermissions.Visible = false; NoOpportunityPermissionsRecordWarning.Visible = true; } else { if (contactToEditOpportunityPermissions == null) { OpportunityPermissions.Visible = false; OpportunityPermissionsRecordForContactEditNotFoundError.Visible = true; } else { var opportunityPermissionsFormViewDataSource = new CrmDataSource { ID = "OpportunityPermissionsFormViewDataSource", CrmDataContextName = OpportunityPermissionsFormView.ContextName }; var opportunityPermissionsFetchXml = string.Format( "<fetch mapping='logical'><entity name='{0}'><all-attributes /><filter type='and'><condition attribute = '{1}' operator='eq' value='{{{2}}}'/></filter></entity></fetch>", "adx_opportunitypermissions", "adx_opportunitypermissionsid", contactToEditOpportunityPermissions.Id); opportunityPermissionsFormViewDataSource.FetchXml = opportunityPermissionsFetchXml; OpportunityPermissions.Controls.Add(opportunityPermissionsFormViewDataSource); OpportunityPermissionsFormView.DataSourceID = "OpportunityPermissionsFormViewDataSource"; } } if (!canEditChannelPermissions) { ChannelPermissions.Visible = false; NoChannelPermissionsRecordWarning.Visible = true; } else { if (contactToEditChannelPermissions == null) { ChannelPermissions.Visible = false; ChannelPermissionsRecordForContactEditNotFoundError.Visible = true; } else { var channelPermissionsFormViewDataSource = new CrmDataSource { ID = "ChannelPermissionsWebViewDataSource", CrmDataContextName = ChannelPermissionsFormView.ContextName }; var channelPermissionsFetchXml = string.Format( "<fetch mapping='logical'><entity name='{0}'><all-attributes /><filter type='and'><condition attribute = '{1}' operator='eq' value='{{{2}}}'/></filter></entity></fetch>", "adx_channelpermissions", "adx_channelpermissionsid", contactToEditChannelPermissions.Id); channelPermissionsFormViewDataSource.FetchXml = channelPermissionsFetchXml; ChannelPermissions.Controls.Add(channelPermissionsFormViewDataSource); ChannelPermissionsFormView.DataSourceID = "ChannelPermissionsWebViewDataSource"; } } if (!IsPostBack) { SetControlValues(contactToEditOpportunityPermissions, contactToEditChannelPermissions); } EnableControlsBasedOnPartnerAccess(opportunityPermissions, channelPermissions); }
protected void Page_Load(object sender, EventArgs e) { RedirectToLoginIfAnonymous(); var parentAccount = Contact.GetAttributeValue <EntityReference>("parentcustomerid") == null ? null : ServiceContext.CreateQuery("account").FirstOrDefault(a => a.GetAttributeValue <Guid>("accountid") == Contact.GetAttributeValue <EntityReference>("parentcustomerid").Id); var accountAccessPermissions = parentAccount == null ? new List <Entity>() : ServiceContext.GetAccountAccessByContact(Contact).ToList(); var accountAccessPermissionsForParentAccount = parentAccount == null ? new List <Entity>() : accountAccessPermissions.Where(a => a.GetAttributeValue <EntityReference>("adx_accountid") != null && a.GetAttributeValue <EntityReference>("adx_accountid").Equals(parentAccount.ToEntityReference())).ToList(); var contactAccessPermissions = parentAccount == null ? new List <Entity>() : ServiceContext.GetContactAccessByContact(Contact).ToList(); var contactAccessPermissionsForParentAccount = parentAccount == null ? new List <Entity>() : contactAccessPermissions.Where(c => c.GetAttributeValue <EntityReference>("adx_accountid") != null && c.GetAttributeValue <EntityReference>("adx_accountid").Equals(parentAccount.ToEntityReference()) && c.GetAttributeValue <OptionSetValue>("adx_scope").Value == (int)Enums.ContactAccessScope.Account).ToList(); var canReadAccount = false; var canEditAccount = false; var canCreateContacts = false; var canReadContacts = false; if (parentAccount == null) { AccountInformation.Visible = false; ContactsList.Visible = false; NoParentAccountError.Visible = true; return; } if (!accountAccessPermissions.Any()) { AccountInformation.Visible = false; ContactsList.Visible = false; NoAccountAccessPermissionsRecordError.Visible = true; return; } if (!accountAccessPermissionsForParentAccount.Any()) { AccountInformation.Visible = false; ContactsList.Visible = false; NoAccountAccessPermissionsForParentAccountError.Visible = true; return; } foreach (var access in accountAccessPermissionsForParentAccount) { if (access.GetAttributeValue <bool?>("adx_write").GetValueOrDefault(false)) { canEditAccount = true; canReadAccount = true; } if (access.GetAttributeValue <bool?>("adx_read").GetValueOrDefault(false)) { canReadAccount = true; } } foreach (var access in contactAccessPermissionsForParentAccount) { if (access.GetAttributeValue <bool?>("adx_create").GetValueOrDefault(false)) { canCreateContacts = true; canReadContacts = true; } if (access.GetAttributeValue <bool?>("adx_read").GetValueOrDefault(false)) { canReadContacts = true; } } if (!contactAccessPermissions.Any()) { NoContactAccessPermissionsRecordMessage.Visible = true; } else { if (!contactAccessPermissionsForParentAccount.Any()) { NoContactAccessPermissionsForParentAccountMessage.Visible = true; } } if (!canReadAccount) { AccountInformation.Visible = false; ContactsList.Visible = false; return; } if (!canEditAccount) { AccountEditForm.Visible = false; AccountReadOnlyForm.Visible = true; AccountAccessWritePermissionDeniedMessage.Visible = true; } if (!canReadContacts) { AccountContactsList.Visible = false; if (contactAccessPermissions.Any() && contactAccessPermissionsForParentAccount.Any()) { ContactAccessPermissionsMessage.Visible = true; } } CreateContactButton.Visible = canCreateContacts; var formViewDataSource = new CrmDataSource { ID = "WebFormDataSource", CrmDataContextName = AccountEditFormView.ContextName }; var fetchXml = string.Format("<fetch mapping='logical'><entity name='{0}'><all-attributes /><filter type='and'><condition attribute = '{1}' operator='eq' value='{{{2}}}'/></filter></entity></fetch>", "account", "accountid", parentAccount.GetAttributeValue <Guid>("accountid")); formViewDataSource.FetchXml = fetchXml; AccountInformation.Controls.Add(formViewDataSource); AccountEditFormView.DataSourceID = "WebFormDataSource"; AccountReadOnlyFormView.DataSourceID = "WebFormDataSource"; var contacts = ServiceContext.GetContactsForContact(Contact) .Where(c => c.GetAttributeValue <EntityReference>("parentcustomerid") != null && c.GetAttributeValue <EntityReference>("parentcustomerid").Equals(parentAccount.ToEntityReference())); _contacts = EnumerableExtensions.CopyToDataTable(contacts.Select(c => new { contactid = c.GetAttributeValue <Guid>("contactid"), ID = c.GetAttributeValue <string>("fullname"), CompanyName = c.GetRelatedEntity(ServiceContext, new Relationship("contact_customer_accounts")) == null ? string.Empty : c.GetRelatedEntity(ServiceContext, new Relationship("contact_customer_accounts")).GetAttributeValue <string>("name"), City = c.GetAttributeValue <string>("address1_city"), State = c.GetAttributeValue <string>("address1_stateorprovince"), Phone = c.GetAttributeValue <string>("address1_telephone1"), Email = c.GetAttributeValue <string>("emailaddress1"), }).OrderBy(opp => opp.CompanyName)); _contacts.Columns["City"].ColumnName = "City"; _contacts.Columns["State"].ColumnName = "State"; _contacts.Columns["Phone"].ColumnName = "Phone"; _contacts.Columns["Email"].ColumnName = "E-mail Address"; AccountContactsList.DataKeyNames = new[] { "contactid" }; AccountContactsList.DataSource = _contacts; AccountContactsList.DataBind(); }
protected void Page_Load(object sender, EventArgs e) { RedirectToLoginIfAnonymous(); var quoteToEditEntity = QuoteToEdit != null ? QuoteToEdit.Entity : null; if (quoteToEditEntity == null || (quoteToEditEntity.GetAttributeValue <EntityReference>("customerid") != null && !quoteToEditEntity.GetAttributeValue <EntityReference>("customerid").Equals(Contact.ToEntityReference()))) { PageBreadcrumbs.Visible = true; GenericError.Visible = true; QuoteHeader.Visible = false; QuoteDetails.Visible = false; QuoteInfo.Visible = false; QuoteBreadcrumbs.Visible = false; QuoteHeader.Visible = false; return; } var dataAdapterDependencies = new PortalConfigurationDataAdapterDependencies(requestContext: Request.RequestContext, portalName: PortalName); var dataAdapter = new AnnotationDataAdapter(dataAdapterDependencies); var annotations = dataAdapter.GetAnnotations(QuoteToEdit.Entity.ToEntityReference(), new List <Order> { new Order("createdon") }); NotesList.DataSource = annotations; NotesList.DataBind(); var quoteState = quoteToEditEntity.GetAttributeValue <OptionSetValue>("statecode"); ConvertToOrder.Visible = quoteState != null && (quoteState.Value == (int)Enums.QuoteState.Active || quoteState.Value == (int)Enums.QuoteState.Won); var formViewDataSource = new CrmDataSource { ID = "WebFormDataSource", CrmDataContextName = FormView.ContextName }; var fetchXml = string.Format("<fetch mapping='logical'><entity name='{0}'><all-attributes /><filter type='and'><condition attribute = '{1}' operator='eq' value='{{{2}}}'/></filter></entity></fetch>", "quote", "quoteid", QuoteToEdit.Id); formViewDataSource.FetchXml = fetchXml; QuoteForm.Controls.Add(formViewDataSource); FormView.DataSourceID = "WebFormDataSource"; var baseCartReference = quoteToEditEntity.GetAttributeValue <EntityReference>("adx_shoppingcartid"); var baseCart = (baseCartReference != null) ? ServiceContext.CreateQuery("adx_shoppingcart").FirstOrDefault(sc => sc.GetAttributeValue <Guid>("adx_shoppingcartid") == baseCartReference.Id) : null; var cartRecord = baseCart == null ? null : new ShoppingCart(baseCart, XrmContext); if (cartRecord == null) { ShoppingCartSummary.Visible = false; return; } var cartItems = cartRecord.GetCartItems().Select(sci => sci.Entity); if (!cartItems.Any()) { ShoppingCartSummary.Visible = false; return; } CartRepeater.DataSource = cartItems; CartRepeater.DataBind(); Total.Text = cartRecord.GetCartTotal().ToString("C2"); }