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;
        }
Example #5
0
 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.");
     }
 }
Example #6
0
        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);
        }
Example #8
0
 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);
        }
Example #11
0
        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 });
        }
Example #13
0
 /// <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));
 }
Example #16
0
        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);
        }
Example #19
0
        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");
 }
Example #26
0
        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);
        }
Example #27
0
        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));
        }
Example #28
0
        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);
        }
Example #29
0
        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");
     }
 }