public Task DescribeAsync(ISyncService sync, MarkdownWriter writer) { var appFile = sync.FileSystem.GetFile(new FilePath("app.json")); if (!appFile.Exists) { return(Task.CompletedTask); } var model = sync.Read <AppModel>(appFile, log); if (model.Clients.Count > 0) { var rows = model.Clients.Select(x => new object[] { x.Key, x.Value.Name, x.Value.Role }).OrderBy(x => x[0]).ToArray(); writer.H3("Clients"); writer.Paragraph($"{rows.Length} client(s)."); writer.Table(new[] { "Name", "Label", "Role" }, rows); } if (model.Roles.Count > 0) { var rows = model.Roles.Select(x => new object[] { x.Key, x.Value.Permissions.Count }).OrderBy(x => x[0]).ToArray(); writer.H3("Roles"); writer.Paragraph($"{rows.Length} role(s)."); writer.Table(new[] { "Name", "Permissions" }, rows); } if (model.Contributors.Count > 0) { var rows = model.Contributors.Select(x => new object[] { x.Key, x.Value.Role }).OrderBy(x => x[0]).ToArray(); writer.H3("Contributors"); writer.Paragraph($"{rows.Length} contributor(s)."); writer.Table(new[] { "Id", "Role" }, rows); } if (model.Languages.Count > 0) { var rows = model.Languages.Select(x => new object[] { x.Key, x.Value.IsMaster == true ? "y" : "n" }).OrderBy(x => x[0]).ToArray(); writer.H3("Languages"); writer.Paragraph($"{rows.Length} language(s)."); writer.Table(new[] { "Code", "Master" }, rows); } return(Task.CompletedTask); }
public Task DescribeAsync(ISyncService sync, MarkdownWriter writer) { var models = GetFiles(sync.FileSystem) .Select(x => (x, sync.Read <AssetsModel>(x, log))); writer.Paragraph($"{models.SelectMany(x => x.Item2.Assets).Count()} asset(s)."); return(Task.CompletedTask); }
public Task DescribeAsync(ISyncService sync, MarkdownWriter writer) { var models = GetFiles(sync.FileSystem) .Select(x => sync.Read <AssetFoldersModel>(x, log)) .ToList(); writer.Paragraph($"{models.SelectMany(x => x.Paths).Distinct().Count()} asset folder(s)."); return(Task.CompletedTask); }
public Task DescribeAsync(ISyncService sync, MarkdownWriter writer) { var models = GetFiles(sync.FileSystem) .Select(x => sync.Read <RuleModel>(x, log)) .ToList(); writer.Paragraph($"{models.Count} rule(s)."); if (models.Count > 0) { var rows = models.Select(x => new object[] { x.Name, x.Trigger.TypeName(), x.Action.TypeName() }).OrderBy(x => x[0]).ToArray(); writer.Table(new[] { "Name", "Trigger", "Action" }, rows); } return(Task.CompletedTask); }
public Task DescribeAsync(ISyncService sync, MarkdownWriter writer) { var models = GetFiles(sync.FileSystem) .Select(x => sync.Read <UpdateWorkflowDto>(x, log)) .ToList(); writer.Paragraph($"{models.Count} workflow(s)."); if (models.Count > 0) { var rows = models.Select(x => new object[] { x.Name, string.Join(", ", x.Steps.Select(y => y.Key)), x.Initial }).OrderBy(x => x[0]).ToArray(); writer.Table(new[] { "Name", "Steps", "Initial" }, rows); } return(Task.CompletedTask); }
public Task DescribeAsync(ISyncService sync, MarkdownWriter writer) { var models = GetSchemaFiles(sync.FileSystem) .Select(x => sync.Read <SchemaModel>(x, log)) .ToList(); writer.Paragraph($"{models.Count} schema(s)."); if (models.Count > 0) { var rows = models.Select(x => new object[] { x.Name, x.SchemaType.ToString(), x.Schema.Fields.Count }).OrderBy(x => x[0]).ToArray(); writer.Table(new[] { "Schema", "Type", "Fields" }, rows); } return(Task.CompletedTask); }
public Task DescribeAsync(ISyncService sync, MarkdownWriter writer) { var models = GetFiles(sync.FileSystem) .Select(x => (x, sync.Read <ContentsModel>(x, log))); writer.Paragraph($"{models.SelectMany(x => x.Item2.Contents).Count()} content(s)."); var rows = models .SelectMany(x => x.Item2.Contents).GroupBy(x => x.Schema) .Select(x => new object[] { x.Key, x.Count() }).OrderBy(x => x[0]) .ToArray(); if (rows.Length > 0) { writer.Table(new[] { "Schema", "Counts" }, rows); } return(Task.CompletedTask); }