From 6c33fddd58ae50a09bf2dff1148eadbfc936febd Mon Sep 17 00:00:00 2001 From: Mitchel Sellers Date: Wed, 10 Jan 2024 01:24:16 -0600 Subject: [PATCH] Added Minutes per File Summary #29 --- .../Models/GithubUsageEntry.cs | 1 + .../Models/UsageReportViewModel.cs | 1 + .../Processor/GithubUsageProcessor.cs | 8 +++++- .../Views/Home/_ActionDetail.cshtml | 27 +++++++++++++++++++ .../Views/Shared/_Start.cshtml | 2 +- 5 files changed, 37 insertions(+), 2 deletions(-) diff --git a/src/GitHubCostVisualizer.Web/Models/GithubUsageEntry.cs b/src/GitHubCostVisualizer.Web/Models/GithubUsageEntry.cs index 0dd20a8..6a261b1 100644 --- a/src/GitHubCostVisualizer.Web/Models/GithubUsageEntry.cs +++ b/src/GitHubCostVisualizer.Web/Models/GithubUsageEntry.cs @@ -27,5 +27,6 @@ public class GithubUsageEntry public string Username { get; set; } [Name("Notes")] public string Notes { get; set; } + public string TrimmedWorkflow => ActionWorkflow?.Replace(".github/workflows/", ""); } } \ No newline at end of file diff --git a/src/GitHubCostVisualizer.Web/Models/UsageReportViewModel.cs b/src/GitHubCostVisualizer.Web/Models/UsageReportViewModel.cs index 2d98e7c..4e70ed6 100644 --- a/src/GitHubCostVisualizer.Web/Models/UsageReportViewModel.cs +++ b/src/GitHubCostVisualizer.Web/Models/UsageReportViewModel.cs @@ -31,6 +31,7 @@ public class UsageReportViewModel public decimal TotalActionMinutesCost { get; set; } public List> ActionsSummary { get; set; } public List> ActionMinutesByRepository { get; set; } + public List> ActionMinutesByWorkflow { get; set; } public decimal AverageDailyStorage { get; set; } public List> DailyStorageSummary { get; set; } public List> AverageDailyStorageByRepo { get; set; } diff --git a/src/GitHubCostVisualizer.Web/Processor/GithubUsageProcessor.cs b/src/GitHubCostVisualizer.Web/Processor/GithubUsageProcessor.cs index 6e05809..5463387 100644 --- a/src/GitHubCostVisualizer.Web/Processor/GithubUsageProcessor.cs +++ b/src/GitHubCostVisualizer.Web/Processor/GithubUsageProcessor.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Security.Cryptography.X509Certificates; using GitHubCostVisualizer.Web.Models; namespace GitHubCostVisualizer.Web.Processor @@ -34,7 +35,12 @@ into grp group x by x.Repository into grp select new KeyValuePair(grp.Key, grp.Sum(i => (int)i.Quantity))).ToList(); - + model.ActionMinutesByWorkflow = (from x in entries.Where(i => + i.Product.Equals(Constants.GitHubProducts.Actions, StringComparison.InvariantCultureIgnoreCase)) + group x by new { x.Repository, x.TrimmedWorkflow } + into grp + select new KeyValuePair($"{grp.Key.Repository} - {grp.Key.TrimmedWorkflow}", + grp.Sum(i => (int)i.Quantity))).ToList(); model.DailyStorageSummary = (from x in entries.Where(i => i.Product.Equals(Constants.GitHubProducts.SharedStorage, StringComparison.InvariantCultureIgnoreCase)) group x by x.Date into grp diff --git a/src/GitHubCostVisualizer.Web/Views/Home/_ActionDetail.cshtml b/src/GitHubCostVisualizer.Web/Views/Home/_ActionDetail.cshtml index ca0ef38..508a81b 100644 --- a/src/GitHubCostVisualizer.Web/Views/Home/_ActionDetail.cshtml +++ b/src/GitHubCostVisualizer.Web/Views/Home/_ActionDetail.cshtml @@ -26,6 +26,14 @@ aria-selected="False"> Chart (By Repo) + + List (By Workflow) + +