Пример #1
0
 public void FluentBuilderExamples()
 {
     _myFilter       = null; // TODO
     _myAppender     = Append.To.Console(c => c.Targeting.ConsoleOut());
     _myLayout       = Layout.Using.ExceptionMessage();
     _myErrorHandler = Handle.Errors.OnlyOnce(h => h.PrefixedBy("ERROR"));
     _myRenderer     = null; // TODO
 }
Пример #2
0
 public void FluentBuilderExamples()
 {
     _myFilter = null; // TODO
     _myAppender = Append.To.Console(c => c.Targeting.ConsoleOut());
     _myLayout = Layout.Using.ExceptionMessage();
     _myErrorHandler = Handle.Errors.OnlyOnce(h => h.PrefixedBy("ERROR"));
     _myRenderer = null; // TODO
 }
Пример #3
0
        public void Configure(ILayoutDefinition layout, AttributeSet attributes)
        {
            if (ReferenceEquals(layout, null))
            {
                return;
            }

            var validationErrros = _attributeMatrix.Validate <ILayoutDefinition>(attributes);

            if (validationErrros != null)
            {
                var message = "There are invalid attributes on layout of type " + layout.GetType().DisplayName();

                if (attributes.IsLayout != null && string.IsNullOrEmpty(attributes.IsLayout.Name))
                {
                    message += " called '" + attributes.IsLayout.Name + "'.";
                }

                foreach (var error in validationErrros)
                {
                    message += Environment.NewLine + error;
                }

                throw new LayoutBuilderException(message);
            }

            if (!ReferenceEquals(attributes.IsLayout, null))
            {
                layout
                .Name(attributes.IsLayout.Name)
                .RegionNesting(attributes.IsLayout.RegionNesting);
            }

            if (!ReferenceEquals(attributes.NeedsDatas, null))
            {
                foreach (var dataNeed in attributes.NeedsDatas)
                {
                    if (!string.IsNullOrEmpty(dataNeed.DataProviderName))
                    {
                        layout.DataProvider(dataNeed.DataProviderName);
                    }
                    if (dataNeed.DataType != null)
                    {
                        layout.BindTo(dataNeed.DataType, dataNeed.Scope);
                    }
                }
            }

            if (!ReferenceEquals(attributes.PartOf, null))
            {
                layout.PartOf(attributes.PartOf.PackageName);
            }

            if (!ReferenceEquals(attributes.DeployedAs, null))
            {
                layout
                .DeployIn(attributes.DeployedAs.ModuleName)
                .AssetDeployment(attributes.DeployedAs.Deployment);
            }

            if (!ReferenceEquals(attributes.NeedsComponents, null))
            {
                foreach (var need in attributes.NeedsComponents)
                {
                    layout.NeedsComponent(need.ComponentName);
                }
            }

            if (!ReferenceEquals(attributes.Container, null))
            {
                layout
                .Tag(attributes.Container.Tag)
                .ClassNames(attributes.Container.ClassNames);
            }

            if (!ReferenceEquals(attributes.Style, null))
            {
                layout
                .Style(attributes.Style.CssStyle);
            }

            if (!ReferenceEquals(attributes.ChildContainer, null))
            {
                layout
                .NestingTag(attributes.ChildContainer.Tag)
                .NestedClassNames(attributes.ChildContainer.ClassNames);
            }

            if (!ReferenceEquals(attributes.ChildStyle, null))
            {
                layout.NestedStyle(attributes.ChildStyle.CssStyle);
            }

            if (!ReferenceEquals(attributes.DeployCsss, null))
            {
                foreach (var css in attributes.DeployCsss.OrderBy(c => c.Order))
                {
                    layout.DeployCss(css.CssSelector, css.CssStyle);
                }
            }

            if (!ReferenceEquals(attributes.DeployFunctions, null))
            {
                foreach (var function in attributes.DeployFunctions)
                {
                    layout.DeployFunction(
                        function.ReturnType,
                        function.FunctionName,
                        function.Parameters,
                        function.Body,
                        function.IsPublic);
                }
            }

            if (!ReferenceEquals(attributes.LayoutRegions, null))
            {
                foreach (var usesRegion in attributes.LayoutRegions)
                {
                    layout.Region(usesRegion.RegionName, usesRegion.RegionElement);
                }
            }

            if (!ReferenceEquals(attributes.RegionComponents, null))
            {
                foreach (var regionComponent in attributes.RegionComponents)
                {
                    layout.Component(regionComponent.Region, regionComponent.Component);
                }
            }

            if (!ReferenceEquals(attributes.RegionLayouts, null))
            {
                foreach (var regionLayout in attributes.RegionLayouts)
                {
                    layout.Layout(regionLayout.Region, regionLayout.Layout);
                }
            }

            if (!ReferenceEquals(attributes.RegionHtmls, null))
            {
                foreach (var regionHtml in attributes.RegionHtmls)
                {
                    layout.Html(regionHtml.Region, regionHtml.LocalizationId, regionHtml.Html);
                }
            }

            if (!ReferenceEquals(attributes.RegionTemplates, null))
            {
                foreach (var regionTemplate in attributes.RegionTemplates)
                {
                    layout.Template(regionTemplate.Region, regionTemplate.TemplatePath);
                }
            }
        }
 /// <summary>
 /// Configures the appender to use the specified layout definition.
 /// </summary>
 /// <param name="layout">An <see cref="ILayoutDefinition"/> instance.</param>
 /// <returns>The parent <typeparamref name="T"/> instance in the fluent API.</returns>
 public T Layout(ILayoutDefinition layout)
 {
     _layout = layout;
     return(_parent);
 }