protected override IEnumerable<PageActionBase> CreateItems() { var pageActionContainer = new PageActionContainer(0, ID, ContainerType.GetValueOrDefault(PageActionContainerType.ActionItems)); pageActionContainer.Properties.CaptionML.Set(CaptionML); pageActionContainer.Properties.Description = Description; pageActionContainer.Properties.Name = Name; #if NAV2016 pageActionContainer.Properties.ToolTipML.Set(ToolTipML); #endif yield return pageActionContainer; if (ChildActions != null) { var variables = new List<PSVariable>() { new PSVariable("ActionIndentation", 1) }; var childActions = ChildActions .InvokeWithContext(null, variables) .Select(o => o.BaseObject) .Cast<PageActionBase>(); foreach (var childAction in childActions) { yield return childAction; } } }
public static IEnumerable <ParameterBase> ToParameters(this PageActionContainer pageActionContainer) { yield return(new SimpleParameter("ID", pageActionContainer.ID)); foreach (var parameter in pageActionContainer.Properties.Where(p => p.HasValue).SelectMany(p => p.ToParameters())) { yield return(parameter); } yield return(new ScriptBlockParameter("ChildActions", pageActionContainer.Children.Select(a => a.ToInvocation()))); }
public static void Write(this PageActionContainer action, CSideWriter writer) { var idLength = Math.Max(action.ID.ToString().Length, 8); var id = action.ID.ToString().PadRight(idLength); var idAndIndentation = string.Format("{0};{1}", id, action.IndentationLevel.HasValue ? action.IndentationLevel.ToString() : string.Empty); writer.Write("{{ {0};", idAndIndentation.PadRight(13)); writer.Indent(writer.Column); writer.WriteLine("ActionContainer;"); action.Properties.Write(PropertiesStyle.Field, writer); writer.WriteLine("}"); writer.Unindent(); }