From 925ef4ecb030c84bbba2d807988e5e89633e88a3 Mon Sep 17 00:00:00 2001 From: ALEXXXANDRO Date: Tue, 3 Aug 2021 09:41:07 +0300 Subject: [PATCH 1/7] fix: remove useless pages\usings, move some files --- .../Client/Pages/Counter.razor | 16 -------- .../{TestPage.razor => SingleStat.razor} | 2 +- .../Pages/{GetTeam.razor => UnitedStat.razor} | 38 ++++--------------- .../Client/Pages/UnitedStat.razor.cs | 36 ++++++++++++++++++ .../Client/Shared/NavMenu.razor | 14 +++---- .../Client/_Imports.razor | 2 +- .../Server/Controllers/TeamController.cs | 2 - 7 files changed, 52 insertions(+), 58 deletions(-) delete mode 100644 Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/Counter.razor rename Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/{TestPage.razor => SingleStat.razor} (96%) rename Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/{GetTeam.razor => UnitedStat.razor} (52%) create mode 100644 Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/UnitedStat.razor.cs diff --git a/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/Counter.razor b/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/Counter.razor deleted file mode 100644 index 8641f78..0000000 --- a/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/Counter.razor +++ /dev/null @@ -1,16 +0,0 @@ -@page "/counter" - -

Counter

- -

Current count: @currentCount

- - - -@code { - private int currentCount = 0; - - private void IncrementCount() - { - currentCount++; - } -} diff --git a/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/TestPage.razor b/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/SingleStat.razor similarity index 96% rename from Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/TestPage.razor rename to Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/SingleStat.razor index 5b1e9f8..6a987ec 100644 --- a/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/TestPage.razor +++ b/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/SingleStat.razor @@ -1,7 +1,7 @@ @page "/testpage" @using Kysect.GithubActivityAnalyzer.ApiAccessor.ApiResponses @inject HttpClient Http -

TestFunc

+

Get activity by 2 ways (Test)

diff --git a/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/GetTeam.razor b/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/UnitedStat.razor similarity index 52% rename from Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/GetTeam.razor rename to Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/UnitedStat.razor index 3f7b376..4b194f5 100644 --- a/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/GetTeam.razor +++ b/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/UnitedStat.razor @@ -1,15 +1,16 @@ @page "/Team" -@using Kysect.GithubActivityAnalyzer.WebDemo.Shared -@using Kysect.GithubActivityAnalyzer.Aggregators.Models @inject HttpClient Http -

TestFunc

+

United stat

- +

+

- +

- + + +

