Exemple #1
0
        public static Item GetActionItem(this IController controller, string datasourceString = null, string templateIdentifier = null, Item contextItem = null, IDataliftStrategy strategy = null)
        {
            IDataliftAttribute att = null;

            if (controller != null)
            {
                att = GetStrategyAttribute(controller);
            }

            if (strategy == null && att != null)
            {
                strategy = att.Strategy;
            }

            if (templateIdentifier == null && att != null)
            {
                templateIdentifier = att.TemplateIdentifier;
            }

            if (datasourceString == null)
            {
                datasourceString = RenderingContext.CurrentOrNull?.Rendering.DataSource;
            }

            if (strategy == null)
            {
                strategy = new DatasourceOrSelfStrategy();
            }

            if (contextItem == null)
            {
                contextItem = Context.Item;
            }

            return(strategy.Resolve(datasourceString, contextItem, templateIdentifier));
        }
 public DatasourceOrSelfAttribute(string templateIdentifier)
 {
     TemplateIdentifier = templateIdentifier;
     Strategy           = new DatasourceOrSelfStrategy();
 }