예제 #1
0
        DriverResult IContentPartDriver.UpdateEditor(UpdateEditorContext context)
        {
            var part = context.ContentItem.As <TContent>();

            if (part == null)
            {
                return(null);
            }

            // Checking if the editor needs to be updated (e.g. if any of the shapes were not hidden).
            DriverResult editor = Editor(part, context.New);
            IEnumerable <ContentShapeResult> contentShapeResults = editor.GetShapeResults();

            if (contentShapeResults.Any(contentShapeResult =>
                                        contentShapeResult == null || contentShapeResult.WasDisplayed(context)))
            {
                DriverResult result = Editor(part, context.Updater, context.New);

                if (result != null)
                {
                    result.ContentPart = part;
                }

                return(result);
            }

            return(editor);
        }
예제 #2
0
        public static IEnumerable <ContentShapeResult> GetShapeResults(this DriverResult driverResult)
        {
            if (driverResult is CombinedResult)
            {
                return(((CombinedResult)driverResult).GetResults().Select(result => result as ContentShapeResult));
            }

            return(new[] { driverResult as ContentShapeResult });
        }
예제 #3
0
        DriverResult IContentFieldDriver.BuildEditorShape(BuildEditorContext context)
        {
            return(Process(context.ContentItem, (part, field) => {
                DriverResult result = Editor(part, field, context.New);

                if (result != null)
                {
                    result.ContentPart = part;
                    result.ContentField = field;
                }

                return result;
            }, context.Logger));
        }
예제 #4
0
        DriverResult IContentFieldDriver.BuildDisplayShape(BuildDisplayContext context)
        {
            return(Process(context.ContentItem, (part, field) => {
                DriverResult result = Display(part, field, context.DisplayType, context.New);

                if (result != null)
                {
                    result.ContentPart = part;
                    result.ContentField = field;
                }

                return result;
            }, context.Logger));
        }
예제 #5
0
        DriverResult IContentPartDriver.BuildEditor(BuildEditorContext context)
        {
            var part = context.ContentItem.As <TContent>();

            if (part == null)
            {
                return(null);
            }

            DriverResult result = Editor(part, context.New);

            if (result != null)
            {
                result.ContentPart = part;
            }

            return(result);
        }
예제 #6
0
        DriverResult IContentPartDriver.BuildDisplay(BuildDisplayContext context)
        {
            var part = context.ContentItem.As <TContent>();

            if (part == null)
            {
                return(null);
            }

            DriverResult result = Display(part, context.DisplayType, context.New);

            if (result != null)
            {
                result.ContentPart = part;
            }

            return(result);
        }
예제 #7
0
        DriverResult IContentFieldDriver.UpdateEditorShape(UpdateEditorContext context)
        {
            return(Process(context.ContentItem, (part, field) => {
                // Checking if the editor needs to be updated (e.g. if any of the shapes were not hidden).
                DriverResult editor = Editor(part, field, context.New);
                IEnumerable <ContentShapeResult> contentShapeResults = editor.GetShapeResults();

                if (contentShapeResults.Any(contentShapeResult =>
                                            contentShapeResult == null || contentShapeResult.WasDisplayed(context)))
                {
                    DriverResult result = Editor(part, field, context.Updater, context.New);

                    if (result != null)
                    {
                        result.ContentPart = part;
                        result.ContentField = field;
                    }

                    return result;
                }

                return editor;
            }, context.Logger));
        }