diff --git a/.editorconfig b/.editorconfig index 9f2cbb7..7edc7c4 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,7 +10,7 @@ dotnet_naming_symbols.private_methods.applicable_kinds = method dotnet_naming_symbols.private_methods.applicable_accessibilities = private dotnet_naming_style.camel_case_style.capitalization = camel_case - +dotnet_diagnostic.CA2254.severity = none [*.razor] indent_style = ignore diff --git a/Management.Web/Program.cs b/Management.Web/Program.cs index 67a3107..5b45bcf 100644 --- a/Management.Web/Program.cs +++ b/Management.Web/Program.cs @@ -2,6 +2,7 @@ global using System.Text.Json.Serialization; global using System.Text.Json; global using System.ComponentModel.DataAnnotations; global using Management.Services.Canvas; +global using Management.Services; global using CanvasModel.EnrollmentTerms; global using CanvasModel.Courses; global using CanvasModel; @@ -32,6 +33,9 @@ if (canvas_url == null) builder.Services.AddRazorPages(); builder.Services.AddServerSideBlazor(); +builder.Services.AddLogging(); +builder.Services.AddScoped(typeof(MyLogger<>)); + builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); diff --git a/Management/Features/Configuration/Synchronization/ModuleSyncronizationExtensions.cs b/Management/Features/Configuration/Synchronization/ModuleSyncronizationExtensions.cs index 0490287..f4f2cee 100644 --- a/Management/Features/Configuration/Synchronization/ModuleSyncronizationExtensions.cs +++ b/Management/Features/Configuration/Synchronization/ModuleSyncronizationExtensions.cs @@ -143,7 +143,7 @@ public static partial class ModuleSyncronizationExtensions { var canvasAssignmentId = localQuiz.CanvasId - ?? throw new Exception("cannot create module item if assignment does not have canvas id"); + ?? throw new Exception("cannot create module item if quiz does not have canvas id"); await canvas.CreateModuleItem( canvasId, moduleCanvasId, diff --git a/Management/GlobalUsings.cs b/Management/GlobalUsings.cs index 136b6fe..403aaaf 100644 --- a/Management/GlobalUsings.cs +++ b/Management/GlobalUsings.cs @@ -1,2 +1,3 @@ global using System.Text.Json.Serialization; global using System.Text.Json; +global using Microsoft.Extensions.Logging; \ No newline at end of file diff --git a/Management/Management.csproj b/Management/Management.csproj index 8fc4899..508fbaf 100644 --- a/Management/Management.csproj +++ b/Management/Management.csproj @@ -8,6 +8,7 @@ + diff --git a/Management/Services/Canvas/CanvasAssignmentGroupService.cs b/Management/Services/Canvas/CanvasAssignmentGroupService.cs index 050e450..aa4dd24 100644 --- a/Management/Services/Canvas/CanvasAssignmentGroupService.cs +++ b/Management/Services/Canvas/CanvasAssignmentGroupService.cs @@ -8,11 +8,17 @@ public class CanvasAssignmentGroupService { private readonly IWebRequestor webRequestor; private readonly CanvasServiceUtils utils; + private readonly ILogger log; - public CanvasAssignmentGroupService(IWebRequestor webRequestor, CanvasServiceUtils utils) + public CanvasAssignmentGroupService( + IWebRequestor webRequestor, + CanvasServiceUtils utils, + ILogger logger + ) { this.webRequestor = webRequestor; this.utils = utils; + this.log = logger; } public async Task> GetAll(ulong courseId) { @@ -29,7 +35,7 @@ public class CanvasAssignmentGroupService LocalAssignmentGroup localAssignmentGroup ) { - Console.WriteLine($"creating assignment group: {localAssignmentGroup.Name}"); + log.LogInformation($"creating assignment group: {localAssignmentGroup.Name}"); var url = $"courses/{canvasCourseId}/assignment_groups"; var request = new RestRequest(url); var body = new @@ -53,7 +59,7 @@ public class CanvasAssignmentGroupService LocalAssignmentGroup localAssignmentGroup ) { - Console.WriteLine($"updating assignment group: {localAssignmentGroup.Name}"); + log.LogInformation($"updating assignment group: {localAssignmentGroup.Name}"); if (localAssignmentGroup.CanvasId == null) throw new Exception("cannot update assignment group if canvas id is null"); var url = $"courses/{canvasCourseId}/assignment_groups/{localAssignmentGroup.CanvasId}"; diff --git a/Management/Services/Canvas/CanvasAssignmentService.cs b/Management/Services/Canvas/CanvasAssignmentService.cs index 6a32188..3c44145 100644 --- a/Management/Services/Canvas/CanvasAssignmentService.cs +++ b/Management/Services/Canvas/CanvasAssignmentService.cs @@ -8,11 +8,17 @@ public class CanvasAssignmentService { private readonly IWebRequestor webRequestor; private readonly CanvasServiceUtils utils; + private readonly MyLogger log; - public CanvasAssignmentService(IWebRequestor webRequestor, CanvasServiceUtils utils) + public CanvasAssignmentService( + IWebRequestor webRequestor, + CanvasServiceUtils utils, + MyLogger logger + ) { this.webRequestor = webRequestor; this.utils = utils; + this.log = logger; } public async Task> GetAll(ulong courseId) @@ -36,7 +42,7 @@ public class CanvasAssignmentService ulong? canvasAssignmentGroupId ) { - Console.WriteLine($"creating assignment: {localAssignment.Name}"); + log.Log($"creating assignment: {localAssignment.Name}"); var url = $"courses/{canvasCourseId}/assignments"; var request = new RestRequest(url); var body = new @@ -69,7 +75,7 @@ public class CanvasAssignmentService ulong? canvasAssignmentGroupId ) { - Console.WriteLine($"updating assignment: {localAssignment.Name}"); + log.Log($"updating assignment: {localAssignment.Name}"); var url = $"courses/{courseId}/assignments/{localAssignment.CanvasId}"; var request = new RestRequest(url); var body = new @@ -84,8 +90,7 @@ public class CanvasAssignmentService }; var bodyObj = new { assignment = body }; request.AddBody(bodyObj); - Console.WriteLine(url); - Console.WriteLine(JsonSerializer.Serialize(bodyObj)); + await webRequestor.PutAsync(request); await CreateRubric(courseId, localAssignment); @@ -93,13 +98,13 @@ public class CanvasAssignmentService public async Task Delete(ulong courseId, LocalAssignment assignment) { - Console.WriteLine($"deleting assignment from canvas {assignment.Name}"); + log.Log($"deleting assignment from canvas {assignment.Name}"); var url = $"courses/{courseId}/assignments/{assignment.CanvasId}"; var request = new RestRequest(url); var response = await webRequestor.DeleteAsync(request); if (!response.IsSuccessful) { - Console.WriteLine(url); + log.Log(url); throw new Exception("Failed to delete assignment"); } } diff --git a/Management/Services/Canvas/CanvasService.cs b/Management/Services/Canvas/CanvasService.cs index 6ef4b24..c6f9694 100644 --- a/Management/Services/Canvas/CanvasService.cs +++ b/Management/Services/Canvas/CanvasService.cs @@ -1,3 +1,4 @@ +using Microsoft.Extensions.Logging; using CanvasModel; using CanvasModel.Assignments; using CanvasModel.Courses; @@ -11,6 +12,7 @@ public class CanvasService { private readonly IWebRequestor webRequestor; private readonly CanvasServiceUtils utils; + private readonly ILogger logger; public CanvasAssignmentService Assignments { get; } public CanvasAssignmentGroupService AssignmentGroups { get; } @@ -23,7 +25,8 @@ public class CanvasService CanvasAssignmentService Assignments, CanvasAssignmentGroupService AssignmentGroups, CanvasModuleService Modules, - CanvasQuizService Quizzes + CanvasQuizService Quizzes, + ILogger logger ) { this.webRequestor = webRequestor; @@ -32,6 +35,7 @@ public class CanvasService this.AssignmentGroups = AssignmentGroups; this.Modules = Modules; this.Quizzes = Quizzes; + this.logger = logger; } public async Task> GetTerms() @@ -60,8 +64,8 @@ public class CanvasService if (data == null) { - Console.WriteLine(response.Content); - Console.WriteLine(response.ResponseUri); + logger.LogError(response.Content); + logger.LogError(response.ResponseUri?.ToString()); throw new Exception("error getting course from canvas"); } return data; @@ -91,7 +95,7 @@ public class CanvasService CanvasModuleItem item ) { - Console.WriteLine($"updating module item {item.Title}"); + logger.LogInformation($"updating module item {item.Title}"); var url = $"courses/{canvasCourseId}/modules/{canvasModuleId}/items/{item.Id}"; var body = new { module_item = new { title = item.Title, position = item.Position } }; var request = new RestRequest(url); @@ -110,7 +114,7 @@ public class CanvasService ulong contentId ) { - Console.WriteLine($"creating new module item {title}"); + logger.LogInformation($"creating new module item {title}"); var url = $"courses/{canvasCourseId}/modules/{canvasModuleId}/items"; var body = new { diff --git a/Management/Services/Logger.cs b/Management/Services/Logger.cs new file mode 100644 index 0000000..172ae62 --- /dev/null +++ b/Management/Services/Logger.cs @@ -0,0 +1,26 @@ +using System.Runtime.CompilerServices; + +namespace Management.Services; + + +public class MyLogger +{ + private readonly ILogger baseLogger; + + public MyLogger(ILogger baseLogger) + { + this.baseLogger = baseLogger; + } + + public void Log( + string message, + LogLevel logLevel = LogLevel.Information, + [CallerMemberName] string memberName = "" + ) + { + var finalMessage = $"[{typeof(T)}.{memberName}] {message}"; + + // baseLogger.Log(logLevel, finalMessage); + Console.WriteLine(finalMessage); + } +} \ No newline at end of file