-
Couldn't load subscription status.
- Fork 142
[csharp] [courses_steps_csv] Kickstart base #29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
Draft
Changes from all commits
Commits
Show all changes
18 commits
Select commit
Hold shift + click to select a range
20e7938
[csharp] [courses_steps_csv] Kickstart base
JavierCane 60ae8c8
[csharp] [courses_steps_csv] Test execution works 🎉
JavierCane 22297c6
[csharp] [courses_steps_csv] Test execution with mock works ✨
JavierCane f96cfbe
[csharp] [courses_steps_csv] Implement 01 base
ismanapa d881a3a
[csharp] [courses_steps_csv] Add 02 semantics
ismanapa 127aab0
[csharp] [courses_steps_csv] Provide semantics to video step type
JavierCane a34e08d
[csharp] [courses_steps_csv] Provide semantics to the overall CourseS...
JavierCane 76559e1
[csharp] [courses_steps_csv] [03_split_parsing_phase] Add base code r...
JavierCane b5c5410
[csharp] [courses_steps_csv] [03_split_parsing_phase] Duplicate loop ...
JavierCane 844007c
[csharp] [courses_steps_csv] Fix mini-typo in file name
JavierCane 8508df1
[csharp] [courses_steps_csv] [03_split_parsing_phase] Clean out the f...
JavierCane 326099d
[csharp] [courses_steps_csv] [03_split_parsing_phase] Refactor the se...
JavierCane 78123d8
[csharp] [courses_steps_csv] [03_split_parsing_phase] Encapsulate `St...
JavierCane 8ed79de
[csharp] [courses_steps_csv] [03_split_parsing_phase] Extract method ...
JavierCane 67e5ba0
[csharp] [courses_steps_csv] [04_split_serialization_phase] Add base ...
ismanapa d174ca5
[csharp] [courses_steps_csv] [04_split_serialization_phase] Change se...
ismanapa 83f192f
[csharp] [courses_steps_csv] [04_split_serialization_phase] Extract m...
ismanapa 25f413a
[csharp] [courses_steps_csv] Move FindCourseSteps from ParseCsv to Co...
ismanapa File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
56 changes: 56 additions & 0 deletions
examples/csharp/csharp-courses_steps_csv-01_base/csharp-courses_steps_csv-01_base.sln
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,56 @@ | ||
| | ||
| Microsoft Visual Studio Solution File, Format Version 12.00 | ||
| # Visual Studio Version 16 | ||
| VisualStudioVersion = 16.6.30114.105 | ||
| MinimumVisualStudioVersion = 10.0.40219.1 | ||
| Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{8B7D4918-2C37-4F16-B355-8EF19B1E23F8}" | ||
| EndProject | ||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CoursesStepsCsv", "src\CoursesStepsCsv\CoursesStepsCsv.csproj", "{C6E9F888-08F3-4D4B-9AEB-919F615C988F}" | ||
| EndProject | ||
| Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{C8A13F5C-212F-4163-885A-01C093B26450}" | ||
| EndProject | ||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CoursesStepsCsv.Tests", "test\CoursesStepsCsv.Tests\CoursesStepsCsv.Tests.csproj", "{C6D93799-5C86-410F-A957-1A531A757DAE}" | ||
| EndProject | ||
| Global | ||
| GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
| Debug|Any CPU = Debug|Any CPU | ||
| Debug|x64 = Debug|x64 | ||
| Debug|x86 = Debug|x86 | ||
| Release|Any CPU = Release|Any CPU | ||
| Release|x64 = Release|x64 | ||
| Release|x86 = Release|x86 | ||
| EndGlobalSection | ||
| GlobalSection(SolutionProperties) = preSolution | ||
| HideSolutionNode = FALSE | ||
| EndGlobalSection | ||
| GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Debug|x64.ActiveCfg = Debug|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Debug|x64.Build.0 = Debug|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Debug|x86.ActiveCfg = Debug|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Debug|x86.Build.0 = Debug|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Release|Any CPU.Build.0 = Release|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Release|x64.ActiveCfg = Release|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Release|x64.Build.0 = Release|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Release|x86.ActiveCfg = Release|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Release|x86.Build.0 = Release|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Debug|x64.ActiveCfg = Debug|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Debug|x64.Build.0 = Debug|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Debug|x86.ActiveCfg = Debug|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Debug|x86.Build.0 = Debug|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Release|Any CPU.Build.0 = Release|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Release|x64.ActiveCfg = Release|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Release|x64.Build.0 = Release|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Release|x86.ActiveCfg = Release|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Release|x86.Build.0 = Release|Any CPU | ||
| EndGlobalSection | ||
| GlobalSection(NestedProjects) = preSolution | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F} = {8B7D4918-2C37-4F16-B355-8EF19B1E23F8} | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE} = {C8A13F5C-212F-4163-885A-01C093B26450} | ||
| EndGlobalSection | ||
| EndGlobal |
82 changes: 82 additions & 0 deletions
...s/csharp/csharp-courses_steps_csv-01_base/src/CoursesStepsCsv/CourseStepsGetController.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,82 @@ | ||
| using System; | ||
| using System.Collections.Generic; | ||
| using System.IO; | ||
| using System.Text.Json; | ||
| using Microsoft.VisualBasic.FileIO; | ||
|
|
||
| namespace CodelyTv.CoursesStepsCsv | ||
| { | ||
| public sealed class CourseStepsGetController | ||
| { | ||
| private readonly Platform platform; | ||
|
|
||
| public CourseStepsGetController(Platform platform) | ||
| { | ||
| this.platform = platform; | ||
| } | ||
|
|
||
| public string Get(string courseId) | ||
| { | ||
| var csv = platform.FindCourseSteps(courseId); | ||
|
|
||
| var results = "["; | ||
|
|
||
| var lines = csv.Split(Environment.NewLine, StringSplitOptions.RemoveEmptyEntries); | ||
|
|
||
| for (int i = 0; i < lines.Length; i++) | ||
| { | ||
| var row = lines[i].Split(','); | ||
|
|
||
| var type = row[1]; | ||
| var duration = 0.0; | ||
| var points = 0.0; | ||
|
|
||
| if (type == "video") | ||
| { | ||
| duration = int.Parse(row[3]) * 1.1; | ||
| } | ||
|
|
||
| if (type == "quiz") | ||
| { | ||
| duration = int.Parse(row[2]) * 0.5; // 0.5 = time in minutes per question | ||
| } | ||
|
|
||
| if (type != "video" && type != "quiz") | ||
| { | ||
| continue; | ||
| } | ||
|
|
||
| if (type == "video") | ||
| { | ||
| points = int.Parse(row[3]) * 1.1 * 100; | ||
| } | ||
|
|
||
| if (type == "quiz") | ||
| { | ||
| points = int.Parse(row[2]) * 0.5 * 10; | ||
| } | ||
|
|
||
| var step = new Step | ||
| { | ||
| Id = row[0], | ||
| Type = row[1], | ||
| Duration = duration, | ||
| Points = points | ||
| }; | ||
|
|
||
| results += JsonSerializer.Serialize(step, new JsonSerializerOptions | ||
| { | ||
| PropertyNamingPolicy = JsonNamingPolicy.CamelCase | ||
| }); | ||
|
|
||
| if (i != lines.Length - 1) | ||
| { | ||
| results += ","; | ||
| } | ||
| } | ||
| results += "]"; | ||
|
|
||
| return results; | ||
| } | ||
| } | ||
| } |
7 changes: 7 additions & 0 deletions
examples/csharp/csharp-courses_steps_csv-01_base/src/CoursesStepsCsv/CoursesStepsCsv.csproj
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| <Project Sdk="Microsoft.NET.Sdk"> | ||
|
|
||
| <PropertyGroup> | ||
| <TargetFramework>net5.0</TargetFramework> | ||
| </PropertyGroup> | ||
|
|
||
| </Project> |
9 changes: 9 additions & 0 deletions
examples/csharp/csharp-courses_steps_csv-01_base/src/CoursesStepsCsv/Platform.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| using System; | ||
|
|
||
| namespace CodelyTv.CoursesStepsCsv | ||
| { | ||
| public interface Platform | ||
| { | ||
| string FindCourseSteps(string courseId); | ||
| } | ||
| } |
11 changes: 11 additions & 0 deletions
examples/csharp/csharp-courses_steps_csv-01_base/src/CoursesStepsCsv/Step.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
|
|
||
| namespace CodelyTv.CoursesStepsCsv | ||
| { | ||
| public sealed class Step | ||
| { | ||
| public string Id { get; set; } | ||
| public string Type { get; set; } | ||
| public double Duration { get; set; } | ||
| public double Points { get; set; } | ||
| } | ||
| } |
63 changes: 63 additions & 0 deletions
...rp-courses_steps_csv-01_base/test/CoursesStepsCsv.Tests/CourseStepsGetControllerShould.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,63 @@ | ||
| using System; | ||
| using Xunit; | ||
| using Moq; | ||
|
|
||
| namespace CodelyTv.CoursesStepsCsv.Tests | ||
| { | ||
| public class CourseStepsGetControllerShould | ||
| { | ||
| private readonly Mock<Platform> platform; | ||
| private readonly CourseStepsGetController courseStepsGetController; | ||
| public CourseStepsGetControllerShould() | ||
| { | ||
| platform = new Mock<Platform>(); | ||
| courseStepsGetController = new CourseStepsGetController(platform.Object); | ||
| } | ||
|
|
||
| [Fact] | ||
| public void ReturnEmptyStepList() | ||
| { | ||
| var courseId = "8fe17ce6-1d33-4b6b-a27c-4e0d1f870a19"; | ||
| var emptyCsv = ""; | ||
|
|
||
| GivenPlatformReturnsCourseStepCsv(courseId, emptyCsv); | ||
|
|
||
| var actualCourseSteps = courseStepsGetController.Get(courseId); | ||
|
|
||
| Assert.Equal("[]", actualCourseSteps); | ||
| } | ||
|
|
||
| [Fact] | ||
| public void ReturnExistingCourseSteps() | ||
| { | ||
| var courseId = "8fe17ce6-1d33-4b6b-a27c-4e0d1f870a19"; | ||
| var csv = String.Join( | ||
| Environment.NewLine, | ||
| "1,video,,13", | ||
| "2,quiz,5,"); | ||
| GivenPlatformReturnsCourseStepCsv(courseId, csv); | ||
|
|
||
| var results = courseStepsGetController.Get(courseId); | ||
|
|
||
| var expected = "[{\"id\":\"1\",\"type\":\"video\",\"duration\":14.3,\"points\":1430},{\"id\":\"2\",\"type\":\"quiz\",\"duration\":2.5,\"points\":25}]"; | ||
| Assert.Equal(expected, results); | ||
| } | ||
|
|
||
| [Fact] | ||
| public void IgnoreStepsWithInvalidType() | ||
| { | ||
| var courseId = "8fe17ce6-1d33-4b6b-a27c-4e0d1f870a19"; | ||
| var csv = "1,survey,,13"; | ||
| GivenPlatformReturnsCourseStepCsv(courseId, csv); | ||
|
|
||
| var results = courseStepsGetController.Get(courseId); | ||
|
|
||
| Assert.Equal("[]", results); | ||
| } | ||
|
|
||
| private void GivenPlatformReturnsCourseStepCsv(string courseId, string csv) | ||
| { | ||
| platform.Setup(x => x.FindCourseSteps(courseId)).Returns(csv); | ||
| } | ||
| } | ||
| } |
28 changes: 28 additions & 0 deletions
.../csharp-courses_steps_csv-01_base/test/CoursesStepsCsv.Tests/CoursesStepsCsv.Tests.csproj
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| <Project Sdk="Microsoft.NET.Sdk"> | ||
|
|
||
| <PropertyGroup> | ||
| <TargetFramework>net5.0</TargetFramework> | ||
| <RootNamespace>CodelyTv.CoursesStepsCsv.Tests</RootNamespace> | ||
|
|
||
| <IsPackable>false</IsPackable> | ||
| </PropertyGroup> | ||
|
|
||
| <ItemGroup> | ||
| <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" /> | ||
| <PackageReference Include="xunit" Version="2.4.1" /> | ||
| <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3"> | ||
| <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | ||
| <PrivateAssets>all</PrivateAssets> | ||
| </PackageReference> | ||
| <PackageReference Include="coverlet.collector" Version="1.3.0"> | ||
| <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | ||
| <PrivateAssets>all</PrivateAssets> | ||
| </PackageReference> | ||
| <PackageReference Include="Moq" Version="4.13.1" /> | ||
| </ItemGroup> | ||
|
|
||
| <ItemGroup> | ||
| <ProjectReference Include="..\..\src\CoursesStepsCsv\CoursesStepsCsv.csproj" /> | ||
| </ItemGroup> | ||
|
|
||
| </Project> |
56 changes: 56 additions & 0 deletions
...es/csharp/csharp-courses_steps_csv-02_semantics/csharp-courses_steps_csv-02_semantics.sln
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,56 @@ | ||
| | ||
| Microsoft Visual Studio Solution File, Format Version 12.00 | ||
| # Visual Studio Version 16 | ||
| VisualStudioVersion = 16.6.30114.105 | ||
| MinimumVisualStudioVersion = 10.0.40219.1 | ||
| Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{8B7D4918-2C37-4F16-B355-8EF19B1E23F8}" | ||
| EndProject | ||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CoursesStepsCsv", "src\CoursesStepsCsv\CoursesStepsCsv.csproj", "{C6E9F888-08F3-4D4B-9AEB-919F615C988F}" | ||
| EndProject | ||
| Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{C8A13F5C-212F-4163-885A-01C093B26450}" | ||
| EndProject | ||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CoursesStepsCsv.Tests", "test\CoursesStepsCsv.Tests\CoursesStepsCsv.Tests.csproj", "{C6D93799-5C86-410F-A957-1A531A757DAE}" | ||
| EndProject | ||
| Global | ||
| GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
| Debug|Any CPU = Debug|Any CPU | ||
| Debug|x64 = Debug|x64 | ||
| Debug|x86 = Debug|x86 | ||
| Release|Any CPU = Release|Any CPU | ||
| Release|x64 = Release|x64 | ||
| Release|x86 = Release|x86 | ||
| EndGlobalSection | ||
| GlobalSection(SolutionProperties) = preSolution | ||
| HideSolutionNode = FALSE | ||
| EndGlobalSection | ||
| GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Debug|x64.ActiveCfg = Debug|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Debug|x64.Build.0 = Debug|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Debug|x86.ActiveCfg = Debug|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Debug|x86.Build.0 = Debug|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Release|Any CPU.Build.0 = Release|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Release|x64.ActiveCfg = Release|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Release|x64.Build.0 = Release|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Release|x86.ActiveCfg = Release|Any CPU | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F}.Release|x86.Build.0 = Release|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Debug|x64.ActiveCfg = Debug|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Debug|x64.Build.0 = Debug|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Debug|x86.ActiveCfg = Debug|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Debug|x86.Build.0 = Debug|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Release|Any CPU.Build.0 = Release|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Release|x64.ActiveCfg = Release|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Release|x64.Build.0 = Release|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Release|x86.ActiveCfg = Release|Any CPU | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE}.Release|x86.Build.0 = Release|Any CPU | ||
| EndGlobalSection | ||
| GlobalSection(NestedProjects) = preSolution | ||
| {C6E9F888-08F3-4D4B-9AEB-919F615C988F} = {8B7D4918-2C37-4F16-B355-8EF19B1E23F8} | ||
| {C6D93799-5C86-410F-A957-1A531A757DAE} = {C8A13F5C-212F-4163-885A-01C093B26450} | ||
| EndGlobalSection | ||
| EndGlobal |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.