public static HarshServerProvisioner ToServerProvisioner(this HarshProvisionerBase provisioner) { if (provisioner == null) { throw Logger.Fatal.ArgumentNull(nameof(provisioner)); } var clientProvisioner = (provisioner as HarshProvisioner); var serverProvisioner = (provisioner as HarshServerProvisioner); if (clientProvisioner != null) { serverProvisioner = new ClientProvisionerWrapper(clientProvisioner); } if (serverProvisioner == null) { throw Logger.Fatal.ArgumentFormat( nameof(provisioner), SR.HarshServerProvisionerConverter_CannotConvert, provisioner.GetType().FullName ); } return(serverProvisioner); }
internal static void AddChild <TContext>(HarshProvisionerBase <TContext> parent, Object child) where TContext : HarshProvisionerContextBase { if (parent == null) { throw Logger.Fatal.ArgumentNull(nameof(parent)); } if (child == null) { throw Logger.Fatal.ArgumentNull(nameof(child)); } var provisioner = (child as HarshProvisionerBase); var defaultFromContextTag = (child as IDefaultFromContextTag); if (provisioner != null) { parent.Children.Add(provisioner); } else if (defaultFromContextTag != null) { parent.ModifyChildrenContextState(defaultFromContextTag); } else { throw Logger.Fatal.ArgumentNotAssignableTo( nameof(child), child, typeof(HarshProvisionerBase), typeof(IDefaultFromContextTag) ); } }
internal static void AddChildren <TContext>(HarshProvisionerBase <TContext> parent, Object children) where TContext : HarshProvisionerContextBase { if (children == null) { return; } if ((children is HarshProvisionerBase) || (children is IDefaultFromContextTag)) { AddChild(parent, children); } var scriptBlock = children as ScriptBlock; if (scriptBlock != null) { children = scriptBlock.Invoke() .Select(c => c.BaseObject); } var enumerable = children as IEnumerable; if (children != null) { AddChildren(parent, children); } AddChild(parent, children); }
internal static void AddChildren <TContext>(HarshProvisionerBase <TContext> parent, IEnumerable <Object> children) where TContext : HarshProvisionerContextBase { foreach (var child in children) { AddChild(parent, child); } }
protected sealed override Task UnprovisionChild(HarshProvisionerBase provisioner, HarshProvisionerContext context) { if (provisioner == null) { throw Logger.Fatal.ArgumentNull(nameof(provisioner)); } return(((HarshProvisioner)(provisioner)).UnprovisionAsync(context)); }
protected sealed override async Task UnprovisionChild(HarshProvisionerBase provisioner, HarshServerProvisionerContext context) { if (provisioner == null) { throw Logger.Fatal.ArgumentNull(nameof(provisioner)); } var serverProvisioner = provisioner.ToServerProvisioner(); if (ShouldUnprovisionChild(serverProvisioner)) { await serverProvisioner.UnprovisionAsync(context); } }