protected override IEnumerable <PageActionBase> CreateItems() { var pageActionGroup = new PageActionGroup(ID, GetIndentation()); pageActionGroup.Properties.CaptionML.Set(CaptionML); pageActionGroup.Properties.ActionContainerType = ContainerType; pageActionGroup.Properties.Description = Description; pageActionGroup.Properties.Enabled = Enabled; pageActionGroup.Properties.Image = Image; pageActionGroup.Properties.Name = Name; #if NAV2016 pageActionGroup.Properties.ToolTipML.Set(ToolTipML); #endif pageActionGroup.Properties.Visible = Visible; yield return(pageActionGroup); if (ChildActions != null) { var variables = new List <PSVariable>() { new PSVariable("ActionIndentation", GetIndentation() + 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 PageActionGroup pageActionGroup) { yield return(new SimpleParameter("ID", pageActionGroup.ID)); foreach (var parameter in pageActionGroup.Properties.Where(p => p.HasValue).SelectMany(p => p.ToParameters())) { yield return(parameter); } yield return(new ScriptBlockParameter("ChildActions", pageActionGroup.Children.Select(a => a.ToInvocation()))); }
public static void Write(this PageActionGroup 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.ToString()); writer.Write("{{ {0};", idAndIndentation.PadRight(13)); writer.Indent(writer.Column); writer.WriteLine("ActionGroup;"); action.Properties.Write(PropertiesStyle.Field, writer); writer.WriteLine("}"); writer.Unindent(); }