infer course name from folder name

This commit is contained in:
2023-12-04 16:26:08 -07:00
parent 6423f5db87
commit b0cf5d8189
8 changed files with 61 additions and 34 deletions

View File

@@ -1,5 +1,3 @@
using YamlDotNet.Serialization;
namespace LocalModels;
public record LocalCourse
@@ -8,35 +6,6 @@ public record LocalCourse
public LocalCourseSettings Settings { get; set; }
}
public record LocalCourseSettings
{
public IEnumerable<LocalAssignmentGroup> AssignmentGroups { get; init; } =
Enumerable.Empty<LocalAssignmentGroup>();
public string Name { get; init; } = string.Empty;
public IEnumerable<DayOfWeek> DaysOfWeek { get; init; } = Enumerable.Empty<DayOfWeek>();
public ulong? CanvasId { get; init; }
public DateTime StartDate { get; init; }
public DateTime EndDate { get; init; }
public SimpleTimeOnly DefaultDueTime { get; init; } = new SimpleTimeOnly();
public string ToYaml()
{
var serializer = new SerializerBuilder().DisableAliases().Build();
var yaml = serializer.Serialize(this);
return yaml;
}
public static LocalCourseSettings ParseYaml(string rawText)
{
var deserializer = new DeserializerBuilder()
.IgnoreUnmatchedProperties()
.Build();
var settings = deserializer.Deserialize<LocalCourseSettings>(rawText);
return settings;
}
}
public record SimpleTimeOnly
{
public int Hour { get; init; } = 1;

View File

@@ -0,0 +1,34 @@
using YamlDotNet.Serialization;
namespace LocalModels;
public record LocalCourseSettings
{
public IEnumerable<LocalAssignmentGroup> AssignmentGroups { get; init; } =
Enumerable.Empty<LocalAssignmentGroup>();
[YamlIgnore]
public string Name { get; init; } = string.Empty;
public IEnumerable<DayOfWeek> DaysOfWeek { get; init; } = Enumerable.Empty<DayOfWeek>();
public ulong? CanvasId { get; init; }
public DateTime StartDate { get; init; }
public DateTime EndDate { get; init; }
public SimpleTimeOnly DefaultDueTime { get; init; } = new SimpleTimeOnly();
public string ToYaml()
{
var serializer = new SerializerBuilder().DisableAliases().Build();
var yaml = serializer.Serialize(this);
return yaml;
}
public static LocalCourseSettings ParseYaml(string rawText)
{
var deserializer = new DeserializerBuilder()
.IgnoreUnmatchedProperties()
.Build();
var settings = deserializer.Deserialize<LocalCourseSettings>(rawText);
return settings;
}
}

View File

@@ -2,7 +2,6 @@ using Management.Services;
public class FileConfiguration
{
public static string GetBasePath()
{
string? storageDirectory = Environment.GetEnvironmentVariable("storageDirectory");

View File

@@ -52,7 +52,9 @@ public class CourseMarkdownLoader
var settingsString = await File.ReadAllTextAsync(settingsPath);
var settings = LocalCourseSettings.ParseYaml(settingsString);
return settings;
var folderName = Path.GetFileName(courseDirectory);
return settings with { Name = folderName };
}
private async Task<IEnumerable<LocalModule>> loadCourseModules(string courseDirectory)