store course settings in their own file

This commit is contained in:
2023-09-22 13:05:49 -06:00
parent fa792f1f23
commit edc71b2546
2 changed files with 18 additions and 1 deletions

View File

@@ -1,3 +1,5 @@
using YamlDotNet.Serialization;
namespace LocalModels; namespace LocalModels;
public record LocalCourse public record LocalCourse
@@ -18,6 +20,13 @@ public record LocalCourseSettings
public SimpleTimeOnly DefaultDueTime { get; init; } = new SimpleTimeOnly(); public SimpleTimeOnly DefaultDueTime { get; init; } = new SimpleTimeOnly();
public IEnumerable<AssignmentTemplate> AssignmentTemplates { get; init; } = public IEnumerable<AssignmentTemplate> AssignmentTemplates { get; init; } =
Enumerable.Empty<AssignmentTemplate>(); Enumerable.Empty<AssignmentTemplate>();
public string ToYaml()
{
var serializer = new SerializerBuilder().DisableAliases().Build();
var yaml = serializer.Serialize(this);
return yaml;
}
} }
public record SimpleTimeOnly public record SimpleTimeOnly

View File

@@ -38,6 +38,7 @@ public class YamlManager
{ {
var courseDirectory = $"../storage/{course.Settings.Name}"; var courseDirectory = $"../storage/{course.Settings.Name}";
await SaveSettings(course, courseDirectory);
foreach (var module in course.Modules) foreach (var module in course.Modules)
{ {
var moduleDirectory = courseDirectory + "/" + module.Name; var moduleDirectory = courseDirectory + "/" + module.Name;
@@ -50,6 +51,13 @@ public class YamlManager
} }
private static async Task SaveSettings(LocalCourse course, string courseDirectory)
{
var settingsFilePath = courseDirectory + "/settings.yml"; ;
var settingsYaml = course.Settings.ToYaml();
await File.WriteAllTextAsync(settingsFilePath, settingsYaml);
}
public async Task SaveQuizzes(LocalCourse course, LocalModule module) public async Task SaveQuizzes(LocalCourse course, LocalModule module)
{ {
var quizzesDirectory = $"../storage/{course.Settings.Name}/{module.Name}/quizzes"; var quizzesDirectory = $"../storage/{course.Settings.Name}/{module.Name}/quizzes";