Example #1
0
        public static MvcHtmlString PropertyFor <TModel, TValue>(this HtmlHelper <TModel> html, Expression <Func <TModel, TValue> > expression)
        {
            if (ModeProvider == null)
            {
                ModeProvider = DependencyResolver.Current.GetService <IModeProvider>();
            }

            var result = html.DisplayFor(expression);

            if (ModeProvider.GetIsPageEditing(html.ViewContext.HttpContext) != true)
            {
                return(result);
            }

            if (ObjectIdentifier == null)
            {
                ObjectIdentifier = DependencyResolver.Current.GetService <IObjectIdentifier>();
            }

            if (PropertyExpressionMetaDataProvider == null)
            {
                PropertyExpressionMetaDataProvider = DependencyResolver.Current.GetService <IPropertyExpressionMetaDataProvider>();
            }

            var metaData = PropertyExpressionMetaDataProvider.GetFor(expression);

            return(MvcHtmlString.Create($"<span class=\"poetry-page-editing-property\" property-name=\"{metaData.PropertyName}\" object-id=\"{ObjectIdentifier.GetId(metaData.OwnerObject ?? html.ViewData.Model)}\">{result}</span>"));
        }
Example #2
0
        public static MvcHtmlString AddPageEditing(this HtmlHelper html)
        {
            if (ModeProvider == null)
            {
                ModeProvider = DependencyResolver.Current.GetService<IModeProvider>();
            }

            if (ModeProvider.GetIsPageEditing(html.ViewContext.HttpContext) != true)
            {
                return null;
            }

            if(AddPageEditingHtmlGenerator == null)
            {
                AddPageEditingHtmlGenerator = DependencyResolver.Current.GetService<IAddPageEditingHtmlGenerator>();
            }

            return MvcHtmlString.Create(AddPageEditingHtmlGenerator.GenerateHtml());
        }
Example #3
0
        public static MvcHtmlString AddPageEditing(this HtmlHelper html)
        {
            if (ModeProvider == null)
            {
                ModeProvider = DependencyResolver.Current.GetService <IModeProvider>();
            }

            if (ModeProvider.GetIsPageEditing(html.ViewContext.HttpContext) != true)
            {
                return(null);
            }

            if (BasePathProvider == null)
            {
                BasePathProvider = DependencyResolver.Current.GetService <IBasePathProvider>();
            }

            return(MvcHtmlString.Create($"<script src=\"/{BasePathProvider.BasePath}/PageEditing/Scripts/target-page-editor.js\" async></script>"));
        }
        void Context_BeginRequest(object sender, EventArgs e)
        {
            if (PrefixProvider == null)
            {
                PrefixProvider = DependencyResolver.Current.GetService <IPathPrefixProvider>();
            }
            if (ModeProvider == null)
            {
                ModeProvider = DependencyResolver.Current.GetService <IModeProvider>();
            }

            var context = ((HttpApplication)sender).Context;

            if (!context.Request.Path.StartsWith(PrefixProvider.Prefix, StringComparison.InvariantCultureIgnoreCase))
            {
                return;
            }

            ModeProvider.SetIsPageEditing(context, true);
            context.RewritePath("/" + context.Request.Path.Substring(PrefixProvider.Prefix.Length));
        }
Example #5
0
        public static MvcHtmlString PropertyFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression)
        {
            if(ModeProvider == null)
            {
                ModeProvider = DependencyResolver.Current.GetService<IModeProvider>();
            }

            var result = html.DisplayFor(expression);

            if(ModeProvider.GetIsPageEditing(html.ViewContext.HttpContext) != true)
            {
                return result;
            }

            if (PropertyForHtmlGenerator == null)
            {
                PropertyForHtmlGenerator = DependencyResolver.Current.GetService<IPropertyForHtmlGenerator>();
            }

            return new MvcHtmlString(PropertyForHtmlGenerator.GenerateHtml(html.ViewData.Model, expression, result.ToString()));
        }