public ConnectedAccountViewModel(ConnectedAccount ca) : base(ca, null) { _ca = ca ?? throw new System.ArgumentNullException(nameof(ca)); Tag = ca; AddActionCommands(ca); CommandGroups.Add(new HierarchicalResourceCommandGroup( new HierarchicalResourceCommand("Edit", Symbol.Edit, EditAccountCommand))); HierarchicalResourceCommandGroup copyGroup = AddCommandGroup( new HierarchicalResourceCommand("copy connection string", Symbol.Copy, () => { ServiceLocator.SystemService.SetClipboardText(_ca.ConnectionString); return(Task.CompletedTask); })); if (_ca.StorageConnectionString.Parameters.TryGetValue(KnownParameter.KeyOrPassword, out string keyOrPassword)) { copyGroup.Commands.Add(new HierarchicalResourceCommand("copy key/password", Symbol.Copy, () => { ServiceLocator.SystemService.SetClipboardText(keyOrPassword); return(Task.CompletedTask); })); } }
private void AddActionCommands(ConnectedAccount ca) { if (!(ca.Definition is BlobApplicationAccount baa)) { return; } IReadOnlyCollection <ActionGroup> actionGroups = baa.GetExecutableAccountActionGroups(ca); foreach (ActionGroup ag in actionGroups) { var hrg = new HierarchicalResourceCommandGroup( ag.Actions.Select( cmd => new HierarchicalResourceCommand(cmd.Name, cmd.Icon, () => cmd.ExecuteAsync(ca, null))).ToArray() ); CommandGroups.Add(hrg); } }