@@ -57,28 +58,3 @@ else } -@code { - private string _username = String.Empty; - private string _teamName = String.Empty; - private List _usernames = new List(); - private TeamResponse _team; - private bool _statsIsVisible = false; - - - protected async Task GetStat() - { - Team newTeamInfo = new Team() - { - TeamName = _teamName, - Usernames = _usernames - }; - var response = await Http.PostAsJsonAsync("Team", newTeamInfo); - _team = await response.Content.ReadFromJsonAsync(); - _statsIsVisible = true; - } - - private void AddStudent() - { - _usernames.Add(_username); - } -} diff --git a/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/UnitedStat.razor.cs b/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/UnitedStat.razor.cs new file mode 100644 index 0000000..1aef1da --- /dev/null +++ b/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/UnitedStat.razor.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Kysect.GithubActivityAnalyzer.WebDemo.Shared; +using Kysect.GithubActivityAnalyzer.Aggregators.Models; +using System.Net.Http.Json; +namespace Kysect.GithubActivityAnalyzer.WebDemo.Client.Pages +{ + public partial class UnitedStat + { + private string _username = String.Empty; + private string _teamName = String.Empty; + private List _usernames = new List(); + private TeamResponse _team; + private bool _statsIsVisible = false; + + + protected async Task GetStat() + { + Team newTeamInfo = new Team() + { + TeamName = _teamName, + Usernames = _usernames + }; + var response = await Http.PostAsJsonAsync("Team", newTeamInfo); + _team = await response.Content.ReadFromJsonAsync(); + _statsIsVisible = true; + } + private void AddStudent() + { + if (!_usernames.Contains(_username)) + _usernames.Add(_username); + } + + } +} diff --git a/Kysect.GithubActivityAnalyzer.WebDemo/Client/Shared/NavMenu.razor b/Kysect.GithubActivityAnalyzer.WebDemo/Client/Shared/NavMenu.razor index f51aaaf..fb9be82 100644 --- a/Kysect.GithubActivityAnalyzer.WebDemo/Client/Shared/NavMenu.razor +++ b/Kysect.GithubActivityAnalyzer.WebDemo/Client/Shared/NavMenu.razor @@ -12,19 +12,14 @@ Home - + diff --git a/Kysect.GithubActivityAnalyzer.WebDemo/Client/_Imports.razor b/Kysect.GithubActivityAnalyzer.WebDemo/Client/_Imports.razor index 2b477dc..d440f4d 100644 --- a/Kysect.GithubActivityAnalyzer.WebDemo/Client/_Imports.razor +++ b/Kysect.GithubActivityAnalyzer.WebDemo/Client/_Imports.razor @@ -7,4 +7,4 @@ @using Microsoft.AspNetCore.Components.WebAssembly.Http @using Microsoft.JSInterop @using Kysect.GithubActivityAnalyzer.WebDemo.Client -@using Kysect.GithubActivityAnalyzer.WebDemo.Client.Shared +@using Kysect.GithubActivityAnalyzer.WebDemo.Client.Shared \ No newline at end of file diff --git a/Kysect.GithubActivityAnalyzer.WebDemo/Server/Controllers/TeamController.cs b/Kysect.GithubActivityAnalyzer.WebDemo/Server/Controllers/TeamController.cs index 8ed4b79..72c27bd 100644 --- a/Kysect.GithubActivityAnalyzer.WebDemo/Server/Controllers/TeamController.cs +++ b/Kysect.GithubActivityAnalyzer.WebDemo/Server/Controllers/TeamController.cs @@ -1,8 +1,6 @@ using Microsoft.AspNetCore.Mvc; -using Kysect.GithubActivityAnalyzer.Aggregators; using Kysect.GithubActivityAnalyzer.Aggregators.Models; using Kysect.GithubActivityAnalyzer.ApiAccessor; -using Kysect.GithubActivityAnalyzer.WebDemo.Shared; namespace Kysect.GithubActivityAnalyzer.WebDemo.Server.Controllers { From 59e2af6220856732d682cbc1d258ff40b66c699c Mon Sep 17 00:00:00 2001 From: ALEXXXANDRO Date: Tue, 3 Aug 2021 09:47:53 +0300 Subject: [PATCH 2/7] feat: add dashboard page --- ...thubActivityAnalyzer.WebDemo.Client.csproj | 1 + .../Pages/Dashboards/TeamDashboard.razor | 33 +++++++++++++++ .../Pages/Dashboards/TeamDashboard.razor.cs | 31 ++++++++++++++ .../Client/wwwroot/index.html | 9 +++- .../Client/wwwroot/js/Chart.js | 42 +++++++++++++++++++ .../Server/Controllers/DBTeamController.cs | 5 ++- .../Server/Services/ITeamService.cs | 4 +- .../Server/Services/TeamService.cs | 5 ++- 8 files changed, 122 insertions(+), 8 deletions(-) create mode 100644 Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/Dashboards/TeamDashboard.razor create mode 100644 Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/Dashboards/TeamDashboard.razor.cs create mode 100644 Kysect.GithubActivityAnalyzer.WebDemo/Client/wwwroot/js/Chart.js diff --git a/Kysect.GithubActivityAnalyzer.WebDemo/Client/Kysect.GithubActivityAnalyzer.WebDemo.Client.csproj b/Kysect.GithubActivityAnalyzer.WebDemo/Client/Kysect.GithubActivityAnalyzer.WebDemo.Client.csproj index e461689..d501b05 100644 --- a/Kysect.GithubActivityAnalyzer.WebDemo/Client/Kysect.GithubActivityAnalyzer.WebDemo.Client.csproj +++ b/Kysect.GithubActivityAnalyzer.WebDemo/Client/Kysect.GithubActivityAnalyzer.WebDemo.Client.csproj @@ -5,6 +5,7 @@ + diff --git a/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/Dashboards/TeamDashboard.razor b/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/Dashboards/TeamDashboard.razor new file mode 100644 index 0000000..494f915 --- /dev/null +++ b/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/Dashboards/TeamDashboard.razor @@ -0,0 +1,33 @@ +@page "/TeamDashboard" +@inject HttpClient Http +@inject IJSRuntime jsRuntime +

Team Dashboard

+

+ +

+ +

+ +

+@if (_teamName is null && !_statsIsVisible) +{ +

Please write team name

+} +else +{ +

Team name: @_teamName

+} +@if (_statsIsVisible) +{ +
+} + + + + \ No newline at end of file diff --git a/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/Dashboards/TeamDashboard.razor.cs b/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/Dashboards/TeamDashboard.razor.cs new file mode 100644 index 0000000..d4a0ddb --- /dev/null +++ b/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/Dashboards/TeamDashboard.razor.cs @@ -0,0 +1,31 @@ +using System; +using System.Threading.Tasks; +using Kysect.GithubActivityAnalyzer.WebDemo.Shared; +using Kysect.GithubActivityAnalyzer.Aggregators.Models; +using System.Net.Http.Json; +using Microsoft.JSInterop; + +namespace Kysect.GithubActivityAnalyzer.WebDemo.Client.Pages.Dashboards +{ + public partial class TeamDashboard + { + private string _teamName = String.Empty; + private TeamResponse _team; + private bool _statsIsVisible = false; + private async Task GetStat() + { + var teamResponse = await Http.PostAsJsonAsync("DBTeam/GetTeam", new Team(_teamName)); + Team teamInfo = await teamResponse.Content.ReadFromJsonAsync(); + var response = await Http.PostAsJsonAsync("Team", teamInfo); + _team = await response.Content.ReadFromJsonAsync(); + _statsIsVisible = true; + } + private async void GenerateBarChart() + { + await GetStat(); + var teamInfo = _team.Members; + await jsRuntime.InvokeVoidAsync("GenerateBarChart", teamInfo); + } + + } +} diff --git a/Kysect.GithubActivityAnalyzer.WebDemo/Client/wwwroot/index.html b/Kysect.GithubActivityAnalyzer.WebDemo/Client/wwwroot/index.html index 37bcc83..de6da85 100644 --- a/Kysect.GithubActivityAnalyzer.WebDemo/Client/wwwroot/index.html +++ b/Kysect.GithubActivityAnalyzer.WebDemo/Client/wwwroot/index.html @@ -1,4 +1,4 @@ - + @@ -20,6 +20,13 @@ 🗙 + + + + + + + diff --git a/Kysect.GithubActivityAnalyzer.WebDemo/Client/wwwroot/js/Chart.js b/Kysect.GithubActivityAnalyzer.WebDemo/Client/wwwroot/js/Chart.js new file mode 100644 index 0000000..23cfa27 --- /dev/null +++ b/Kysect.GithubActivityAnalyzer.WebDemo/Client/wwwroot/js/Chart.js @@ -0,0 +1,42 @@ +function GenerateBarChart(teamInfo) { + AmCharts.makeChart("chartdiv", { + "type": "serial", + "theme": "none", + "categoryField": "username", + "rotate": true, + "startDuration": 1, + "categoryAxis": { + "gridPosition": "start", + "position": "left" + }, + "trendLines": [], + "graphs": [ + { + "balloonText": "totalContributions:[[value]]", + "fillAlphas": 0.8, + "id": "AmGraph-1", + "lineAlpha": 0.2, + "title": "totalContributions", + "type": "column", + "valueField": "totalContributions" + }, + ], + "guides": [], + "valueAxes": [ + { + "id": "ValueAxis-1", + "position": "top", + "axisAlpha": 0 + } + ], + "allLabels": [], + "balloon": {}, + "titles": [], + "dataProvider": teamInfo, + "export": { + "enabled": true + }, + "hideCredits": true + + }); +} diff --git a/Kysect.GithubActivityAnalyzer.WebDemo/Server/Controllers/DBTeamController.cs b/Kysect.GithubActivityAnalyzer.WebDemo/Server/Controllers/DBTeamController.cs index 637d300..022ae84 100644 --- a/Kysect.GithubActivityAnalyzer.WebDemo/Server/Controllers/DBTeamController.cs +++ b/Kysect.GithubActivityAnalyzer.WebDemo/Server/Controllers/DBTeamController.cs @@ -42,9 +42,10 @@ public void GetAllTeams() { } - [HttpGet("GetTeam")] - public void GetTeam() + [HttpPost("GetTeam")] + public Team GetTeam(Team team) { + return _teamService.GetTeam(team); } } } diff --git a/Kysect.GithubActivityAnalyzer.WebDemo/Server/Services/ITeamService.cs b/Kysect.GithubActivityAnalyzer.WebDemo/Server/Services/ITeamService.cs index 0db47f8..e8e2e69 100644 --- a/Kysect.GithubActivityAnalyzer.WebDemo/Server/Services/ITeamService.cs +++ b/Kysect.GithubActivityAnalyzer.WebDemo/Server/Services/ITeamService.cs @@ -13,8 +13,6 @@ public interface ITeamService //TODO: разобраться с возвращаемым значением public void GetAllTeams(); - - //TODO: разобраться с возвращаемым значением - public IQueryable GetTeam(string teamName); + public Team GetTeam(Team teamName); } } diff --git a/Kysect.GithubActivityAnalyzer.WebDemo/Server/Services/TeamService.cs b/Kysect.GithubActivityAnalyzer.WebDemo/Server/Services/TeamService.cs index ed234ca..3acbd6d 100644 --- a/Kysect.GithubActivityAnalyzer.WebDemo/Server/Services/TeamService.cs +++ b/Kysect.GithubActivityAnalyzer.WebDemo/Server/Services/TeamService.cs @@ -37,9 +37,10 @@ void ITeamService.GetAllTeams() { throw new System.NotImplementedException(); } - IQueryable ITeamService.GetTeam(string teamName) + Team ITeamService.GetTeam(Team team) { - throw new System.NotImplementedException(); + team.Usernames = _teamRepository.GetAllByTeam(team.TeamName).Select(p => p.Username).ToList(); + return team; } } } From 7dbc157d33fdf6fbff28db5b9ba36b2925525507 Mon Sep 17 00:00:00 2001 From: ALEXXXANDRO Date: Wed, 4 Aug 2021 09:12:46 +0300 Subject: [PATCH 3/7] feat: try to handle unknown teamNames --- .../Pages/Dashboards/TeamDashboard.razor | 15 +++++++---- .../Pages/Dashboards/TeamDashboard.razor.cs | 26 ++++++++++++------- 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/Dashboards/TeamDashboard.razor b/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/Dashboards/TeamDashboard.razor index 494f915..4dba122 100644 --- a/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/Dashboards/TeamDashboard.razor +++ b/Kysect.GithubActivityAnalyzer.WebDemo/Client/Pages/Dashboards/TeamDashboard.razor @@ -6,10 +6,7 @@

-

- -

-@if (_teamName is null && !_statsIsVisible) +@if (_teamName is null) {

Please write team name

} @@ -17,11 +14,19 @@ else {

Team name: @_teamName

} + +

+ +

+ @if (_statsIsVisible) {
} - +else +{ +

No such team

+}