public ViewActionLink(IPortalContext portalContext, int languageCode, Action action, LinkActionType type, bool enabled = false, UrlBuilder url = null, string portalName = null, string label = null, string tooltip = null, string busyText = null) { var buttonLabel = action.ButtonLabel.GetLocalizedString(languageCode); var buttonTooltip = action.ButtonTooltip.GetLocalizedString(languageCode); var buttonBusyText = action.ButtonBusyLabel.GetLocalizedString(languageCode); ActionButtonAlignment = action.ActionButtonAlignment; ActionButtonPlacement = action.ActionButtonPlacement; ActionButtonStyle = action.ActionButtonStyle; ActionIndex = action.ActionIndex; ButtonCssClass = action.ButtonCssClass; Confirmation = action.Confirmation.GetLocalizedString(languageCode); Enabled = enabled; this.FilterCriteria = action.FilterCriteria; Label = !string.IsNullOrWhiteSpace(buttonLabel) ? buttonLabel : label == null?GetDefaultButtonLabel() : label; SuccessMessage = action.SuccessMessage.GetLocalizedString(languageCode); ShowModal = action.ShowModal ?? ShowModal.No; Tooltip = !string.IsNullOrWhiteSpace(buttonTooltip) ? buttonTooltip : tooltip == null?GetDefaultButtonTooltip() : tooltip; Type = type; URL = url; BusyText = !string.IsNullOrEmpty(buttonBusyText) ? buttonBusyText : busyText; }
public RedirectActionLink(IPortalContext portalContext, int languageCode, RedirectAction action, LinkActionType type, bool enabled = false, UrlBuilder url = null, string portalName = null, string label = null, string tooltip = null) : base(portalContext, languageCode, action, type, enabled, url, portalName, label, tooltip) { string redirectUrl = null; OnComplete = action.OnComplete.GetValueOrDefault(JsonConfiguration.OnComplete.Refresh); switch (OnComplete) { case JsonConfiguration.OnComplete.Refresh: return; case JsonConfiguration.OnComplete.RedirectToWebPage: if (action.RedirectWebpageId != null) { redirectUrl = action.GetRedirectWebPageUrl(portalContext, portalName); } break; case JsonConfiguration.OnComplete.RedirectToUrl: if (action.RedirectUrl != null) { redirectUrl = action.RedirectUrl; } break; } if (string.IsNullOrEmpty(redirectUrl)) { return; } var urlBuilder = new UrlBuilder(redirectUrl); RedirectUrl = urlBuilder; }
/// <summary> /// Initializes a new instance of the <see cref="CreateRelatedRecordActionLink" /> class. /// </summary> /// <param name="portalContext">The portal context.</param> /// <param name="gridMetadata">The grid metadata.</param> /// <param name="languageCode">The language code.</param> /// <param name="action">The action.</param> /// <param name="enabled">if set to <c>true</c> [enabled].</param> /// <param name="portalName">Name of the portal.</param> /// <param name="label">The label.</param> /// <param name="tooltip">The tooltip.</param> /// <param name="queryStringIdParameterName">Name of the query string identifier parameter.</param> public CreateRelatedRecordActionLink(IPortalContext portalContext, GridMetadata gridMetadata, int languageCode, CreateRelatedRecordAction action, bool enabled = false, string portalName = null, string label = null, string tooltip = null, string queryStringIdParameterName = "id") : base(portalContext, languageCode, action, LinkActionType.CreateRelatedRecord, enabled, portalName, label, tooltip) { this.Initialize(); this.QueryStringIdParameterName = !string.IsNullOrWhiteSpace(action.RecordIdQueryStringParameterName) ? action.RecordIdQueryStringParameterName : queryStringIdParameterName; if (gridMetadata.CreateFormDialog == null) { return; } this.Modal.CloseButtonCssClass = gridMetadata.CreateRelatedRecordDialog.CloseButtonCssClass; this.Modal.CloseButtonText = gridMetadata.CreateRelatedRecordDialog.CloseButtonText.GetLocalizedString(languageCode); this.Modal.CssClass = gridMetadata.CreateRelatedRecordDialog.CssClass; this.Modal.DismissButtonSrText = gridMetadata.CreateRelatedRecordDialog.DismissButtonSrText.GetLocalizedString(languageCode); this.Modal.LoadingMessage = gridMetadata.CreateRelatedRecordDialog.LoadingMessage.GetLocalizedString(languageCode); this.Modal.PrimaryButtonCssClass = gridMetadata.CreateRelatedRecordDialog.PrimaryButtonCssClass; this.Modal.PrimaryButtonText = this.Tooltip; this.Modal.Size = gridMetadata.CreateRelatedRecordDialog.Size; this.Modal.Title = this.Label; this.Modal.TitleCssClass = gridMetadata.CreateRelatedRecordDialog.TitleCssClass; this.FilterCriteria = action.FilterCriteria; this.EntityName = action.EntityName; this.ParentRecord = action.ParentRecord; this.Relationship = action.Relationship; }
/// <summary> /// Initializes a new instance of the <see cref="CreateRelatedRecordActionLink"/> class. /// </summary> /// <param name="portalContext">The portal context.</param> /// <param name="formMetadata">The form metadata.</param> /// <param name="languageCode">The language code.</param> /// <param name="action">The action.</param> /// <param name="enabled">if set to <c>true</c> [enabled].</param> /// <param name="portalName">Name of the portal.</param> public CreateRelatedRecordActionLink(IPortalContext portalContext, FormActionMetadata formMetadata, int languageCode, CreateRelatedRecordAction action, bool enabled = true, string portalName = null) : base(portalContext, languageCode, action, LinkActionType.CreateRelatedRecord, enabled, portalName) { this.Initialize(); if (formMetadata.CreateRelatedRecordDialog == null) { return; } this.Modal.CloseButtonCssClass = formMetadata.CreateRelatedRecordDialog.CloseButtonCssClass; this.Modal.CloseButtonText = formMetadata.CreateRelatedRecordDialog.CloseButtonText.GetLocalizedString(languageCode); this.Modal.CssClass = formMetadata.CreateRelatedRecordDialog.CssClass; this.Modal.DismissButtonSrText = formMetadata.CreateRelatedRecordDialog.DismissButtonSrText.GetLocalizedString(languageCode); this.Modal.LoadingMessage = formMetadata.CreateRelatedRecordDialog.LoadingMessage.GetLocalizedString(languageCode); this.Modal.PrimaryButtonCssClass = formMetadata.CreateRelatedRecordDialog.PrimaryButtonCssClass; this.Modal.PrimaryButtonText = this.Tooltip; this.Modal.Size = formMetadata.CreateRelatedRecordDialog.Size; this.Modal.Title = this.Label; this.Modal.TitleCssClass = formMetadata.CreateRelatedRecordDialog.TitleCssClass; if (action.ShowModal != null) { this.ShowModal = action.ShowModal.Value; } this.EntityName = action.EntityName; this.ParentRecord = action.ParentRecord; this.Relationship = action.Relationship; this.FilterCriteria = action.FilterCriteria; }
protected virtual void AssertRequestEntitySecurity(IPortalContext portal, OrganizationServiceContext serviceContext, Entity entity, ICrmEntitySecurityProvider security) { if (!security.TryAssert(serviceContext, entity, CrmEntityRight.Change)) { throw new CmsEntityServiceException(HttpStatusCode.Forbidden, "Entity access denied."); } }
public EditActionLink(IPortalContext portalContext, GridMetadata gridMetadata, int languageCode, EditAction action, bool enabled = false, string portalName = null, string label = null, string tooltip = null, string queryStringIdParameterName = "id") : base(portalContext, languageCode, action, LinkActionType.Edit, enabled, portalName, label, tooltip) { Initialize(); QueryStringIdParameterName = !string.IsNullOrWhiteSpace(action.RecordIdQueryStringParameterName) ? action.RecordIdQueryStringParameterName : queryStringIdParameterName; if (gridMetadata.EditFormDialog == null) { return; } Modal.CloseButtonCssClass = gridMetadata.EditFormDialog.CloseButtonCssClass; Modal.CloseButtonText = gridMetadata.EditFormDialog.CloseButtonText.GetLocalizedString(languageCode); Modal.CssClass = gridMetadata.EditFormDialog.CssClass; Modal.DismissButtonSrText = gridMetadata.EditFormDialog.DismissButtonSrText.GetLocalizedString(languageCode); Modal.LoadingMessage = gridMetadata.EditFormDialog.LoadingMessage.GetLocalizedString(languageCode); Modal.PrimaryButtonCssClass = gridMetadata.EditFormDialog.PrimaryButtonCssClass; Modal.PrimaryButtonText = gridMetadata.EditFormDialog.PrimaryButtonText.GetLocalizedString(languageCode); Modal.Size = gridMetadata.EditFormDialog.Size; Modal.Title = gridMetadata.EditFormDialog.Title.GetLocalizedString(languageCode); Modal.TitleCssClass = gridMetadata.EditFormDialog.TitleCssClass; }
public static Entity GetSupportPlan(IPortalContext portal, Entity account, OrganizationServiceContext context, Entity contact, Entity supportRequest) { var shoppingCart = context.CreateQuery("adx_shoppingcart").FirstOrDefault(sc => sc.GetAttributeValue <Guid>("adx_shoppingcartid") == supportRequest.GetAttributeValue <EntityReference>("adx_shoppingcartid").Id); var myCart = new ShoppingCart(shoppingCart, context); var total = myCart.GetCartTotal(); //lookup shopping cart item(s)? //for now we only care about ONE shopping cart item, since this is an "instant purchase" and there is no cart experience. var shoppingCartItem = context.CreateQuery("adx_shoppingcartitem").FirstOrDefault(sci => sci.GetAttributeValue <EntityReference>("adx_shoppingcartid").Id == shoppingCart.GetAttributeValue <Guid>("adx_shoppingcartid")); var uom = context.CreateQuery("uom").FirstOrDefault( u => u.GetAttributeValue <Guid>("uomid") == shoppingCartItem.GetAttributeValue <EntityReference>("adx_uomid").Id); var supportRequestProduct = supportRequest.GetAttributeValue <EntityReference>("adx_product"); Entity product = null; if (supportRequestProduct != null) { product = context.CreateQuery("product").FirstOrDefault(p => p.GetAttributeValue <Guid>("productid") == supportRequestProduct.Id); } var supportPlan = CreateSupportPlan(total, portal, context, uom, contact, product, account); return(supportPlan); }
public CommerceQuote(Dictionary <string, string> values, IPortalContext xrm, string paymentProvider) { if (paymentProvider == "PayPal") { CreateQuotePayPal(values, xrm); } }
private bool TryCreateHandler(IPortalContext portal, ContentMap map, out IHttpHandler handler) { switch (portal.Entity.LogicalName) { case "adx_webfile": WebFileNode webfile; if (map.TryGetValue(portal.Entity, out webfile)) { if (CloudBlobRedirectHandler.TryGetCloudBlobHandler(portal.Entity, out handler)) { return(true); } // retrieve the most recently created annotation var note = webfile.Annotations.OrderByDescending(a => a.CreatedOn).FirstOrDefault(); return(TryCreateHandler(note, webfile, portal, out handler)); } break; case "annotation": AnnotationNode annotation; if (map.TryGetValue(portal.Entity, out annotation)) { return(TryCreateHandler(annotation, null, portal, out handler)); } break; } return(base.TryCreateHandler(portal, out handler)); }
public virtual bool TryCreateHandler(IPortalContext portal, out IHttpHandler handler) { if (string.Equals(portal.Entity.LogicalName, "adx_webfile", StringComparison.InvariantCulture)) { if (CloudBlobRedirectHandler.TryGetCloudBlobHandler(portal.Entity, out handler)) { return(true); } var contentNote = portal.ServiceContext.GetNotes(portal.Entity) .OrderByDescending(note => note.GetAttributeValue <DateTime?>("createdon")) .FirstOrDefault(); handler = CreateAnnotationHandler(contentNote, portal.Entity); return(true); } if (string.Equals(portal.Entity.LogicalName, "annotation", StringComparison.InvariantCulture)) { handler = CreateAnnotationHandler(portal.Entity); return(true); } if (string.Equals(portal.Entity.LogicalName, "salesliteratureitem", StringComparison.InvariantCulture)) { handler = CreateSalesAttachmentHandler(portal.Entity); return(true); } handler = null; return(false); }
public WorkflowActionLink(IPortalContext portalContext, EntityReference workflow, FormActionMetadata formMetadata, int languageCode, WorkflowAction action, bool enabled = true, UrlBuilder url = null, string portalName = null) : this(portalContext, workflow, languageCode, action, enabled, url, portalName) { if (formMetadata.WorkflowDialog == null) { return; } Modal.CloseButtonCssClass = formMetadata.WorkflowDialog.CloseButtonCssClass; Modal.CloseButtonText = formMetadata.WorkflowDialog.CloseButtonText.GetLocalizedString(languageCode); Modal.CssClass = formMetadata.WorkflowDialog.CssClass; Modal.DismissButtonSrText = formMetadata.WorkflowDialog.DismissButtonSrText.GetLocalizedString(languageCode); Modal.PrimaryButtonCssClass = formMetadata.WorkflowDialog.PrimaryButtonCssClass; Modal.Size = formMetadata.WorkflowDialog.Size; Modal.TitleCssClass = formMetadata.WorkflowDialog.TitleCssClass; var customPrimaryButtonText = action.WorkflowDialogPrimaryButtonText.GetLocalizedString(languageCode); Modal.PrimaryButtonText = !string.IsNullOrEmpty(customPrimaryButtonText) ? customPrimaryButtonText : formMetadata.WorkflowDialog.PrimaryButtonText.GetLocalizedString(languageCode); var customCloseButtonTest = action.WorkflowDialogCloseButtonText.GetLocalizedString(languageCode); Modal.CloseButtonText = !string.IsNullOrEmpty(customCloseButtonTest) ? customCloseButtonTest : formMetadata.WorkflowDialog.CloseButtonText.GetLocalizedString(languageCode); var customTitle = action.WorkflowDialogTitle.GetLocalizedString(languageCode); Modal.Title = !string.IsNullOrEmpty(customTitle) ? customTitle : formMetadata.WorkflowDialog.Title.GetLocalizedString(languageCode); }
private CalculateOpportunityActionLink(IPortalContext portalContext, int languageCode, CalculateOpportunityAction action, bool enabled = true, UrlBuilder url = null, string portalName = null) : base(portalContext, languageCode, action, LinkActionType.CalculateOpportunity, enabled, url, portalName, DefaultButtonLabel, DefaultButtonTooltip) { Modal = new ViewCalculateOpportunityModal(); URL = EntityListFunctions.BuildControllerActionUrl("CalculateActualValueOfOpportunity", "EntityAction", new { area = "Portal", __portalScopeId__ = portalContext.Website.Id }); }
/// <summary> /// Constructor. /// </summary> /// <param name="portalContext">The <see cref="IPortalContext"/> to get dependencies from.</param> /// <param name="portalName">The configured name of the portal to get a security provider dependency from.</param> public PortalContextDataAdapterDependencies(IPortalContext portalContext, string portalName = null) : base( portalContext.ServiceContext, PortalCrmConfigurationManager.CreateCrmEntitySecurityProvider(portalName), HttpContext.Current != null ? new HttpContextWrapper(HttpContext.Current) : null, portalContext) { }
public PortalContextDataAdapterDependencies(IPortalContext portalContext, string portalName = null, RequestContext requestContext = null) : base( portalContext.ServiceContext, PortalCrmConfigurationManager.CreateCrmEntitySecurityProvider(portalName), PortalCrmConfigurationManager.CreateDependencyProvider(portalName).GetDependency <IEntityUrlProvider>(), portalContext, requestContext) { }
protected virtual IEnumerable <string> GetWebsiteTags(IPortalContext portal, OrganizationServiceContext serviceContext) { return(serviceContext.CreateQuery("adx_tag") .Where(e => e.GetAttributeValue <EntityReference>("adx_websiteid") == portal.Website.ToEntityReference()) .Select(e => new { Tag = e.GetAttributeValue <string>("adx_name") }) .ToArray() .Select(t => t.Tag)); }
public void Dispose() { IPortalContext portalContext = PopObject(); if (portalContext != this) { throw new InvalidOperationException("The object removed from the context stack is not the current object."); } }
public override bool TryCreateHandler(IPortalContext portal, out IHttpHandler handler) { IHttpHandler local = null; var result = _contentMapProvider.Using(map => TryCreateHandler(portal, map, out local)); handler = local; return(result); }
public static CommerceOrder CreateOrder(Dictionary <string, string> values, IPortalContext xrm, Entity account, string tombstoneEntityLogicalName = null, string tombstoneEntityPrimaryKeyName = null) { var newOrder = new CommerceOrder(values, xrm, "Authorize.Net", GetCreateInvoiceSettingValue(xrm), account, tombstoneEntityLogicalName, tombstoneEntityPrimaryKeyName); return(newOrder); }
private DeactivateActionLink(IPortalContext portalContext, int languageCode, DeactivateAction action, bool enabled = true, UrlBuilder url = null, string portalName = null) : base(portalContext, languageCode, action, LinkActionType.Deactivate, enabled, url, portalName, DefaultButtonLabel, DefaultButtonTooltip) { Modal = new ViewDeactivateModal(); if (url == null) { URL = EntityListFunctions.BuildControllerActionUrl("Deactivate", "EntityAction", new { area = "Portal", __portalScopeId__ = portalContext.Website.Id }); } }
/// <summary> /// Get the entity list by id /// </summary> /// <param name="portalContext"></param> /// <param name="serviceContext"></param> /// <param name="entitylist"></param> /// <param name="updateEntityListReference"></param> protected virtual bool TryGetEntityList(IPortalContext portalContext, OrganizationServiceContext serviceContext, out Entity entitylist, out bool updateEntityListReference) { entitylist = null; updateEntityListReference = false; if (EntityListReference != null) { entitylist = serviceContext.RetrieveSingle( "adx_entitylist", FetchAttribute.All, new Condition("adx_entitylistid", ConditionOperator.Equal, EntityListReference.Id)); if (entitylist == null) { throw new ApplicationException(string.Format("Couldn't find an Entity List (adx_entitylist) record where id equals {0}.", EntityListReference.Id)); } return(true); } var entity = portalContext.Entity; if (entity.LogicalName != "adx_webpage") { ADXTrace.Instance.TraceInfo(TraceCategory.Application, "The current entity must be of type adx_webpage. Please select the correct template for this entity type."); return(false); } var entitylistReference = entity.GetAttributeValue <EntityReference>("adx_entitylist"); if (entitylistReference == null) { ADXTrace.Instance.TraceInfo(TraceCategory.Application, string.Format("Could not find an Entity List (adx_entitylist) value on Web Page (adx_webpage) where id equals {0}.", entity.Id)); return(false); } entitylist = serviceContext.RetrieveSingle( "adx_entitylist", FetchAttribute.All, new Condition("adx_entitylistid", ConditionOperator.Equal, entitylistReference.Id)); if (entitylist == null) { ADXTrace.Instance.TraceError(TraceCategory.Application, string.Format("Could not find an Entity List (adx_webpage_entitylist) value where id equals {0} on Web Page (adx_webpage) where id equals {1}.", entitylistReference.Id, entity.Id)); return(false); } updateEntityListReference = true; return(true); }
public static string GetPaypalBaseUrl(IPortalContext xrm) { var paypalBaseUrl = xrm.ServiceContext.GetSiteSettingValueByName(xrm.Website, "Ecommerce/Paypal/PaypalBaseUrl"); if (string.IsNullOrWhiteSpace(paypalBaseUrl)) { paypalBaseUrl = SandboxURL; } return(paypalBaseUrl); }
public DataAdapterDependencies( OrganizationServiceContext serviceContext, ICrmEntitySecurityProvider securityProvider, IEntityUrlProvider urlProvider, IPortalContext portalContext, string portalName = null, RequestContext requestContext = null) : base(serviceContext, securityProvider, urlProvider, portalContext, requestContext) { PortalName = portalName; }
protected override void AssertRequestEntitySecurity(IPortalContext portal, OrganizationServiceContext serviceContext, Entity entity, ICrmEntitySecurityProvider security) { // If the current request entity is the current website, leave security handling for later, once we have info about // the relationship being requested. if (entity.ToEntityReference().Equals(portal.Website.ToEntityReference())) { return; } base.AssertRequestEntitySecurity(portal, serviceContext, entity, security); }
public static bool TryCreateOrder(NameValueCollection values, IPortalContext xrm, Entity account, string tombstoneEntityLogicalName = null, string tombstoneEntityPrimaryKeyName = null) { var dict = ToDictionary(values); var order = CreateOrder(dict, xrm, account, tombstoneEntityLogicalName, tombstoneEntityPrimaryKeyName); return(order != null && order.Entity != null); }
/// <summary> /// Constructor. /// </summary> /// <param name="serviceContext">An <see cref="OrganizationServiceContext"/>.</param> /// <param name="securityProvider">An <see cref="ICrmEntitySecurityProvider"/>.</param> /// <param name="httpContext">An <see cref="HttpContextBase"/>.</param> /// <param name="portalContext">An <see cref="IPortalContext"/> to get user and website <see cref="EntityReference"/>s from.</param> public DataAdapterDependencies(OrganizationServiceContext serviceContext, ICrmEntitySecurityProvider securityProvider, HttpContextBase httpContext, IPortalContext portalContext, RequestContext requestContext = null) : this( serviceContext, securityProvider, httpContext, portalContext.Website == null ? null : portalContext.Website.ToEntityReference(), portalContext.User != null ? portalContext.User.ToEntityReference() : null, requestContext : requestContext) { portalContext.ThrowOnNull("portalContext"); }
internal static string GetPortalContextPath(this RouteCollection routes, IPortalContext portalContext, string path) { ADXTrace.Instance.TraceInfo(TraceCategory.Application, string.Format("Start: {0}", path)); var match = routes.OfTypeWithLock <IPortalContextRoute>() .Select(portalContextRoute => portalContextRoute.GetPortalContextPath(portalContext, path)) .FirstOrDefault(contextPath => contextPath != null); ADXTrace.Instance.TraceInfo(TraceCategory.Application, string.Format("End: {0}", path)); return(match); }
public string GetPortalContextPath(IPortalContext portalContext, string path) { if (portalContext == null || path == null) { return(null); } var pathCache = HttpContext.Current != null ? HttpContext.Current.Items : null; var applicationPath = GetApplicationPathForSiteMarker(portalContext.ServiceContext, portalContext.Website, pathCache); return(GetPortalContextPath(path, applicationPath)); }
private static EntityReference GetPublishingState(IPortalContext portal, Entity directory) { // Load all publishing states in website. var publishingStates = portal.ServiceContext.CreateQuery("adx_publishingstate") .Where(e => e.GetAttributeValue <EntityReference>("adx_websiteid") == portal.Website.ToEntityReference()) .ToList(); // Favour a publishing state that is both visible and the default. var visibleAndDefaultState = publishingStates.FirstOrDefault(e => e.GetAttributeValue <bool?>("adx_isvisible").GetValueOrDefault() && e.GetAttributeValue <bool?>("adx_isdefault").GetValueOrDefault()); if (visibleAndDefaultState != null) { return(visibleAndDefaultState.ToEntityReference()); } // Next best, try to use the publishing state of the parent directory. if (directory.Attributes.Contains("adx_publishingstateid")) { var directoryPublishingState = directory.GetAttributeValue <EntityReference>("adx_publishingstateid"); if (directoryPublishingState != null) { return(directoryPublishingState); } } // Next, just try for the default. var defaultState = publishingStates.FirstOrDefault(e => e.GetAttributeValue <bool?>("adx_isdefault").GetValueOrDefault()); if (defaultState != null) { return(defaultState.ToEntityReference()); } // Failing that, try for visible. var visibleState = publishingStates.FirstOrDefault(e => e.GetAttributeValue <bool?>("adx_isvisible").GetValueOrDefault()); if (visibleState != null) { return(visibleState.ToEntityReference()); } // Failing that, settle for any state. var firstState = publishingStates.FirstOrDefault(); if (firstState != null) { return(firstState.ToEntityReference()); } return(null); }
private static void InitializeView(PortalView view) { IPortalContext context = PortalContext.Current; IViewResult result = context.Request.Result as IViewResult; if (result == null) { return; } view.ViewData = context.Request.Result.ViewData; view.InitializeContext(PortalContext.Current); }
public DataAdapterDependencies(OrganizationServiceContext serviceContext, ICrmEntitySecurityProvider securityProvider, IEntityUrlProvider urlProvider, IPortalContext portalContext) : this( serviceContext, securityProvider, urlProvider, portalContext.Website == null ? null : portalContext.Website.ToEntityReference(), portalContext.User == null ? null : portalContext.User.ToEntityReference()) { if (portalContext == null) { throw new ArgumentNullException("portalContext"); } }