reformatted models

This commit is contained in:
2023-01-04 17:22:36 -07:00
parent c8175971b7
commit c28230691e
122 changed files with 3812 additions and 4005 deletions

View File

@@ -0,0 +1,10 @@
namespace Management.Test;
public class SemesterPlannerTests
{
[Test]
public void TestCanCreatePlannerFromCanvasSemester()
{
var
}
}

View File

@@ -0,0 +1,4 @@
public class SemesterPlanner
{
}

View File

@@ -1,47 +1,46 @@
namespace Model.Accounts { namespace CanvasModel.Accounts;
public class AccountModel
public class AccountModel { {
[JsonPropertyName("id")] [JsonPropertyName("id")]
public ulong Id { get; set; } public ulong Id { get; set; }
[JsonPropertyName("name")] [JsonPropertyName("name")]
public string Name { get; set; } public string Name { get; set; }
[JsonPropertyName("uuid")] [JsonPropertyName("uuid")]
public string Uuid { get; set; } public string Uuid { get; set; }
[JsonPropertyName("parent_account_id")] [JsonPropertyName("parent_account_id")]
public ulong? ParentAccountId { get; set; } public ulong? ParentAccountId { get; set; }
[JsonPropertyName("root_account_id")] [JsonPropertyName("root_account_id")]
public ulong? RootAccountId { get; set; } public ulong? RootAccountId { get; set; }
[JsonPropertyName("default_user_storage_quota_mb")] [JsonPropertyName("default_user_storage_quota_mb")]
public ulong? DefaultUserStorageQuotaMb { get; set; } public ulong? DefaultUserStorageQuotaMb { get; set; }
[JsonPropertyName("default_group_storage_quota_mb")] [JsonPropertyName("default_group_storage_quota_mb")]
public ulong? DefaultGroupStorageQuotaMb { get; set; } public ulong? DefaultGroupStorageQuotaMb { get; set; }
[JsonPropertyName("default_time_zone")] [JsonPropertyName("default_time_zone")]
public string DefaultTimeZone { get; set; } public string DefaultTimeZone { get; set; }
[JsonPropertyName("sis_account_id")] [JsonPropertyName("sis_account_id")]
public string? SisAccountId { get; set; } public string? SisAccountId { get; set; }
[JsonPropertyName("integrationI-d")] [JsonPropertyName("integrationI-d")]
public string? IntegrationId { get; set; } public string? IntegrationId { get; set; }
[JsonPropertyName("sis_import_id")] [JsonPropertyName("sis_import_id")]
public string? SisImportId { get; set; } public string? SisImportId { get; set; }
[JsonPropertyName("lti_guid")] [JsonPropertyName("lti_guid")]
public string LtiGuid { get; set; } public string LtiGuid { get; set; }
[JsonPropertyName("workflow_state")] [JsonPropertyName("workflow_state")]
public string WorkflowState { get; set; } public string WorkflowState { get; set; }
}
} }

View File

@@ -1,23 +1,22 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace Model.Accounts { namespace CanvasModel.Accounts;
public class HelpLinkModel
{
public class HelpLinkModel { [JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("id")]
public string Id { get; set; } [JsonPropertyName("text")]
public string Text { get; set; }
[JsonPropertyName("text")]
public string Text { get; set; } [JsonPropertyName("subtext")]
public string Subtext { get; set; }
[JsonPropertyName("subtext")]
public string Subtext { get; set; } [JsonPropertyName("url")]
public string Url { get; set; }
[JsonPropertyName("url")]
public string Url { get; set; } [JsonPropertyName("available_to")]
public IEnumerable<string> AvailableTo { get; set; }
[JsonPropertyName("available_to")]
public IEnumerable<string> AvailableTo { get; set; }
}
} }

View File

@@ -1,20 +1,19 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace Model.Accounts { namespace CanvasModel.Accounts;
public class HelpLinksModel
public class HelpLinksModel { {
[JsonPropertyName("help_link_name")] [JsonPropertyName("help_link_name")]
public string HelpLinkName { get; set; } public string HelpLinkName { get; set; }
[JsonPropertyName("help_link_icon")] [JsonPropertyName("help_link_icon")]
public string HelpLinkIcon { get; set; } public string HelpLinkIcon { get; set; }
[JsonPropertyName("custom_help_links")] [JsonPropertyName("custom_help_links")]
public IEnumerable<HelpLinkModel> CustomHelpLinks { get; set; } public IEnumerable<HelpLinkModel> CustomHelpLinks { get; set; }
[JsonPropertyName("default_help_links")] [JsonPropertyName("default_help_links")]
public IEnumerable<HelpLinkModel> DefaultHelpLinks { get; set; } public IEnumerable<HelpLinkModel> DefaultHelpLinks { get; set; }
}
} }

View File

@@ -1,22 +1,21 @@
namespace Model.Accounts { namespace CanvasModel.Accounts;
public class TermsOfServiceModel
{
public class TermsOfServiceModel { [JsonPropertyName("id")]
public ulong Id { get; set; }
[JsonPropertyName("id")]
public ulong Id { get; set; } [JsonPropertyName("terms_type")]
public string TermsType { get; set; }
[JsonPropertyName("terms_type")]
public string TermsType { get; set; } [JsonPropertyName("passive")]
public bool Passive { get; set; }
[JsonPropertyName("passive")]
public bool Passive { get; set; } [JsonPropertyName("account_id")]
public ulong AccountId { get; set; }
[JsonPropertyName("account_id")]
public ulong AccountId { get; set; } [JsonPropertyName("content")]
public string Content { get; set; }
[JsonPropertyName("content")]
public string Content { get; set; }
}
} }

View File

@@ -1,47 +1,46 @@
using System; using System;
namespace Model.Analytics { namespace CanvasModel.Analytics;
public class CourseAssignmentSummaryModel
public class CourseAssignmentSummaryModel { {
[JsonPropertyName("assignment_id")] [JsonPropertyName("assignment_id")]
public ulong AssignmentId { get; set; } public ulong AssignmentId { get; set; }
[JsonPropertyName("title")] [JsonPropertyName("title")]
public string Title { get; set; } public string Title { get; set; }
[JsonPropertyName("due_at")] [JsonPropertyName("due_at")]
public DateTime DueAt { get; set; } public DateTime DueAt { get; set; }
[JsonPropertyName("unlock_at")] [JsonPropertyName("unlock_at")]
public DateTime? UnlockAt { get; set; } public DateTime? UnlockAt { get; set; }
[JsonPropertyName("muted")] [JsonPropertyName("muted")]
public bool Muted { get; set; } public bool Muted { get; set; }
[JsonPropertyName("points_possible")] [JsonPropertyName("points_possible")]
public decimal PointsPossible { get; set; } public decimal PointsPossible { get; set; }
[JsonPropertyName("non_digital_submission")] [JsonPropertyName("non_digital_submission")]
public bool? NonDigitalSubmission { get; set; } public bool? NonDigitalSubmission { get; set; }
[JsonPropertyName("max_score")] [JsonPropertyName("max_score")]
public decimal? MaxScore { get; set; } public decimal? MaxScore { get; set; }
[JsonPropertyName("min_score")] [JsonPropertyName("min_score")]
public decimal? MinScore { get; set; } public decimal? MinScore { get; set; }
[JsonPropertyName("first_quartile")] [JsonPropertyName("first_quartile")]
public decimal? FirstQuartile { get; set; } public decimal? FirstQuartile { get; set; }
[JsonPropertyName("median")] [JsonPropertyName("median")]
public decimal? Median { get; set; } public decimal? Median { get; set; }
[JsonPropertyName("third_quartile")] [JsonPropertyName("third_quartile")]
public decimal? ThirdQuartile { get; set; } public decimal? ThirdQuartile { get; set; }
[JsonPropertyName("tardiness_breakdown")] [JsonPropertyName("tardiness_breakdown")]
public TardinessModel TardinessBreakdown { get; set; } public TardinessModel TardinessBreakdown { get; set; }
}
} }

View File

@@ -1,31 +1,30 @@
namespace Model.Analytics { namespace CanvasModel.Analytics;
public class CourseStudentSummaryModel
public class CourseStudentSummaryModel { {
[JsonPropertyName("id")] [JsonPropertyName("id")]
public ulong Id { get; set; } public ulong Id { get; set; }
[JsonPropertyName("page_views")] [JsonPropertyName("page_views")]
public uint PageViews { get; set; } public uint PageViews { get; set; }
[JsonPropertyName("max_page_views")] [JsonPropertyName("max_page_views")]
public uint? MaxPageViews { get; set; } public uint? MaxPageViews { get; set; }
[JsonPropertyName("page_views_level")] [JsonPropertyName("page_views_level")]
public uint? PageViewsLevel { get; set; } public uint? PageViewsLevel { get; set; }
[JsonPropertyName("participations")] [JsonPropertyName("participations")]
public uint Participations { get; set; } public uint Participations { get; set; }
[JsonPropertyName("max_participations")] [JsonPropertyName("max_participations")]
public uint? MaxParticipations { get; set; } public uint? MaxParticipations { get; set; }
[JsonPropertyName("participations_level")] [JsonPropertyName("participations_level")]
public uint? ParticipationsLevel { get; set; } public uint? ParticipationsLevel { get; set; }
[JsonPropertyName("tardiness_breakdown")] [JsonPropertyName("tardiness_breakdown")]
public TardinessModel TardinessBreakdown { get; set; } public TardinessModel TardinessBreakdown { get; set; }
}
} }

View File

@@ -2,39 +2,40 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
namespace Model.Analytics { namespace CanvasModel.Analytics;
// The format of this model in the documentation is COMPLETELY WRONG. Each property is an array of objects, not an object,
// The format of this model in the documentation is COMPLETELY WRONG. Each property is an array of objects, not an object, // and each of those objects have some extra fields: {id, date, views, participations} in by_date and
// and each of those objects have some extra fields: {id, date, views, participations} in by_date and // {id, category, views} in by_category. In both cases, id seems to be null 100% of the time, so I am omitting that one.
// {id, category, views} in by_category. In both cases, id seems to be null 100% of the time, so I am omitting that one. // The primary keys (date and category) are thankfully discrete, so we can trivially build the dictionary ourselves.
// The primary keys (date and category) are thankfully discrete, so we can trivially build the dictionary ourselves. public class DepartmentParticipationModel
public class DepartmentParticipationModel { {
[JsonPropertyName("by_date")] [JsonPropertyName("by_date")]
public IEnumerable<DepartmentParticipationDateEntryModel> ByDate { get; set; } public IEnumerable<DepartmentParticipationDateEntryModel> ByDate { get; set; }
[JsonPropertyName("by_category")] [JsonPropertyName("by_category")]
public IEnumerable<DepartmentParticipationCategoryEntryModel> ByCategory { get; set; } public IEnumerable<DepartmentParticipationCategoryEntryModel> ByCategory { get; set; }
} }
public class DepartmentParticipationDateEntryModel { public class DepartmentParticipationDateEntryModel
{
[JsonPropertyName("date")]
public DateTime Date { get; set; } [JsonPropertyName("date")]
public DateTime Date { get; set; }
[JsonPropertyName("views")]
public ulong Views { get; set; } [JsonPropertyName("views")]
public ulong Views { get; set; }
[JsonPropertyName("participations")]
public ulong Participations { get; set; } [JsonPropertyName("participations")]
} public ulong Participations { get; set; }
}
public class DepartmentParticipationCategoryEntryModel {
public class DepartmentParticipationCategoryEntryModel
[JsonPropertyName("category")] {
public string Category { get; set; }
[JsonPropertyName("category")]
[JsonPropertyName("views")] public string Category { get; set; }
public ulong Views { get; set; }
} [JsonPropertyName("views")]
public ulong Views { get; set; }
} }

View File

@@ -1,31 +1,30 @@
namespace Model.Analytics { namespace CanvasModel.Analytics;
public class DepartmentStatisticsModel
public class DepartmentStatisticsModel { {
[JsonPropertyName("courses")] [JsonPropertyName("courses")]
public ulong Courses { get; set; } public ulong Courses { get; set; }
[JsonPropertyName("subaccounts")] [JsonPropertyName("subaccounts")]
public ulong Subaccounts { get; set; } public ulong Subaccounts { get; set; }
[JsonPropertyName("teacher")] [JsonPropertyName("teacher")]
public ulong Teachers { get; set; } public ulong Teachers { get; set; }
[JsonPropertyName("students")] [JsonPropertyName("students")]
public ulong Students { get; set; } public ulong Students { get; set; }
[JsonPropertyName("discussion_topics")] [JsonPropertyName("discussion_topics")]
public ulong DiscussionTopics { get; set; } public ulong DiscussionTopics { get; set; }
[JsonPropertyName("media_objects")] [JsonPropertyName("media_objects")]
public ulong MediaObjects { get; set; } public ulong MediaObjects { get; set; }
[JsonPropertyName("attachments")] [JsonPropertyName("attachments")]
public ulong Attachments { get; set; } public ulong Attachments { get; set; }
[JsonPropertyName("assignments")] [JsonPropertyName("assignments")]
public ulong Assignments { get; set; } public ulong Assignments { get; set; }
}
} }

View File

@@ -1,21 +1,21 @@
namespace Model.Analytics { namespace CanvasModel.Analytics;
public class TardinessModel { public class TardinessModel
{
[JsonPropertyName("missing")]
public decimal Missing { get; set; } [JsonPropertyName("missing")]
public decimal Missing { get; set; }
[JsonPropertyName("late")]
public decimal Late { get; set; } [JsonPropertyName("late")]
public decimal Late { get; set; }
[JsonPropertyName("on_time")]
public decimal OnTime { get; set; } [JsonPropertyName("on_time")]
public decimal OnTime { get; set; }
[JsonPropertyName("floating")]
public decimal Floating { get; set; } [JsonPropertyName("floating")]
public decimal Floating { get; set; }
[JsonPropertyName("total")]
public decimal Total { get; set; } [JsonPropertyName("total")]
} public decimal Total { get; set; }
} }

View File

@@ -2,56 +2,56 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
namespace Model.Analytics { namespace CanvasModel.Analytics;
public struct UserAssignmentSubmissionDataModel
public struct UserAssignmentSubmissionDataModel { {
[JsonPropertyName("submitted_at")] [JsonPropertyName("submitted_at")]
public DateTime? SubmittedAt { get; set; } public DateTime? SubmittedAt { get; set; }
[JsonPropertyName("score")] [JsonPropertyName("score")]
public double? Score { get; set; } public double? Score { get; set; }
} }
public class UserAssignmentDataModel { public class UserAssignmentDataModel
{
[JsonPropertyName("assignment_id")]
public ulong AssignmentId { get; set; } [JsonPropertyName("assignment_id")]
public ulong AssignmentId { get; set; }
[JsonPropertyName("title")]
public string Title { get; set; } [JsonPropertyName("title")]
public string Title { get; set; }
[JsonPropertyName("points_possible")]
public double? PointsPossible { get; set; } [JsonPropertyName("points_possible")]
public double? PointsPossible { get; set; }
[JsonPropertyName("due_at")]
public DateTime? DueAt { get; set; } [JsonPropertyName("due_at")]
public DateTime? DueAt { get; set; }
[JsonPropertyName("unlock_at")]
public DateTime? UnlockAt { get; set; } [JsonPropertyName("unlock_at")]
public DateTime? UnlockAt { get; set; }
[JsonPropertyName("muted")]
public bool? Muted { get; set; } [JsonPropertyName("muted")]
public bool? Muted { get; set; }
[JsonPropertyName("min_score")]
public double? MinScore { get; set; } [JsonPropertyName("min_score")]
public double? MinScore { get; set; }
[JsonPropertyName("max_score")]
public double? MaxScore { get; set; } [JsonPropertyName("max_score")]
public double? MaxScore { get; set; }
[JsonPropertyName("median")]
public double? Median { get; set; } [JsonPropertyName("median")]
public double? Median { get; set; }
[JsonPropertyName("first_quartile")]
public double? FirstQuartile { get; set; } [JsonPropertyName("first_quartile")]
public double? FirstQuartile { get; set; }
[JsonPropertyName("third_quartile")]
public double? ThirdQuartile { get; set; } [JsonPropertyName("third_quartile")]
public double? ThirdQuartile { get; set; }
[JsonPropertyName("module_ids")]
public IEnumerable<ulong> ModuleIds { get; set; } [JsonPropertyName("module_ids")]
public IEnumerable<ulong> ModuleIds { get; set; }
[JsonPropertyName("submission")]
public UserAssignmentSubmissionDataModel? Submission { get; set; } [JsonPropertyName("submission")]
} public UserAssignmentSubmissionDataModel? Submission { get; set; }
} }

View File

@@ -2,23 +2,23 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
namespace Model.Analytics { namespace CanvasModel.Analytics;
public struct UserParticipationModel
public struct UserParticipationModel { {
[JsonPropertyName("page_views")]
public Dictionary<DateTime, ulong> PageViews { get; set; }
[JsonPropertyName("participations")]
public IEnumerable<UserParticipationEventModel> Participations { get; set; }
}
public struct UserParticipationEventModel { [JsonPropertyName("page_views")]
public Dictionary<DateTime, ulong> PageViews { get; set; }
[JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; } [JsonPropertyName("participations")]
public IEnumerable<UserParticipationEventModel> Participations { get; set; }
[JsonPropertyName("url")] }
public string Url { get; set; }
} public struct UserParticipationEventModel
{
[JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; }
[JsonPropertyName("url")]
public string Url { get; set; }
} }

View File

@@ -2,85 +2,86 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using Model.Calendar; using CanvasModel.Calendar;
namespace Model.Appointments { namespace CanvasModel.Appointments;
public class AppointmentGroupModel { public class AppointmentGroupModel
{
[JsonPropertyName("id")]
public ulong Id { get; set; } [JsonPropertyName("id")]
public ulong Id { get; set; }
[JsonPropertyName("title")]
public string Title { get; set; } [JsonPropertyName("title")]
public string Title { get; set; }
[JsonPropertyName("start_at")]
public DateTime StartAt { get; set; } [JsonPropertyName("start_at")]
public DateTime StartAt { get; set; }
[JsonPropertyName("end_at")]
public DateTime EndAt { get; set; } [JsonPropertyName("end_at")]
public DateTime EndAt { get; set; }
[JsonPropertyName("description")]
public string Description { get; set; } [JsonPropertyName("description")]
public string Description { get; set; }
[JsonPropertyName("location_name")]
public string LocationName { get; set; } [JsonPropertyName("location_name")]
public string LocationName { get; set; }
[JsonPropertyName("location_address")]
public string LocationAddress { get; set; } [JsonPropertyName("location_address")]
public string LocationAddress { get; set; }
[JsonPropertyName("participant_count")]
public uint? ParticipantCount { get; set; } [JsonPropertyName("participant_count")]
public uint? ParticipantCount { get; set; }
[JsonPropertyName("reserved_times")]
public IEnumerable<AppointmentModel> ReservedTimes { get; set; } [JsonPropertyName("reserved_times")]
public IEnumerable<AppointmentModel> ReservedTimes { get; set; }
[JsonPropertyName("context_codes")]
public IEnumerable<string> ContextCodes { get; set; } [JsonPropertyName("context_codes")]
public IEnumerable<string> ContextCodes { get; set; }
[JsonPropertyName("sub_context_codes")]
public IEnumerable<string> SubContextCodes { get; set; } [JsonPropertyName("sub_context_codes")]
public IEnumerable<string> SubContextCodes { get; set; }
[JsonPropertyName("workflow_state")]
public string WorkflowState { get; set; } [JsonPropertyName("workflow_state")]
public string WorkflowState { get; set; }
[JsonPropertyName("requiring_action")]
public bool? RequiringAction { get; set; } [JsonPropertyName("requiring_action")]
public bool? RequiringAction { get; set; }
[JsonPropertyName("appointments_count")]
public uint AppointmentsCount { get; set; } [JsonPropertyName("appointments_count")]
public uint AppointmentsCount { get; set; }
[JsonPropertyName("appointments")]
public IEnumerable<CalendarEventModel> Appointments { get; set; } [JsonPropertyName("appointments")]
public IEnumerable<CalendarEventModel> Appointments { get; set; }
[JsonPropertyName("new_appointments")]
public IEnumerable<CalendarEventModel>? NewAppointments { get; set; } [JsonPropertyName("new_appointments")]
public IEnumerable<CalendarEventModel>? NewAppointments { get; set; }
[JsonPropertyName("max_appointments_per_participant")]
public uint? MaxAppointmentsPerParticipant { get; set; } [JsonPropertyName("max_appointments_per_participant")]
public uint? MaxAppointmentsPerParticipant { get; set; }
[JsonPropertyName("min_appointments_per_participant")]
public uint? MinAppointmentsPerParticipant { get; set; } [JsonPropertyName("min_appointments_per_participant")]
public uint? MinAppointmentsPerParticipant { get; set; }
[JsonPropertyName("participants_per_appointment")]
public uint? ParticipantsPerAppointment { get; set; } [JsonPropertyName("participants_per_appointment")]
public uint? ParticipantsPerAppointment { get; set; }
[JsonPropertyName("participant_visibility")]
public string ParticipantVisibility { get; set; } [JsonPropertyName("participant_visibility")]
public string ParticipantVisibility { get; set; }
[JsonPropertyName("participant_type")]
public string ParticipantType { get; set; } [JsonPropertyName("participant_type")]
public string ParticipantType { get; set; }
[JsonPropertyName("url")]
public string Url { get; set; } [JsonPropertyName("url")]
public string Url { get; set; }
[JsonPropertyName("html")]
public string HtmlUrl { get; set; } [JsonPropertyName("html")]
public string HtmlUrl { get; set; }
[JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; } [JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; }
[JsonPropertyName("updated_at")]
public DateTime UpdatedAt { get; set; } [JsonPropertyName("updated_at")]
} public DateTime UpdatedAt { get; set; }
} }

View File

@@ -1,17 +1,18 @@
using System; using System;
namespace Model.Appointments { namespace CanvasModel.Appointments;
public class AppointmentModel { public class AppointmentModel
{
[JsonPropertyName("id")]
public ulong Id { get; set; } [JsonPropertyName("id")]
public ulong Id { get; set; }
[JsonPropertyName("start_at")]
public DateTime StartAt { get; set; } [JsonPropertyName("start_at")]
public DateTime StartAt { get; set; }
[JsonPropertyName("end_at")]
public DateTime EndAt { get; set; } [JsonPropertyName("end_at")]
} public DateTime EndAt { get; set; }
} }

View File

@@ -1,28 +1,26 @@
using System; using System;
namespace Model.Assignments namespace CanvasModel.Assignments;
public class AssignmentDateModel
{ {
public class AssignmentDateModel [JsonPropertyName("id")]
{ public ulong? Id { get; set; }
[JsonPropertyName("id")] [JsonPropertyName("base")]
public ulong? Id { get; set; } public bool? Base { get; set; }
[JsonPropertyName("base")] [JsonPropertyName("title")]
public bool? Base { get; set; } public string Title { get; set; }
[JsonPropertyName("title")] [JsonPropertyName("due_at")]
public string Title { get; set; } public DateTime? DueAt { get; set; }
[JsonPropertyName("due_at")] [JsonPropertyName("unlock_at")]
public DateTime? DueAt { get; set; } public DateTime? UnlockAt { get; set; }
[JsonPropertyName("unlock_at")] [JsonPropertyName("lock_at")]
public DateTime? UnlockAt { get; set; } public DateTime? LockAt { get; set; }
[JsonPropertyName("lock_at")]
public DateTime? LockAt { get; set; }
}
} }

View File

@@ -2,212 +2,211 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using Model.Discussions; using CanvasModel.Discussions;
using Model.Submissions; using CanvasModel.Submissions;
namespace Model.Assignments { namespace CanvasModel.Assignments;
public class AssignmentModel
public class AssignmentModel { {
[JsonPropertyName("id")]
public ulong Id { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("description")]
public string Description { get; set; }
[JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; }
[JsonPropertyName("updated_at")]
public DateTime? UpdatedAt { get; set; }
[JsonPropertyName("due_at")]
public DateTime? DueAt { get; set; }
[JsonPropertyName("lock_at")]
public DateTime? LockAt { get; set; }
[JsonPropertyName("unlock_at")]
public DateTime? UnlockAt { get; set; }
[JsonPropertyName("has_overrides")]
public bool HasOverrides { get; set; }
[JsonPropertyName("all_dates")]
public IEnumerable<AssignmentDateModel>? AllDates { get; set; }
[JsonPropertyName("course_id")]
public ulong CourseId { get; set; }
[JsonPropertyName("html_url")]
public string HtmlUrl { get; set; }
[JsonPropertyName("submissions_download_url")]
public string SubmissionsDownloadUrl { get; set; }
[JsonPropertyName("assignment_group_id")]
public ulong AssignmentGroupId { get; set; }
[JsonPropertyName("due_date_required")]
public bool DueDateRequired { get; set; }
[JsonPropertyName("allowed_extensions")]
public IEnumerable<string>? AllowedExtensions { get; set; }
[JsonPropertyName("max_name_length")]
public uint MaxNameLength { get; set; }
[JsonPropertyName("turnitin_enabled")]
public bool? TurnitinEnabled { get; set; }
[JsonPropertyName("vericite_enabled")]
public bool? VeriCiteEnabled { get; set; }
[JsonPropertyName("turnitin_settings")]
public TurnitinSettingsModel? TurnitinSettings { get; set; }
[JsonPropertyName("grade_group_students_individually")]
public bool? GradeGroupStudentsIndividually { get; set; }
[JsonPropertyName("external_tool_tag_attributes")]
public ExternalToolTagAttributesModel? ExternalToolTagAttributes { get; set; }
[JsonPropertyName("peer_reviews")]
public bool PeerReviews { get; set; }
[JsonPropertyName("automatic_peer_reviews")]
public bool AutomaticPeerReviews { get; set; }
[JsonPropertyName("peer_review_count")]
public uint? PeerReviewCount { get; set; }
[JsonPropertyName("peer_reviews_assign_at")]
public DateTime? PeerReviewsAssignAt { get; set; }
[JsonPropertyName("intra_group_peer_reviews")]
public bool? IntraGroupPeerReviews { get; set; }
[JsonPropertyName("group_category_id")]
public ulong? GroupCategoryId { get; set; }
[JsonPropertyName("needs_grading_count")]
public uint? NeedsGradingCount { get; set; }
[JsonPropertyName("needs_grading_count_be_section")]
public IEnumerable<NeedsGradingCountModel>? NeedsGradingCountBySection { get; set; }
[JsonPropertyName("position")]
public ulong Position { get; set; }
[JsonPropertyName("post_to_sis")]
public bool? PostToSis { get; set; }
[JsonPropertyName("integration_id")]
public string? IntegrationId { get; set; }
[JsonPropertyName("integration_data")]
public object? IntegrationData { get; set; }
[JsonPropertyName("muted")]
public bool? Muted { get; set; }
[JsonPropertyName("points_possible")]
public double? PointsPossible { get; set; }
[JsonPropertyName("submission_types")]
public IEnumerable<string> SubmissionTypes { get; set; }
[JsonPropertyName("has_submitted_submissions")]
public bool? HasSubmittedSubmissions { get; set; }
[JsonPropertyName("grading_type")]
public string GradingType { get; set; }
[JsonPropertyName("grading_standard_id")] [JsonPropertyName("id")]
public ulong? GradingStandardId { get; set; } public ulong Id { get; set; }
[JsonPropertyName("published")] [JsonPropertyName("name")]
public bool Published { get; set; } public string Name { get; set; }
[JsonPropertyName("unpublishable")] [JsonPropertyName("description")]
public bool Unpublishable { get; set; } public string Description { get; set; }
[JsonPropertyName("only_visible_to_overrides")] [JsonPropertyName("created_at")]
public bool OnlyVisibleToOverrides { get; set; } public DateTime CreatedAt { get; set; }
[JsonPropertyName("locked_for_user")] [JsonPropertyName("updated_at")]
public bool LockedForUser { get; set; } public DateTime? UpdatedAt { get; set; }
[JsonPropertyName("lock_info")] [JsonPropertyName("due_at")]
public LockInfoModel? LockInfo { get; set; } public DateTime? DueAt { get; set; }
[JsonPropertyName("lock_explanation")] [JsonPropertyName("lock_at")]
public string? LockExplanation { get; set; } public DateTime? LockAt { get; set; }
[JsonPropertyName("quiz_id")] [JsonPropertyName("unlock_at")]
public ulong? QuizId { get; set; } public DateTime? UnlockAt { get; set; }
[JsonPropertyName("anonymous_submissions")] [JsonPropertyName("has_overrides")]
public bool? AnonymousSubmissions { get; set; } public bool HasOverrides { get; set; }
[JsonPropertyName("discussion_topic")] [JsonPropertyName("all_dates")]
public DiscussionTopicModel? DiscussionTopic { get; set; } public IEnumerable<AssignmentDateModel>? AllDates { get; set; }
[JsonPropertyName("freeze_on_copy")] [JsonPropertyName("course_id")]
public bool? FreezeOnCopy { get; set; } public ulong CourseId { get; set; }
[JsonPropertyName("frozen")] [JsonPropertyName("html_url")]
public bool? Frozen { get; set; } public string HtmlUrl { get; set; }
[JsonPropertyName("frozen_attributes")] [JsonPropertyName("submissions_download_url")]
public IEnumerable<string>? FrozenAttributes { get; set; } public string SubmissionsDownloadUrl { get; set; }
[JsonPropertyName("submission")] [JsonPropertyName("assignment_group_id")]
public SubmissionModel? Submission { get; set; } public ulong AssignmentGroupId { get; set; }
[JsonPropertyName("use_rubric_for_grading")] [JsonPropertyName("due_date_required")]
public bool? UseRubricForGrading { get; set; } public bool DueDateRequired { get; set; }
[JsonPropertyName("rubric_settings")] [JsonPropertyName("allowed_extensions")]
public object? RubricSettings { get; set; } // again, docs give no concrete type. public IEnumerable<string>? AllowedExtensions { get; set; }
[JsonPropertyName("rubric")] [JsonPropertyName("max_name_length")]
public IEnumerable<RubricCriteriaModel>? Rubric { get; set; } public uint MaxNameLength { get; set; }
[JsonPropertyName("assignment_visibility")] [JsonPropertyName("turnitin_enabled")]
public IEnumerable<ulong>? AssignmentVisibility { get; set; } public bool? TurnitinEnabled { get; set; }
[JsonPropertyName("overrides")] [JsonPropertyName("vericite_enabled")]
public IEnumerable<AssignmentOverrideModel>? Overrides { get; set; } public bool? VeriCiteEnabled { get; set; }
[JsonPropertyName("omit_from_final_grade")] [JsonPropertyName("turnitin_settings")]
public bool? OmitFromFinalGrade { get; set; } public TurnitinSettingsModel? TurnitinSettings { get; set; }
[JsonPropertyName("moderated_grading")] [JsonPropertyName("grade_group_students_individually")]
public bool ModeratedGrading { get; set; } public bool? GradeGroupStudentsIndividually { get; set; }
[JsonPropertyName("grader_count")] [JsonPropertyName("external_tool_tag_attributes")]
public uint GraderCount { get; set; } public ExternalToolTagAttributesModel? ExternalToolTagAttributes { get; set; }
[JsonPropertyName("final_grader_id")] [JsonPropertyName("peer_reviews")]
public ulong? FinalGraderId { get; set; } public bool PeerReviews { get; set; }
[JsonPropertyName("grader_comments_visible_to_graders")] [JsonPropertyName("automatic_peer_reviews")]
public bool? GraderCommentsVisibleToGraders { get; set; } public bool AutomaticPeerReviews { get; set; }
[JsonPropertyName("graders_anonymous_to_graders")] [JsonPropertyName("peer_review_count")]
public bool? GradersAnonymousToGraders { get; set; } public uint? PeerReviewCount { get; set; }
[JsonPropertyName("grader_names_anonymous_to_final_grader")] [JsonPropertyName("peer_reviews_assign_at")]
public bool? GraderNamesVisibleToFinalGrader { get; set; } public DateTime? PeerReviewsAssignAt { get; set; }
[JsonPropertyName("anonymous_grading")] [JsonPropertyName("intra_group_peer_reviews")]
public bool? AnonymousGrading { get; set; } public bool? IntraGroupPeerReviews { get; set; }
[JsonPropertyName("allowed_attempts")] [JsonPropertyName("group_category_id")]
public int AllowedAttempts { get; set; } public ulong? GroupCategoryId { get; set; }
}
[JsonPropertyName("needs_grading_count")]
public uint? NeedsGradingCount { get; set; }
[JsonPropertyName("needs_grading_count_be_section")]
public IEnumerable<NeedsGradingCountModel>? NeedsGradingCountBySection { get; set; }
[JsonPropertyName("position")]
public ulong Position { get; set; }
[JsonPropertyName("post_to_sis")]
public bool? PostToSis { get; set; }
[JsonPropertyName("integration_id")]
public string? IntegrationId { get; set; }
[JsonPropertyName("integration_data")]
public object? IntegrationData { get; set; }
[JsonPropertyName("muted")]
public bool? Muted { get; set; }
[JsonPropertyName("points_possible")]
public double? PointsPossible { get; set; }
[JsonPropertyName("submission_types")]
public IEnumerable<string> SubmissionTypes { get; set; }
[JsonPropertyName("has_submitted_submissions")]
public bool? HasSubmittedSubmissions { get; set; }
[JsonPropertyName("grading_type")]
public string GradingType { get; set; }
[JsonPropertyName("grading_standard_id")]
public ulong? GradingStandardId { get; set; }
[JsonPropertyName("published")]
public bool Published { get; set; }
[JsonPropertyName("unpublishable")]
public bool Unpublishable { get; set; }
[JsonPropertyName("only_visible_to_overrides")]
public bool OnlyVisibleToOverrides { get; set; }
[JsonPropertyName("locked_for_user")]
public bool LockedForUser { get; set; }
[JsonPropertyName("lock_info")]
public LockInfoModel? LockInfo { get; set; }
[JsonPropertyName("lock_explanation")]
public string? LockExplanation { get; set; }
[JsonPropertyName("quiz_id")]
public ulong? QuizId { get; set; }
[JsonPropertyName("anonymous_submissions")]
public bool? AnonymousSubmissions { get; set; }
[JsonPropertyName("discussion_topic")]
public DiscussionTopicModel? DiscussionTopic { get; set; }
[JsonPropertyName("freeze_on_copy")]
public bool? FreezeOnCopy { get; set; }
[JsonPropertyName("frozen")]
public bool? Frozen { get; set; }
[JsonPropertyName("frozen_attributes")]
public IEnumerable<string>? FrozenAttributes { get; set; }
[JsonPropertyName("submission")]
public SubmissionModel? Submission { get; set; }
[JsonPropertyName("use_rubric_for_grading")]
public bool? UseRubricForGrading { get; set; }
[JsonPropertyName("rubric_settings")]
public object? RubricSettings { get; set; } // again, docs give no concrete type.
[JsonPropertyName("rubric")]
public IEnumerable<RubricCriteriaModel>? Rubric { get; set; }
[JsonPropertyName("assignment_visibility")]
public IEnumerable<ulong>? AssignmentVisibility { get; set; }
[JsonPropertyName("overrides")]
public IEnumerable<AssignmentOverrideModel>? Overrides { get; set; }
[JsonPropertyName("omit_from_final_grade")]
public bool? OmitFromFinalGrade { get; set; }
[JsonPropertyName("moderated_grading")]
public bool ModeratedGrading { get; set; }
[JsonPropertyName("grader_count")]
public uint GraderCount { get; set; }
[JsonPropertyName("final_grader_id")]
public ulong? FinalGraderId { get; set; }
[JsonPropertyName("grader_comments_visible_to_graders")]
public bool? GraderCommentsVisibleToGraders { get; set; }
[JsonPropertyName("graders_anonymous_to_graders")]
public bool? GradersAnonymousToGraders { get; set; }
[JsonPropertyName("grader_names_anonymous_to_final_grader")]
public bool? GraderNamesVisibleToFinalGrader { get; set; }
[JsonPropertyName("anonymous_grading")]
public bool? AnonymousGrading { get; set; }
[JsonPropertyName("allowed_attempts")]
public int AllowedAttempts { get; set; }
} }

View File

@@ -3,41 +3,40 @@ using System.Collections.Generic;
namespace Model.Assignments { namespace CanvasModel.Assignments;
public class AssignmentOverrideModel
public class AssignmentOverrideModel { {
[JsonPropertyName("id")] [JsonPropertyName("id")]
public ulong Id { get; set; } public ulong Id { get; set; }
[JsonPropertyName("assignment_id")] [JsonPropertyName("assignment_id")]
public ulong AssignmentId { get; set; } public ulong AssignmentId { get; set; }
[JsonPropertyName("student_ids")] [JsonPropertyName("student_ids")]
public IEnumerable<ulong>? StudentIds { get; set; } public IEnumerable<ulong>? StudentIds { get; set; }
[JsonPropertyName("group_id")] [JsonPropertyName("group_id")]
public ulong? GroupId { get; set; } public ulong? GroupId { get; set; }
[JsonPropertyName("course_section_ids")] [JsonPropertyName("course_section_ids")]
public ulong CourseSectionId { get; set; } public ulong CourseSectionId { get; set; }
[JsonPropertyName("title")] [JsonPropertyName("title")]
public string Title { get; set; } public string Title { get; set; }
[JsonPropertyName("due_at")] [JsonPropertyName("due_at")]
public DateTime? DueAt { get; set; } public DateTime? DueAt { get; set; }
[JsonPropertyName("all_day")] [JsonPropertyName("all_day")]
public bool? AllDay { get; set; } public bool? AllDay { get; set; }
[JsonPropertyName("all_day_date")] [JsonPropertyName("all_day_date")]
public DateTime? AllDayDate { get; set; } public DateTime? AllDayDate { get; set; }
[JsonPropertyName("unlock_at")] [JsonPropertyName("unlock_at")]
public DateTime? UnlockAt { get; set; } public DateTime? UnlockAt { get; set; }
[JsonPropertyName("lock_at")] [JsonPropertyName("lock_at")]
public DateTime? LockAt { get; set; } public DateTime? LockAt { get; set; }
}
} }

View File

@@ -1,16 +1,15 @@
namespace Model.Assignments { namespace CanvasModel.Assignments;
public class ExternalToolTagAttributesModel
public class ExternalToolTagAttributesModel { {
[JsonPropertyName("url")] [JsonPropertyName("url")]
public string Url { get; set; } public string Url { get; set; }
[JsonPropertyName("new_tab")] [JsonPropertyName("new_tab")]
public bool? NewTab { get; set; } public bool? NewTab { get; set; }
[JsonPropertyName("resource_link_id")] [JsonPropertyName("resource_link_id")]
public string ResourceLinkId { get; set; } public string ResourceLinkId { get; set; }
}
} }

View File

@@ -2,23 +2,22 @@ using System;
namespace Model.Assignments { namespace CanvasModel.Assignments;
public class LockInfoModel
public class LockInfoModel { {
[JsonPropertyName("asset_string")] [JsonPropertyName("asset_string")]
public string AssetString { get; set; } public string AssetString { get; set; }
[JsonPropertyName("unlock_at")] [JsonPropertyName("unlock_at")]
public DateTime? UnlockAt { get; set; } public DateTime? UnlockAt { get; set; }
[JsonPropertyName("lock_at")] [JsonPropertyName("lock_at")]
public DateTime? LockAt { get; set; } public DateTime? LockAt { get; set; }
[JsonPropertyName("context_module")] [JsonPropertyName("context_module")]
public object? ContextModule { get; set; } public object? ContextModule { get; set; }
[JsonPropertyName("manually_locked")] [JsonPropertyName("manually_locked")]
public bool? ManuallyLocked { get; set; } public bool? ManuallyLocked { get; set; }
}
} }

View File

@@ -1,13 +1,12 @@
namespace Model.Assignments { namespace CanvasModel.Assignments;
public class NeedsGradingCountModel
public class NeedsGradingCountModel { {
[JsonPropertyName("section_id")] [JsonPropertyName("section_id")]
public string SectionId { get; set; } public string SectionId { get; set; }
[JsonPropertyName("needs_grading_count")] [JsonPropertyName("needs_grading_count")]
public uint NeedsGradingCount { get; set; } public uint NeedsGradingCount { get; set; }
}
} }

View File

@@ -2,37 +2,35 @@ using System.Collections.Generic;
namespace Model.Assignments namespace CanvasModel.Assignments;
public class RubricCriteriaModel
{ {
public class RubricCriteriaModel [JsonPropertyName("points")]
{ public double? Points { get; set; }
[JsonPropertyName("points")] [JsonPropertyName("id")]
public double? Points { get; set; } public string Id { get; set; }
[JsonPropertyName("id")] [JsonPropertyName("learning_outcome_id")]
public string Id { get; set; } public string? LearningOutcomeId { get; set; }
[JsonPropertyName("learning_outcome_id")] [JsonPropertyName("vendor_guid")]
public string? LearningOutcomeId { get; set; } public string? VendorGuid { get; set; }
[JsonPropertyName("vendor_guid")] [JsonPropertyName("description")]
public string? VendorGuid { get; set; } public string Description { get; set; }
[JsonPropertyName("description")] [JsonPropertyName("long_description")]
public string Description { get; set; } public string LongDescription { get; set; }
[JsonPropertyName("long_description")] [JsonPropertyName("criterion_use_range")]
public string LongDescription { get; set; } public bool? CriterionUseRange { get; set; }
[JsonPropertyName("criterion_use_range")] [JsonPropertyName("ratings")]
public bool? CriterionUseRange { get; set; } public IEnumerable<RubricRatingModel>? Ratings { get; set; }
[JsonPropertyName("ratings")] [JsonPropertyName("ignore_for_scoring")]
public IEnumerable<RubricRatingModel>? Ratings { get; set; } public bool? IgnoreForScoring { get; set; }
[JsonPropertyName("ignore_for_scoring")]
public bool? IgnoreForScoring { get; set; }
}
} }

View File

@@ -1,19 +1,18 @@
namespace Model.Assignments { namespace CanvasModel.Assignments;
public class RubricRatingModel
public class RubricRatingModel { {
[JsonPropertyName("points")] [JsonPropertyName("points")]
public double Points { get; set; } public double Points { get; set; }
[JsonPropertyName("id")] [JsonPropertyName("id")]
public string Id { get; set; } public string Id { get; set; }
[JsonPropertyName("description")] [JsonPropertyName("description")]
public string Description { get; set; } public string Description { get; set; }
[JsonPropertyName("long_description")] [JsonPropertyName("long_description")]
public string LongDescription { get; set; } public string LongDescription { get; set; }
}
} }

View File

@@ -1,31 +1,30 @@
namespace Model.Assignments { namespace CanvasModel.Assignments;
public class TurnitinSettingsModel
public class TurnitinSettingsModel { {
[JsonPropertyName("originality_report_visibility")] [JsonPropertyName("originality_report_visibility")]
public string OriginalityReportVisibility { get; set; } public string OriginalityReportVisibility { get; set; }
[JsonPropertyName("s_paper_check")] [JsonPropertyName("s_paper_check")]
public bool SPaperCheck { get; set; } public bool SPaperCheck { get; set; }
[JsonPropertyName("internet_check")] [JsonPropertyName("internet_check")]
public bool InternetCheck { get; set; } public bool InternetCheck { get; set; }
[JsonPropertyName("journal_check")] [JsonPropertyName("journal_check")]
public bool JournalCheck { get; set; } public bool JournalCheck { get; set; }
[JsonPropertyName("exclude_biblio")] [JsonPropertyName("exclude_biblio")]
public bool ExcludeBiblio { get; set; } public bool ExcludeBiblio { get; set; }
[JsonPropertyName("exclude_quoted")] [JsonPropertyName("exclude_quoted")]
public bool ExcludeQuoted { get; set; } public bool ExcludeQuoted { get; set; }
[JsonPropertyName("exclude_small_matches_type")] [JsonPropertyName("exclude_small_matches_type")]
public bool? ExcludeSmallMatchesType { get; set; } public bool? ExcludeSmallMatchesType { get; set; }
[JsonPropertyName("exclude_small_matches_value")] [JsonPropertyName("exclude_small_matches_value")]
public uint? ExcludeSmallMatchesValue { get; set; } public uint? ExcludeSmallMatchesValue { get; set; }
}
} }

View File

@@ -1,36 +1,36 @@
using System; using System;
namespace Model.Authentications { namespace CanvasModel.Authentications;
// NOTE: the api documentation for this model is incorrect
// NOTE: the api documentation for this model is incorrect public class AuthenticationEventModel
public class AuthenticationEventModel { {
[JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; }
[JsonPropertyName("event_type")]
public string EventType { get; set; }
[JsonPropertyName("links")]
public AuthenticationEventLinksModel Links { get; set; }
}
public struct AuthenticationEventLinksModel { [JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("login")]
public ulong Login { get; set; } [JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; }
[JsonPropertyName("account")]
public ulong Account { get; set; } [JsonPropertyName("event_type")]
public string EventType { get; set; }
[JsonPropertyName("user")]
public ulong User { get; set; } [JsonPropertyName("links")]
public AuthenticationEventLinksModel Links { get; set; }
[JsonPropertyName("page_view")] }
public ulong? PageView { get; set; }
} public struct AuthenticationEventLinksModel
{
[JsonPropertyName("login")]
public ulong Login { get; set; }
[JsonPropertyName("account")]
public ulong Account { get; set; }
[JsonPropertyName("user")]
public ulong User { get; set; }
[JsonPropertyName("page_view")]
public ulong? PageView { get; set; }
} }

View File

@@ -1,11 +1,11 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace Model.Authentications { namespace CanvasModel.Authentications;
public struct AuthenticationEventsResponseModel { public struct AuthenticationEventsResponseModel
{
[JsonPropertyName("events")]
public IEnumerable<AuthenticationEventModel> Events { get; set; } [JsonPropertyName("events")]
public IEnumerable<AuthenticationEventModel> Events { get; set; }
}
} }

View File

@@ -1,54 +1,53 @@
namespace Model.Calendar namespace CanvasModel.Calendar;
public record AssignmentEventModel
{ {
public record AssignmentEventModel
{
// // A synthetic ID for the assignment // // A synthetic ID for the assignment
// "id": "assignment_987", // "id": "assignment_987",
[JsonPropertyName("id")] [JsonPropertyName("id")]
public string Id { get; set; } public string Id { get; set; }
// // The title of the assignment // // The title of the assignment
// "title": "Essay", // "title": "Essay",
[JsonPropertyName("title")] [JsonPropertyName("title")]
public string Title { get; set; } public string Title { get; set; }
// // The due_at timestamp of the assignment // // The due_at timestamp of the assignment
// "start_at": "2012-07-19T23:59:00-06:00", // "start_at": "2012-07-19T23:59:00-06:00",
[JsonPropertyName("start_at")] [JsonPropertyName("start_at")]
public DateTime StartAt { get; set; } public DateTime StartAt { get; set; }
// // The due_at timestamp of the assignment // // The due_at timestamp of the assignment
// "end_at": "2012-07-19T23:59:00-06:00", // "end_at": "2012-07-19T23:59:00-06:00",
[JsonPropertyName("end_at")] [JsonPropertyName("end_at")]
public DateTime EndAt { get; set; } public DateTime EndAt { get; set; }
// // The HTML description of the assignment // // The HTML description of the assignment
// "description": "<b>Write an essay. Whatever you want.</b>", // "description": "<b>Write an essay. Whatever you want.</b>",
[JsonPropertyName("description")] [JsonPropertyName("description")]
public string Description { get; set; } public string Description { get; set; }
// // the context code of the (course) calendar this assignment belongs to // // the context code of the (course) calendar this assignment belongs to
// "context_code": "course_123", // "context_code": "course_123",
// // Current state of the assignment ('published' or 'deleted') // // Current state of the assignment ('published' or 'deleted')
// "workflow_state": "published", // "workflow_state": "published",
// // URL for this assignment (note that updating/deleting should be done via the // // URL for this assignment (note that updating/deleting should be done via the
// // Assignments API) // // Assignments API)
// "url": "https://example.com/api/v1/calendar_events/assignment_987", // "url": "https://example.com/api/v1/calendar_events/assignment_987",
// // URL for a user to view this assignment // // URL for a user to view this assignment
// "html_url": "http://example.com/courses/123/assignments/987", // "html_url": "http://example.com/courses/123/assignments/987",
// // The due date of this assignment // // The due date of this assignment
// "all_day_date": "2012-07-19", // "all_day_date": "2012-07-19",
// // Boolean indicating whether this is an all-day event (e.g. assignment due at // // Boolean indicating whether this is an all-day event (e.g. assignment due at
// // midnight) // // midnight)
// "all_day": true, // "all_day": true,
// // When the assignment was created // // When the assignment was created
// "created_at": "2012-07-12T10:55:20-06:00", // "created_at": "2012-07-12T10:55:20-06:00",
// // When the assignment was last updated // // When the assignment was last updated
// "updated_at": "2012-07-12T10:55:20-06:00", // "updated_at": "2012-07-12T10:55:20-06:00",
// // The full assignment JSON data (See the Assignments API) // // The full assignment JSON data (See the Assignments API)
// "assignment": null, // "assignment": null,
// // The list of AssignmentOverrides that apply to this event (See the Assignments // // The list of AssignmentOverrides that apply to this event (See the Assignments
// // API). This information is useful for determining which students or sections // // API). This information is useful for determining which students or sections
// // this assignment-due event applies to. // // this assignment-due event applies to.
// "assignment_overrides": null, // "assignment_overrides": null,
// // Boolean indicating whether this has important dates. // // Boolean indicating whether this has important dates.
// "important_dates": true // "important_dates": true
}
} }

View File

@@ -2,126 +2,125 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using Model.Assignments; using CanvasModel.Assignments;
using Model.Groups; using CanvasModel.Groups;
using Model.Users; using CanvasModel.Users;
namespace Model.Calendar namespace CanvasModel.Calendar;
/*
* This class combines the fields of normal, reservation, time-slot, and assignment calendar events.
* Concrete structure classes will specialize to these types and inherit from a common base.
*/
public record CalendarEventModel
{ {
/* [JsonPropertyName("id")]
* This class combines the fields of normal, reservation, time-slot, and assignment calendar events. public ulong Id { get; set; }
* Concrete structure classes will specialize to these types and inherit from a common base.
*/
public record CalendarEventModel { [JsonPropertyName("title")]
public string Title { get; set; }
[JsonPropertyName("id")]
public ulong Id { get; set; } [JsonPropertyName("start_at")]
public DateTime StartAt { get; set; }
[JsonPropertyName("title")]
public string Title { get; set; } [JsonPropertyName("end_at")]
public DateTime EndAt { get; set; }
[JsonPropertyName("start_at")]
public DateTime StartAt { get; set; } [JsonPropertyName("type")]
public string Type { get; set; }
[JsonPropertyName("end_at")]
public DateTime EndAt { get; set; } [JsonPropertyName("description")]
public string Description { get; set; }
[JsonPropertyName("type")]
public string Type { get; set; } [JsonPropertyName("location_name")]
public string LocationName { get; set; }
[JsonPropertyName("description")]
public string Description { get; set; } [JsonPropertyName("location_address")]
public string LocationAddress { get; set; }
[JsonPropertyName("location_name")]
public string LocationName { get; set; } [JsonPropertyName("context_code")]
public string ContextCode { get; set; }
[JsonPropertyName("location_address")]
public string LocationAddress { get; set; } [JsonPropertyName("effective_context_code")]
public string? EffectiveContextCode { get; set; }
[JsonPropertyName("context_code")]
public string ContextCode { get; set; } [JsonPropertyName("all_context_codes")]
public string AllContextCodes { get; set; } // comma separated
[JsonPropertyName("effective_context_code")]
public string? EffectiveContextCode { get; set; } [JsonPropertyName("workflow_state")]
public string WorkflowState { get; set; }
[JsonPropertyName("all_context_codes")]
public string AllContextCodes { get; set; } // comma separated [JsonPropertyName("hidden")]
public bool Hidden { get; set; }
[JsonPropertyName("workflow_state")]
public string WorkflowState { get; set; } [JsonPropertyName("parent_event_id")]
public string? ParentEventId { get; set; }
[JsonPropertyName("hidden")]
public bool Hidden { get; set; } [JsonPropertyName("child_events_count")]
public uint? ChildEventsCount { get; set; }
[JsonPropertyName("parent_event_id")]
public string? ParentEventId { get; set; } [JsonPropertyName("child_events")]
public IEnumerable<CalendarEventModel>? ChildEvents { get; set; }
[JsonPropertyName("child_events_count")]
public uint? ChildEventsCount { get; set; } [JsonPropertyName("url")]
public string Url { get; set; }
[JsonPropertyName("child_events")]
public IEnumerable<CalendarEventModel>? ChildEvents { get; set; } [JsonPropertyName("html_url")]
public string HtmlUrl { get; set; }
[JsonPropertyName("url")]
public string Url { get; set; } [JsonPropertyName("all_day_date")]
public DateTime? AllDayDate { get; set; }
[JsonPropertyName("html_url")]
public string HtmlUrl { get; set; } [JsonPropertyName("all_day")]
public bool AllDay { get; set; }
[JsonPropertyName("all_day_date")]
public DateTime? AllDayDate { get; set; } [JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; }
[JsonPropertyName("all_day")]
public bool AllDay { get; set; } [JsonPropertyName("updated_at")]
public DateTime UpdatedAt { get; set; }
[JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; } [JsonPropertyName("appointment_group_id")]
public ulong AppointmentGroupId { get; set; }
[JsonPropertyName("updated_at")]
public DateTime UpdatedAt { get; set; } [JsonPropertyName("appointment_group_url")]
public string AppointmentGroupUrl { get; set; }
[JsonPropertyName("appointment_group_id")]
public ulong AppointmentGroupId { get; set; } [JsonPropertyName("own_reservation")]
public bool? OwnReservation { get; set; }
[JsonPropertyName("appointment_group_url")]
public string AppointmentGroupUrl { get; set; } [JsonPropertyName("reserve_url")]
public string? ReserveUrl { get; set; }
[JsonPropertyName("own_reservation")]
public bool? OwnReservation { get; set; } [JsonPropertyName("reserved")]
public bool? Reserved { get; set; }
[JsonPropertyName("reserve_url")]
public string? ReserveUrl { get; set; } [JsonPropertyName("participant_type")]
public string ParticipantType { get; set; } // User|Group
[JsonPropertyName("reserved")]
public bool? Reserved { get; set; } [JsonPropertyName("participant_limit")]
public uint? ParticipantLimit { get; set; }
[JsonPropertyName("participant_type")]
public string ParticipantType { get; set; } // User|Group [JsonPropertyName("available_slots")]
public uint? AvailableSlots { get; set; }
[JsonPropertyName("participant_limit")]
public uint? ParticipantLimit { get; set; } [JsonPropertyName("user")]
public UserModel? User { get; set; }
[JsonPropertyName("available_slots")]
public uint? AvailableSlots { get; set; } [JsonPropertyName("group")]
public GroupModel? Group { get; set; }
[JsonPropertyName("user")]
public UserModel? User { get; set; } [JsonPropertyName("assignment")]
public AssignmentModel? Assignment { get; set; }
[JsonPropertyName("group")]
public GroupModel? Group { get; set; } [JsonPropertyName("assignment_overrides")]
public IEnumerable<AssignmentOverrideModel>? AssignmentOverrides { get; set; }
[JsonPropertyName("assignment")]
public AssignmentModel? Assignment { get; set; } [JsonPropertyName("can_manage_appointment_group")]
public bool? CanManageAppointmentGroup { get; set; } // undocumented
[JsonPropertyName("assignment_overrides")]
public IEnumerable<AssignmentOverrideModel>? AssignmentOverrides { get; set; } [JsonPropertyName("participants_per_appointment")]
public uint? ParticipantsPerAppointment { get; set; }
[JsonPropertyName("can_manage_appointment_group")]
public bool? CanManageAppointmentGroup { get; set; } // undocumented
[JsonPropertyName("participants_per_appointment")]
public uint? ParticipantsPerAppointment { get; set; }
}
} }

View File

@@ -1,10 +1,9 @@
namespace Model.ContentShares { namespace CanvasModel.ContentShares;
public struct ContentExportIdModel
public struct ContentExportIdModel { {
[JsonPropertyName("id")] [JsonPropertyName("id")]
public ulong Id { get; set; } public ulong Id { get; set; }
}
} }

View File

@@ -2,44 +2,43 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using Model.Courses; using CanvasModel.Courses;
using Model.Users; using CanvasModel.Users;
namespace Model.ContentShares { namespace CanvasModel.ContentShares;
public class ContentShareModel
public class ContentShareModel { {
[JsonPropertyName("id")]
public ulong Id { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("content_type")]
public string ContentType { get; set; }
[JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; }
[JsonPropertyName("updated_at")]
public DateTime? UpdatedAt { get; set; }
[JsonPropertyName("user_id")]
public ulong? UserId { get; set; }
[JsonPropertyName("sender")] [JsonPropertyName("id")]
public ShortUserModel? Sender { get; set; } public ulong Id { get; set; }
[JsonPropertyName("receivers")] [JsonPropertyName("name")]
public IEnumerable<ShortUserModel>? Receivers { get; set; } public string Name { get; set; }
[JsonPropertyName("source_course")] [JsonPropertyName("content_type")]
public ShortCourseModel? SourceCourse { get; set; } public string ContentType { get; set; }
[JsonPropertyName("read_state")] [JsonPropertyName("created_at")]
public string ReadState { get; set; } public DateTime CreatedAt { get; set; }
[JsonPropertyName("content_export")] [JsonPropertyName("updated_at")]
public ContentExportIdModel? ContentExport { get; set; } public DateTime? UpdatedAt { get; set; }
}
[JsonPropertyName("user_id")]
public ulong? UserId { get; set; }
[JsonPropertyName("sender")]
public ShortUserModel? Sender { get; set; }
[JsonPropertyName("receivers")]
public IEnumerable<ShortUserModel>? Receivers { get; set; }
[JsonPropertyName("source_course")]
public ShortCourseModel? SourceCourse { get; set; }
[JsonPropertyName("read_state")]
public string ReadState { get; set; }
[JsonPropertyName("content_export")]
public ContentExportIdModel? ContentExport { get; set; }
} }

View File

@@ -2,35 +2,34 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using Model.Discussions; using CanvasModel.Discussions;
using Model.Submissions; using CanvasModel.Submissions;
namespace Model.Conversations { namespace CanvasModel.Conversations;
public class ConversationMessageModel
public class ConversationMessageModel { {
[JsonPropertyName("id")] [JsonPropertyName("id")]
public ulong Id { get; set; } public ulong Id { get; set; }
[JsonPropertyName("created_at")] [JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; } public DateTime CreatedAt { get; set; }
[JsonPropertyName("body")] [JsonPropertyName("body")]
public string Body { get; set; } public string Body { get; set; }
[JsonPropertyName("author_id")] [JsonPropertyName("author_id")]
public ulong AuthorId { get; set; } public ulong AuthorId { get; set; }
[JsonPropertyName("generated")] [JsonPropertyName("generated")]
public bool Generated { get; set; } public bool Generated { get; set; }
[JsonPropertyName("media_comment")] [JsonPropertyName("media_comment")]
public MediaCommentModel? MediaComment { get; set; } public MediaCommentModel? MediaComment { get; set; }
[JsonPropertyName("forwarded_messages")] [JsonPropertyName("forwarded_messages")]
public IEnumerable<ConversationMessageModel> ForwardedMessages { get; set; } public IEnumerable<ConversationMessageModel> ForwardedMessages { get; set; }
[JsonPropertyName("attachments")] [JsonPropertyName("attachments")]
public IEnumerable<FileAttachmentModel> Attachments { get; set; } public IEnumerable<FileAttachmentModel> Attachments { get; set; }
}
} }

View File

@@ -3,56 +3,55 @@ using System.Collections.Generic;
namespace Model.Conversations { namespace CanvasModel.Conversations;
public class ConversationModel
public class ConversationModel { {
[JsonPropertyName("id")] [JsonPropertyName("id")]
public ulong Id { get; set; } public ulong Id { get; set; }
[JsonPropertyName("subject")] [JsonPropertyName("subject")]
public string Subject { get; set; } public string Subject { get; set; }
[JsonPropertyName("workflow_state")] [JsonPropertyName("workflow_state")]
public string WorkflowState { get; set; } public string WorkflowState { get; set; }
[JsonPropertyName("last_message")] [JsonPropertyName("last_message")]
public string LastMessage { get; set; } public string LastMessage { get; set; }
[JsonPropertyName("last_message_at")] [JsonPropertyName("last_message_at")]
public DateTime? LastMessageAt { get; set; } public DateTime? LastMessageAt { get; set; }
[JsonPropertyName("message_count")] [JsonPropertyName("message_count")]
public uint MessageCount { get; set; } public uint MessageCount { get; set; }
[JsonPropertyName("subscribed")] [JsonPropertyName("subscribed")]
public bool? Subscribed { get; set; } public bool? Subscribed { get; set; }
[JsonPropertyName("private")] [JsonPropertyName("private")]
public bool? Private { get; set; } public bool? Private { get; set; }
[JsonPropertyName("starred")] [JsonPropertyName("starred")]
public bool? Starred { get; set; } public bool? Starred { get; set; }
[JsonPropertyName("properties")] [JsonPropertyName("properties")]
public IEnumerable<string>? Properties { get; set; } public IEnumerable<string>? Properties { get; set; }
[JsonPropertyName("audience")] [JsonPropertyName("audience")]
public IEnumerable<ulong>? Audience { get; set; } public IEnumerable<ulong>? Audience { get; set; }
[JsonPropertyName("audience_contexts")] [JsonPropertyName("audience_contexts")]
public Dictionary<string, Dictionary<string, IEnumerable<string>>>? AudienceContexts { get; set; } public Dictionary<string, Dictionary<string, IEnumerable<string>>>? AudienceContexts { get; set; }
[JsonPropertyName("avatar_url")] [JsonPropertyName("avatar_url")]
public string AvatarUrl { get; set; } public string AvatarUrl { get; set; }
[JsonPropertyName("participants")] [JsonPropertyName("participants")]
public IEnumerable<ConversationParticipantModel>? Participants { get; set; } public IEnumerable<ConversationParticipantModel>? Participants { get; set; }
[JsonPropertyName("visible")] [JsonPropertyName("visible")]
public bool? Visible { get; set; } public bool? Visible { get; set; }
[JsonPropertyName("context_name")] [JsonPropertyName("context_name")]
public string ContextName { get; set; } public string ContextName { get; set; }
}
} }

View File

@@ -1,20 +1,19 @@
namespace Model.Conversations { namespace CanvasModel.Conversations;
public class ConversationParticipantModel
public class ConversationParticipantModel { {
[JsonPropertyName("id")] [JsonPropertyName("id")]
public ulong Id { get; set; } public ulong Id { get; set; }
[JsonPropertyName("name")] [JsonPropertyName("name")]
public string Name { get; set; } public string Name { get; set; }
[JsonPropertyName("full_name")] [JsonPropertyName("full_name")]
public string FullName { get; set; } public string FullName { get; set; }
[JsonPropertyName("avatar_url")] [JsonPropertyName("avatar_url")]
public string? AvatarUrl { get; set; } public string? AvatarUrl { get; set; }
}
} }

View File

@@ -1,12 +1,11 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace Model.Conversations { namespace CanvasModel.Conversations;
public class DetailedConversationModel : ConversationModel
public class DetailedConversationModel : ConversationModel { {
[JsonPropertyName("messages")] [JsonPropertyName("messages")]
public IEnumerable<ConversationMessageModel> Messages { get; set; } public IEnumerable<ConversationMessageModel> Messages { get; set; }
}
} }

View File

@@ -1,9 +1,8 @@
namespace Model.Courses { namespace CanvasModel.Courses;
public struct CalendarLinkModel
public struct CalendarLinkModel { {
[JsonPropertyName("ics")] [JsonPropertyName("ics")]
public string Ics { get; set; } public string Ics { get; set; }
}
} }

View File

@@ -2,151 +2,150 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using Model.Enrollments; using CanvasModel.Enrollments;
namespace Model.Courses { namespace CanvasModel.Courses;
public class CourseModel
public class CourseModel { {
[JsonPropertyName("id")]
public ulong Id { get; set; }
[JsonPropertyName("sis_course_id")]
public string SisCourseId { get; set; }
[JsonPropertyName("uuid")]
public string Uuid { get; set; }
[JsonPropertyName("integration_id")]
public string IntegrationId { get; set; }
[JsonPropertyName("sis_import_id")]
public ulong? SisImportId { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("course_code")]
public string CourseCode { get; set; }
[JsonPropertyName("workflow_state")]
public string WorkflowState { get; set; }
[JsonPropertyName("account_id")]
public ulong AccountId { get; set; }
[JsonPropertyName("root_account_id")]
public ulong RootAccountId { get; set; }
[JsonPropertyName("enrollment_term_id")]
public ulong EnrollmentTermId { get; set; }
[JsonPropertyName("grading_standard_id")]
public ulong? GradingStandardId { get; set; }
[JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; }
[JsonPropertyName("start_at")]
public DateTime? StartAt { get; set; }
[JsonPropertyName("end_at")]
public DateTime? EndAt { get; set; }
[JsonPropertyName("locale")]
public string Locale { get; set; }
[JsonPropertyName("enrollments")]
public IEnumerable<EnrollmentModel>? Enrollments { get; set; }
[JsonPropertyName("total_students")]
public ulong? TotalStudents { get; set; }
[JsonPropertyName("calendar")]
public CalendarLinkModel Calendar { get; set; }
[JsonPropertyName("default_view")]
public string DefaultView { get; set; }
[JsonPropertyName("syllabus_body")]
public string SyllabusBody { get; set; }
[JsonPropertyName("needs_grading_count")]
public uint? NeedsGradingCount { get; set; }
[JsonPropertyName("term")]
public TermModel? Term { get; set; }
[JsonPropertyName("course_progress")]
public CourseProgressModel? CourseProgress { get; set; }
[JsonPropertyName("apply_assignment_group_weights")]
public bool? ApplyAssignmentGroupWeights { get; set; }
[JsonPropertyName("permissions")]
public Dictionary<string, bool> Permissions { get; set; }
[JsonPropertyName("is_public")]
public bool? IsPublic { get; set; }
[JsonPropertyName("is_public_to_auth_users")]
public bool? IsPublicToAuthUsers { get; set; }
[JsonPropertyName("public_syllabus")]
public bool? PublicSyllabus { get; set; }
[JsonPropertyName("public_syllabus_to_auth")]
public bool? PublicSyllabusToAuth { get; set; }
[JsonPropertyName("public_description")]
public string? PublicDescription { get; set; }
[JsonPropertyName("storage_quota_mb")]
public ulong StorageQuotaMb { get; set; }
[JsonPropertyName("storage_quota_used_mb")]
public ulong StorageQuotaUsedMb { get; set; }
[JsonPropertyName("hide_final_grades")]
public bool? HideFinalGrades { get; set; }
[JsonPropertyName("license")]
public string License { get; set; }
[JsonPropertyName("allow_student_assignment_edits")]
public bool? AllowStudentAssignmentEdits { get; set; }
[JsonPropertyName("allow_wiki_comments")]
public bool? AllowWikiComments { get; set; }
[JsonPropertyName("allow_student_forum_attachments")]
public bool? AllowStudentForumAttachments { get; set; }
[JsonPropertyName("open_enrollment")]
public bool? OpenEnrollment { get; set; }
[JsonPropertyName("self_enrollment")]
public bool? SelfEnrollment { get; set; }
[JsonPropertyName("restrict_enrollments_to_courses")]
public bool? RestrictEnrollmentsToCourseDates { get; set; }
[JsonPropertyName("course_format")]
public string CourseFormat { get; set; }
[JsonPropertyName("access_restricted_by_date")]
public bool? AccessRestrictedByDate { get; set; }
[JsonPropertyName("time_zone")]
public string TimeZone { get; set; }
[JsonPropertyName("blueprint")]
public bool? Blueprint { get; set; }
[JsonPropertyName("blueprint_restrictions")]
public Dictionary<string, bool>? BlueprintRestrictions { get; set; }
[JsonPropertyName("blueprint_restrictions_by_object_type")] [JsonPropertyName("id")]
public Dictionary<string, Dictionary<string, bool>>? BlueprintRestrictionsByObjectType { get; set; } public ulong Id { get; set; }
}
[JsonPropertyName("sis_course_id")]
public string SisCourseId { get; set; }
[JsonPropertyName("uuid")]
public string Uuid { get; set; }
[JsonPropertyName("integration_id")]
public string IntegrationId { get; set; }
[JsonPropertyName("sis_import_id")]
public ulong? SisImportId { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("course_code")]
public string CourseCode { get; set; }
[JsonPropertyName("workflow_state")]
public string WorkflowState { get; set; }
[JsonPropertyName("account_id")]
public ulong AccountId { get; set; }
[JsonPropertyName("root_account_id")]
public ulong RootAccountId { get; set; }
[JsonPropertyName("enrollment_term_id")]
public ulong EnrollmentTermId { get; set; }
[JsonPropertyName("grading_standard_id")]
public ulong? GradingStandardId { get; set; }
[JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; }
[JsonPropertyName("start_at")]
public DateTime? StartAt { get; set; }
[JsonPropertyName("end_at")]
public DateTime? EndAt { get; set; }
[JsonPropertyName("locale")]
public string Locale { get; set; }
[JsonPropertyName("enrollments")]
public IEnumerable<EnrollmentModel>? Enrollments { get; set; }
[JsonPropertyName("total_students")]
public ulong? TotalStudents { get; set; }
[JsonPropertyName("calendar")]
public CalendarLinkModel Calendar { get; set; }
[JsonPropertyName("default_view")]
public string DefaultView { get; set; }
[JsonPropertyName("syllabus_body")]
public string SyllabusBody { get; set; }
[JsonPropertyName("needs_grading_count")]
public uint? NeedsGradingCount { get; set; }
[JsonPropertyName("term")]
public TermModel? Term { get; set; }
[JsonPropertyName("course_progress")]
public CourseProgressModel? CourseProgress { get; set; }
[JsonPropertyName("apply_assignment_group_weights")]
public bool? ApplyAssignmentGroupWeights { get; set; }
[JsonPropertyName("permissions")]
public Dictionary<string, bool> Permissions { get; set; }
[JsonPropertyName("is_public")]
public bool? IsPublic { get; set; }
[JsonPropertyName("is_public_to_auth_users")]
public bool? IsPublicToAuthUsers { get; set; }
[JsonPropertyName("public_syllabus")]
public bool? PublicSyllabus { get; set; }
[JsonPropertyName("public_syllabus_to_auth")]
public bool? PublicSyllabusToAuth { get; set; }
[JsonPropertyName("public_description")]
public string? PublicDescription { get; set; }
[JsonPropertyName("storage_quota_mb")]
public ulong StorageQuotaMb { get; set; }
[JsonPropertyName("storage_quota_used_mb")]
public ulong StorageQuotaUsedMb { get; set; }
[JsonPropertyName("hide_final_grades")]
public bool? HideFinalGrades { get; set; }
[JsonPropertyName("license")]
public string License { get; set; }
[JsonPropertyName("allow_student_assignment_edits")]
public bool? AllowStudentAssignmentEdits { get; set; }
[JsonPropertyName("allow_wiki_comments")]
public bool? AllowWikiComments { get; set; }
[JsonPropertyName("allow_student_forum_attachments")]
public bool? AllowStudentForumAttachments { get; set; }
[JsonPropertyName("open_enrollment")]
public bool? OpenEnrollment { get; set; }
[JsonPropertyName("self_enrollment")]
public bool? SelfEnrollment { get; set; }
[JsonPropertyName("restrict_enrollments_to_courses")]
public bool? RestrictEnrollmentsToCourseDates { get; set; }
[JsonPropertyName("course_format")]
public string CourseFormat { get; set; }
[JsonPropertyName("access_restricted_by_date")]
public bool? AccessRestrictedByDate { get; set; }
[JsonPropertyName("time_zone")]
public string TimeZone { get; set; }
[JsonPropertyName("blueprint")]
public bool? Blueprint { get; set; }
[JsonPropertyName("blueprint_restrictions")]
public Dictionary<string, bool>? BlueprintRestrictions { get; set; }
[JsonPropertyName("blueprint_restrictions_by_object_type")]
public Dictionary<string, Dictionary<string, bool>>? BlueprintRestrictionsByObjectType { get; set; }
} }

View File

@@ -2,20 +2,19 @@ using System;
namespace Model.Courses { namespace CanvasModel.Courses;
public class CourseProgressModel
public class CourseProgressModel { {
[JsonPropertyName("requirement_count")] [JsonPropertyName("requirement_count")]
public uint? RequirementCount { get; set; } public uint? RequirementCount { get; set; }
[JsonPropertyName("requirement_completed_count")] [JsonPropertyName("requirement_completed_count")]
public uint? RequirementCompletedCount { get; set; } public uint? RequirementCompletedCount { get; set; }
[JsonPropertyName("next_requirement_url")] [JsonPropertyName("next_requirement_url")]
public string? NextRequirementUrl { get; set; } public string? NextRequirementUrl { get; set; }
[JsonPropertyName("completed_at")] [JsonPropertyName("completed_at")]
public DateTime? CompletedAt { get; set; } public DateTime? CompletedAt { get; set; }
}
} }

View File

@@ -1,49 +1,48 @@
namespace Model.Courses { namespace CanvasModel.Courses;
public class CourseSettingsModel
public class CourseSettingsModel { {
[JsonPropertyName("allow_final_grade_override")] [JsonPropertyName("allow_final_grade_override")]
public bool AllowFinalGradeOverride { get; set; } public bool AllowFinalGradeOverride { get; set; }
[JsonPropertyName("allow_student_discussion_topics")] [JsonPropertyName("allow_student_discussion_topics")]
public bool AllowStudentDiscussionTopics { get; set; } public bool AllowStudentDiscussionTopics { get; set; }
[JsonPropertyName("allow_student_forum_attachments")] [JsonPropertyName("allow_student_forum_attachments")]
public bool AllowStudentForumAttachments { get; set; } public bool AllowStudentForumAttachments { get; set; }
[JsonPropertyName("allow_student_discussion_editing")] [JsonPropertyName("allow_student_discussion_editing")]
public bool AllowStudentDiscussionEditing { get; set; } public bool AllowStudentDiscussionEditing { get; set; }
[JsonPropertyName("grading_standard_enabled")] [JsonPropertyName("grading_standard_enabled")]
public bool GradingStandardEnabled { get; set; } public bool GradingStandardEnabled { get; set; }
[JsonPropertyName("grading_standard_id")] [JsonPropertyName("grading_standard_id")]
public ulong? GradingStandardId { get; set; } public ulong? GradingStandardId { get; set; }
[JsonPropertyName("allow_student_organized_groups")] [JsonPropertyName("allow_student_organized_groups")]
public bool AllowStudentOrganizedGroups { get; set; } public bool AllowStudentOrganizedGroups { get; set; }
[JsonPropertyName("hide_final_groups")] [JsonPropertyName("hide_final_groups")]
public bool HideFinalGrades { get; set; } public bool HideFinalGrades { get; set; }
[JsonPropertyName("hide_distributor_graphs")] [JsonPropertyName("hide_distributor_graphs")]
public bool HideDistributionGraphs { get; set; } public bool HideDistributionGraphs { get; set; }
[JsonPropertyName("lock_all_announcements")] [JsonPropertyName("lock_all_announcements")]
public bool LockAllAnnouncements { get; set; } public bool LockAllAnnouncements { get; set; }
[JsonPropertyName("restrict_student_past_view")] [JsonPropertyName("restrict_student_past_view")]
public bool RestrictStudentPastView { get; set; } public bool RestrictStudentPastView { get; set; }
[JsonPropertyName("restrict_student_future_view")] [JsonPropertyName("restrict_student_future_view")]
public bool RestrictStudentFutureView { get; set; } public bool RestrictStudentFutureView { get; set; }
[JsonPropertyName("show_announcements_on_home_page")] [JsonPropertyName("show_announcements_on_home_page")]
public bool ShowAnnouncementsOnHomePage { get; set; } public bool ShowAnnouncementsOnHomePage { get; set; }
[JsonPropertyName("home_page_announcements_limit")] [JsonPropertyName("home_page_announcements_limit")]
public long HomePageAnnouncementLimit { get; set; } public long HomePageAnnouncementLimit { get; set; }
}
} }

View File

@@ -1,13 +1,12 @@
namespace Model.Courses { namespace CanvasModel.Courses;
public class ShortCourseModel
public class ShortCourseModel { {
[JsonPropertyName("id")] [JsonPropertyName("id")]
public ulong Id { get; set; } public ulong Id { get; set; }
[JsonPropertyName("name")] [JsonPropertyName("name")]
public string Name { get; set; } public string Name { get; set; }
}
} }

View File

@@ -1,20 +1,17 @@
using System;
namespace CanvasModel.Courses;
public class TermModel
{
namespace Model.Courses { [JsonPropertyName("id")]
public ulong Id { get; set; }
public class TermModel {
[JsonPropertyName("name")]
[JsonPropertyName("id")] public string Name { get; set; }
public ulong Id { get; set; }
[JsonPropertyName("start_at")]
[JsonPropertyName("name")] public DateTime? StartAt { get; set; }
public string Name { get; set; }
[JsonPropertyName("end_at")]
[JsonPropertyName("start_at")] public DateTime? EndAt { get; set; }
public DateTime? StartAt { get; set; }
[JsonPropertyName("end_at")]
public DateTime? EndAt { get; set; }
}
} }

View File

@@ -1,13 +1,12 @@
namespace Model.CustomGradebookColumns { namespace CanvasModel.CustomGradebookColumns;
public struct ColumnDatumModel
public struct ColumnDatumModel { {
[JsonPropertyName("content")] [JsonPropertyName("content")]
public string Content { get; set; } public string Content { get; set; }
[JsonPropertyName("user_id")] [JsonPropertyName("user_id")]
public ulong UserId { get; set; } public ulong UserId { get; set; }
}
} }

View File

@@ -1,25 +1,24 @@
namespace Model.CustomGradebookColumns { namespace CanvasModel.CustomGradebookColumns;
public class CustomColumnModel
public class CustomColumnModel { {
[JsonPropertyName("id")] [JsonPropertyName("id")]
public ulong Id { get; set; } public ulong Id { get; set; }
[JsonPropertyName("teacher_notes")] [JsonPropertyName("teacher_notes")]
public bool? TeacherNotes { get; set; } public bool? TeacherNotes { get; set; }
[JsonPropertyName("title")] [JsonPropertyName("title")]
public string Title { get; set; } public string Title { get; set; }
[JsonPropertyName("position")] [JsonPropertyName("position")]
public int? Position { get; set; } public int? Position { get; set; }
[JsonPropertyName("hidden")] [JsonPropertyName("hidden")]
public bool? Hidden { get; set; } public bool? Hidden { get; set; }
[JsonPropertyName("read_only")] [JsonPropertyName("read_only")]
public bool? ReadOnly { get; set; } public bool? ReadOnly { get; set; }
}
} }

View File

@@ -1,116 +1,115 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using Model.Users; using CanvasModel.Users;
namespace Model.Discussions { namespace CanvasModel.Discussions;
public class DiscussionTopicModel
public class DiscussionTopicModel { {
[JsonPropertyName("id")] [JsonPropertyName("id")]
public ulong Id { get; set; } public ulong Id { get; set; }
[JsonPropertyName("title")] [JsonPropertyName("title")]
public string Title { get; set; } public string Title { get; set; }
[JsonPropertyName("message")] [JsonPropertyName("message")]
public string Message { get; set; } public string Message { get; set; }
[JsonPropertyName("html_url")] [JsonPropertyName("html_url")]
public string HtmlUrl { get; set; } public string HtmlUrl { get; set; }
[JsonPropertyName("posted_at")] [JsonPropertyName("posted_at")]
public DateTime? PostedAt { get; set; } public DateTime? PostedAt { get; set; }
[JsonPropertyName("last_reply_at")] [JsonPropertyName("last_reply_at")]
public DateTime? LastReplyAt { get; set; } public DateTime? LastReplyAt { get; set; }
[JsonPropertyName("require_initial_post")] [JsonPropertyName("require_initial_post")]
public bool? RequireInitialPost { get; set; } public bool? RequireInitialPost { get; set; }
[JsonPropertyName("user_can_see_posts")] [JsonPropertyName("user_can_see_posts")]
public bool? UserCanSeePosts { get; set; } public bool? UserCanSeePosts { get; set; }
[JsonPropertyName("discussion_subentry_count")] [JsonPropertyName("discussion_subentry_count")]
public uint? DiscussionSubentryCount { get; set; } public uint? DiscussionSubentryCount { get; set; }
[JsonPropertyName("read_state")] [JsonPropertyName("read_state")]
public string ReadState { get; set; } public string ReadState { get; set; }
[JsonPropertyName("unread_count")] [JsonPropertyName("unread_count")]
public uint? UnreadCount { get; set; } public uint? UnreadCount { get; set; }
[JsonPropertyName("subscribed")] [JsonPropertyName("subscribed")]
public bool? Subscribed { get; set; } public bool? Subscribed { get; set; }
[JsonPropertyName("subscription_hold")] [JsonPropertyName("subscription_hold")]
public string SubscriptionHold { get; set; } public string SubscriptionHold { get; set; }
[JsonPropertyName("assignment_id")] [JsonPropertyName("assignment_id")]
public int AssignmentId { get; set; } public int AssignmentId { get; set; }
[JsonPropertyName("delayed_post_at")] [JsonPropertyName("delayed_post_at")]
public DateTime? DelayedPostAt { get; set; } public DateTime? DelayedPostAt { get; set; }
[JsonPropertyName("published")] [JsonPropertyName("published")]
public bool? Published { get; set; } public bool? Published { get; set; }
[JsonPropertyName("lock_at")] [JsonPropertyName("lock_at")]
public DateTime? LockAt { get; set; } public DateTime? LockAt { get; set; }
[JsonPropertyName("locked")] [JsonPropertyName("locked")]
public bool? Locked { get; set; } public bool? Locked { get; set; }
[JsonPropertyName("pinned")] [JsonPropertyName("pinned")]
public bool? Pinned { get; set; } public bool? Pinned { get; set; }
[JsonPropertyName("locked_for_user")] [JsonPropertyName("locked_for_user")]
public bool? LockedForUser { get; set; } public bool? LockedForUser { get; set; }
[JsonPropertyName("lock_info")] [JsonPropertyName("lock_info")]
public object LockInfo { get; set; } public object LockInfo { get; set; }
[JsonPropertyName("lock_explanation")] [JsonPropertyName("lock_explanation")]
public string LockExplanation { get; set; } public string LockExplanation { get; set; }
[JsonPropertyName("user_name")] [JsonPropertyName("user_name")]
public string UserName { get; set; } public string UserName { get; set; }
[JsonPropertyName("topic_children")] [JsonPropertyName("topic_children")]
public IEnumerable<uint> TopicChildren { get; set; } public IEnumerable<uint> TopicChildren { get; set; }
[JsonPropertyName("group_topic_children")] [JsonPropertyName("group_topic_children")]
public object GroupTopicChildren { get; set; } public object GroupTopicChildren { get; set; }
[JsonPropertyName("root_topic_id")] [JsonPropertyName("root_topic_id")]
public ulong? RootTopicId { get; set; } public ulong? RootTopicId { get; set; }
[JsonPropertyName("podcast_url")] [JsonPropertyName("podcast_url")]
public string PodcastUrl { get; set; } public string PodcastUrl { get; set; }
[JsonPropertyName("discussion_type")] [JsonPropertyName("discussion_type")]
public string DiscussionType { get; set; } public string DiscussionType { get; set; }
[JsonPropertyName("group_category_id")] [JsonPropertyName("group_category_id")]
public ulong? GroupCategoryId { get; set; } public ulong? GroupCategoryId { get; set; }
[JsonPropertyName("attachments")] [JsonPropertyName("attachments")]
public IEnumerable<FileAttachmentModel> Attachments { get; set; } public IEnumerable<FileAttachmentModel> Attachments { get; set; }
[JsonPropertyName("permissions")] [JsonPropertyName("permissions")]
public Dictionary<string, bool> Permissions { get; set; } public Dictionary<string, bool> Permissions { get; set; }
[JsonPropertyName("allow_rating")] [JsonPropertyName("allow_rating")]
public bool? AllowRating { get; set; } public bool? AllowRating { get; set; }
[JsonPropertyName("only_graders_can_rate")] [JsonPropertyName("only_graders_can_rate")]
public bool? OnlyGradersCanRate { get; set; } public bool? OnlyGradersCanRate { get; set; }
[JsonPropertyName("sort_by_rating")] [JsonPropertyName("sort_by_rating")]
public bool? SortByRating { get; set; } public bool? SortByRating { get; set; }
[JsonPropertyName("author")] [JsonPropertyName("author")]
public UserDisplayModel Author { get; set; } public UserDisplayModel Author { get; set; }
}
} }

View File

@@ -1,22 +1,21 @@
namespace Model.Discussions { namespace CanvasModel.Discussions;
public class FileAttachmentModel
public class FileAttachmentModel { {
[JsonPropertyName("content_type")] [JsonPropertyName("content_type")]
public string ContentType { get; set; } public string ContentType { get; set; }
[JsonPropertyName("url")] [JsonPropertyName("url")]
public string Url { get; set; } public string Url { get; set; }
[JsonPropertyName("filename")] [JsonPropertyName("filename")]
public string Filename { get; set; } public string Filename { get; set; }
[JsonPropertyName("display_name")] [JsonPropertyName("display_name")]
public string DisplayName { get; set; } public string DisplayName { get; set; }
}
} }

View File

@@ -4,46 +4,45 @@ using System.Collections.Generic;
namespace Model.Discussions { namespace CanvasModel.Discussions;
public class TopicEntryModel
public class TopicEntryModel { {
[JsonPropertyName("id")] [JsonPropertyName("id")]
public ulong Id { get; set; } public ulong Id { get; set; }
[JsonPropertyName("user_id")] [JsonPropertyName("user_id")]
public ulong UserId { get; set; } public ulong UserId { get; set; }
[JsonPropertyName("editor_id")] [JsonPropertyName("editor_id")]
public ulong? EditorId { get; set; } public ulong? EditorId { get; set; }
[JsonPropertyName("user_name")] [JsonPropertyName("user_name")]
public string UserName { get; set; } public string UserName { get; set; }
[JsonPropertyName("message")] [JsonPropertyName("message")]
public string Message { get; set; } public string Message { get; set; }
[JsonPropertyName("read_state")] [JsonPropertyName("read_state")]
public string ReadState { get; set; } public string ReadState { get; set; }
[JsonPropertyName("forced_read_state")] [JsonPropertyName("forced_read_state")]
public bool ForcedReadState { get; set; } public bool ForcedReadState { get; set; }
[JsonPropertyName("created_at")] [JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; } public DateTime CreatedAt { get; set; }
[JsonPropertyName("updated_at")] [JsonPropertyName("updated_at")]
public DateTime? UpdatedAt { get; set; } public DateTime? UpdatedAt { get; set; }
[JsonPropertyName("attachment")] [JsonPropertyName("attachment")]
public FileAttachmentModel? Attachment { get; set; } public FileAttachmentModel? Attachment { get; set; }
[JsonPropertyName("recent_replies")] [JsonPropertyName("recent_replies")]
public IEnumerable<TopicReplyModel>? RecentReplies { get; set; } public IEnumerable<TopicReplyModel>? RecentReplies { get; set; }
[JsonPropertyName("has_more_replies")] [JsonPropertyName("has_more_replies")]
public bool? HasMoreReplies { get; set; } public bool? HasMoreReplies { get; set; }
}
} }

View File

@@ -2,34 +2,33 @@ using System;
namespace Model.Discussions { namespace CanvasModel.Discussions;
public class TopicReplyModel
public class TopicReplyModel { {
[JsonPropertyName("id")] [JsonPropertyName("id")]
public ulong Id { get; set; } public ulong Id { get; set; }
[JsonPropertyName("user_id")] [JsonPropertyName("user_id")]
public ulong UserId { get; set; } public ulong UserId { get; set; }
[JsonPropertyName("editor_id")] [JsonPropertyName("editor_id")]
public ulong? EditorId { get; set; } public ulong? EditorId { get; set; }
[JsonPropertyName("user_name")] [JsonPropertyName("user_name")]
public string UserName { get; set; } public string UserName { get; set; }
[JsonPropertyName("message")] [JsonPropertyName("message")]
public string Message { get; set; } public string Message { get; set; }
[JsonPropertyName("read_state")] [JsonPropertyName("read_state")]
public string ReadState { get; set; } public string ReadState { get; set; }
[JsonPropertyName("forced_read_state")] [JsonPropertyName("forced_read_state")]
public bool? ForcedReadState { get; set; } public bool? ForcedReadState { get; set; }
[JsonPropertyName("created_at")] [JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; } public DateTime CreatedAt { get; set; }
}
} }

View File

@@ -2,41 +2,42 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
namespace Model.EnrollmentTerms { namespace CanvasModel.EnrollmentTerms;
public class EnrollmentTermModel { public class EnrollmentTermModel
[JsonPropertyName("id")] {
public ulong Id { get; set; } [JsonPropertyName("id")]
public ulong Id { get; set; }
[JsonPropertyName("sis_term_id")]
public string SisTermId { get; set; }
[JsonPropertyName("sis_import_id")]
public ulong? SisImportId { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("start_at")]
public DateTime? StartAt { get; set; }
[JsonPropertyName("end_at")]
public DateTime? EndAt { get; set; }
[JsonPropertyName("grading_period_group_id")]
public ulong? GradingPeriodGroupId { get; set; }
[JsonPropertyName("workflow_state")]
public string WorkflowState { get; set; }
[JsonPropertyName("overrides")]
public Dictionary<string, EnrollmentTermDateOverrideModel> Overrides { get; set; }
}
public struct EnrollmentTermDateOverrideModel { [JsonPropertyName("sis_term_id")]
[JsonPropertyName("start_at")] public string SisTermId { get; set; }
public DateTime? StartAt { get; set; }
[JsonPropertyName("sis_import_id")]
[JsonPropertyName("end_at")] public ulong? SisImportId { get; set; }
public DateTime? EndAt { get; set; }
} [JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("start_at")]
public DateTime? StartAt { get; set; }
[JsonPropertyName("end_at")]
public DateTime? EndAt { get; set; }
[JsonPropertyName("grading_period_group_id")]
public ulong? GradingPeriodGroupId { get; set; }
[JsonPropertyName("workflow_state")]
public string WorkflowState { get; set; }
[JsonPropertyName("overrides")]
public Dictionary<string, EnrollmentTermDateOverrideModel> Overrides { get; set; }
}
public struct EnrollmentTermDateOverrideModel
{
[JsonPropertyName("start_at")]
public DateTime? StartAt { get; set; }
[JsonPropertyName("end_at")]
public DateTime? EndAt { get; set; }
} }

View File

@@ -1,9 +1,9 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace Model.EnrollmentTerms { namespace CanvasModel.EnrollmentTerms;
public struct RedundantEnrollmentTermsResponse { public struct RedundantEnrollmentTermsResponse
[JsonPropertyName("enrollment_terms")] {
public IEnumerable<EnrollmentTermModel> EnrollmentTerms { get; set; } [JsonPropertyName("enrollment_terms")]
} public IEnumerable<EnrollmentTermModel> EnrollmentTerms { get; set; }
} }

View File

@@ -1,139 +1,135 @@
using System; using CanvasModel.Users;
namespace CanvasModel.Enrollments;
public class EnrollmentModel
{
using Model.Users; [JsonPropertyName("id")]
public ulong Id { get; set; }
namespace Model.Enrollments { [JsonPropertyName("course_id")]
public ulong CourseId { get; set; }
public class EnrollmentModel {
[JsonPropertyName("id")]
public ulong Id { get; set; }
[JsonPropertyName("course_id")]
public ulong CourseId { get; set; }
[JsonPropertyName("sis_course_id")]
public string? SisCourseId { get; set; }
[JsonPropertyName("course_integration_id")]
public string? CourseIntegrationId { get; set; }
[JsonPropertyName("course_section_id")]
public ulong? CourseSectionId { get; set; }
[JsonPropertyName("section_integration_id")]
public string? SectionIntegrationId { get; set; }
[JsonPropertyName("sis_account_id")]
public string? SisAccountId { get; set; }
[JsonPropertyName("sis_section_id")]
public string? SisSectionId { get; set; }
[JsonPropertyName("sis_user_id")]
public string? SisUserId { get; set; }
[JsonPropertyName("enrollment_state")]
public string EnrollmentState { get; set; }
[JsonPropertyName("limit_privileges_to_course_section")]
public bool? LimitPrivilegesToCourseSection { get; set; }
[JsonPropertyName("sis_import_id")]
public ulong? SisImportId { get; set; }
[JsonPropertyName("root_account_id")]
public ulong? RootAccountId { get; set; }
[JsonPropertyName("type")]
public string Type { get; set; }
[JsonPropertyName("user_id")]
public ulong UserId { get; set; }
[JsonPropertyName("associated_user_id")]
public ulong? AssociatedUserId { get; set; }
[JsonPropertyName("role")]
public string Role { get; set; }
[JsonPropertyName("role_id")]
public ulong RoleId { get; set; }
[JsonPropertyName("created_at")]
public DateTime? CreatedAt { get; set; }
[JsonPropertyName("updated_at")]
public DateTime? UpdatedAt { get; set; }
[JsonPropertyName("start_at")]
public DateTime? StartAt { get; set; }
[JsonPropertyName("end_at")]
public DateTime? EndAt { get; set; }
[JsonPropertyName("last_activity_at")]
public DateTime? LastActivityAt { get; set; }
[JsonPropertyName("last_attended_at")]
public DateTime? LastAttendedAt { get; set; }
[JsonPropertyName("total_activity_time")]
public ulong? TotalActivityTime { get; set; }
[JsonPropertyName("html_url")]
public string HtmlUrl { get; set; }
[JsonPropertyName("grades")]
public GradeModel Grades { get; set; }
[JsonPropertyName("user")]
public UserDisplayModel User { get; set; }
[JsonPropertyName("override_grade")]
public string OverrideGrade { get; set; }
[JsonPropertyName("override_score")]
public decimal? OverrideScore { get; set; }
[JsonPropertyName("unposted_current_grade")]
public string? UnpostedCurrentGrade { get; set; }
[JsonPropertyName("unposted_final_grade")]
public string? UnpostedFinalGrade { get; set; }
[JsonPropertyName("unposted_current_score")]
public string? UnpostedCurrentScore { get; set; }
[JsonPropertyName("unposted_final_score")]
public string? UnpostedFinalScore { get; set; }
[JsonPropertyName("has_grading_periods")]
public bool? HasGradingPeriods { get; set; }
[JsonPropertyName("totals_for_all_grading_periods_option")] [JsonPropertyName("sis_course_id")]
public bool? TotalsForAllGradingPeriodsOption { get; set; } public string? SisCourseId { get; set; }
[JsonPropertyName("current_grading_period_title")] [JsonPropertyName("course_integration_id")]
public string? CurrentGradingPeriodTitle { get; set; } public string? CourseIntegrationId { get; set; }
[JsonPropertyName("current_grading_period_id")] [JsonPropertyName("course_section_id")]
public ulong? CurrentGradingPeriodId { get; set; } public ulong? CourseSectionId { get; set; }
[JsonPropertyName("current_period_override_grade")] [JsonPropertyName("section_integration_id")]
public string? CurrentPeriodOverrideGrade { get; set; } public string? SectionIntegrationId { get; set; }
[JsonPropertyName("current_period_override_score")] [JsonPropertyName("sis_account_id")]
public decimal? CurrentPeriodOverrideScore { get; set; } public string? SisAccountId { get; set; }
[JsonPropertyName("current_period_unposted_final_score")] [JsonPropertyName("sis_section_id")]
public decimal? CurrentPeriodUnpostedFinalScore { get; set; } public string? SisSectionId { get; set; }
[JsonPropertyName("current_period_unposted_current_grade")] [JsonPropertyName("sis_user_id")]
public string? CurrentPeriodUnpostedCurrentGrade { get; set; } public string? SisUserId { get; set; }
[JsonPropertyName("current_period_unposted_final_grade")] [JsonPropertyName("enrollment_state")]
public string? CurrentPeriodUnpostedFinalGrade { get; set; } public string EnrollmentState { get; set; }
}
[JsonPropertyName("limit_privileges_to_course_section")]
public bool? LimitPrivilegesToCourseSection { get; set; }
[JsonPropertyName("sis_import_id")]
public ulong? SisImportId { get; set; }
[JsonPropertyName("root_account_id")]
public ulong? RootAccountId { get; set; }
[JsonPropertyName("type")]
public string Type { get; set; }
[JsonPropertyName("user_id")]
public ulong UserId { get; set; }
[JsonPropertyName("associated_user_id")]
public ulong? AssociatedUserId { get; set; }
[JsonPropertyName("role")]
public string Role { get; set; }
[JsonPropertyName("role_id")]
public ulong RoleId { get; set; }
[JsonPropertyName("created_at")]
public DateTime? CreatedAt { get; set; }
[JsonPropertyName("updated_at")]
public DateTime? UpdatedAt { get; set; }
[JsonPropertyName("start_at")]
public DateTime? StartAt { get; set; }
[JsonPropertyName("end_at")]
public DateTime? EndAt { get; set; }
[JsonPropertyName("last_activity_at")]
public DateTime? LastActivityAt { get; set; }
[JsonPropertyName("last_attended_at")]
public DateTime? LastAttendedAt { get; set; }
[JsonPropertyName("total_activity_time")]
public ulong? TotalActivityTime { get; set; }
[JsonPropertyName("html_url")]
public string HtmlUrl { get; set; }
[JsonPropertyName("grades")]
public GradeModel Grades { get; set; }
[JsonPropertyName("user")]
public UserDisplayModel User { get; set; }
[JsonPropertyName("override_grade")]
public string OverrideGrade { get; set; }
[JsonPropertyName("override_score")]
public decimal? OverrideScore { get; set; }
[JsonPropertyName("unposted_current_grade")]
public string? UnpostedCurrentGrade { get; set; }
[JsonPropertyName("unposted_final_grade")]
public string? UnpostedFinalGrade { get; set; }
[JsonPropertyName("unposted_current_score")]
public string? UnpostedCurrentScore { get; set; }
[JsonPropertyName("unposted_final_score")]
public string? UnpostedFinalScore { get; set; }
[JsonPropertyName("has_grading_periods")]
public bool? HasGradingPeriods { get; set; }
[JsonPropertyName("totals_for_all_grading_periods_option")]
public bool? TotalsForAllGradingPeriodsOption { get; set; }
[JsonPropertyName("current_grading_period_title")]
public string? CurrentGradingPeriodTitle { get; set; }
[JsonPropertyName("current_grading_period_id")]
public ulong? CurrentGradingPeriodId { get; set; }
[JsonPropertyName("current_period_override_grade")]
public string? CurrentPeriodOverrideGrade { get; set; }
[JsonPropertyName("current_period_override_score")]
public decimal? CurrentPeriodOverrideScore { get; set; }
[JsonPropertyName("current_period_unposted_final_score")]
public decimal? CurrentPeriodUnpostedFinalScore { get; set; }
[JsonPropertyName("current_period_unposted_current_grade")]
public string? CurrentPeriodUnpostedCurrentGrade { get; set; }
[JsonPropertyName("current_period_unposted_final_grade")]
public string? CurrentPeriodUnpostedFinalGrade { get; set; }
} }

View File

@@ -1,35 +1,34 @@
namespace Model.Enrollments { namespace CanvasModel.Enrollments;
public class GradeModel
public class GradeModel { {
[JsonPropertyName("html_url")] [JsonPropertyName("html_url")]
public string? HtmlUrl { get; set; } public string? HtmlUrl { get; set; }
[JsonPropertyName("current_grade")] [JsonPropertyName("current_grade")]
public string? CurrentGrade { get; set; } public string? CurrentGrade { get; set; }
[JsonPropertyName("final_grade")] [JsonPropertyName("final_grade")]
public string? FinalGrade { get; set; } public string? FinalGrade { get; set; }
[JsonPropertyName("current_score")] [JsonPropertyName("current_score")]
public string? CurrentScore { get; set; } public string? CurrentScore { get; set; }
[JsonPropertyName("final_score")] [JsonPropertyName("final_score")]
public string? FinalScore { get; set; } public string? FinalScore { get; set; }
[JsonPropertyName("unposted_current_grade")] [JsonPropertyName("unposted_current_grade")]
public string? UnpostedCurrentGrade { get; set; } public string? UnpostedCurrentGrade { get; set; }
[JsonPropertyName("unposted_final_grade")] [JsonPropertyName("unposted_final_grade")]
public string? UnpostedFinalGrade { get; set; } public string? UnpostedFinalGrade { get; set; }
[JsonPropertyName("unposted_current_score")] [JsonPropertyName("unposted_current_score")]
public string? UnpostedCurrentScore { get; set; } public string? UnpostedCurrentScore { get; set; }
[JsonPropertyName("unposted_final_score")] [JsonPropertyName("unposted_final_score")]
public string? UnpostedFinalScore { get; set; } public string? UnpostedFinalScore { get; set; }
}
} }

View File

@@ -1,25 +1,24 @@
namespace Model.ExternalTools { namespace CanvasModel.ExternalTools;
public class AccountNavigationModel
public class AccountNavigationModel { {
[JsonPropertyName("url")] [JsonPropertyName("url")]
public string Url { get; set; } public string Url { get; set; }
[JsonPropertyName("enabled")] [JsonPropertyName("enabled")]
public bool? Enabled { get; set; } public bool? Enabled { get; set; }
[JsonPropertyName("text")] [JsonPropertyName("text")]
public string Text { get; set; } public string Text { get; set; }
[JsonPropertyName("selection_width")] [JsonPropertyName("selection_width")]
public uint? SelectionWidth { get; set; } public uint? SelectionWidth { get; set; }
[JsonPropertyName("selection_height")] [JsonPropertyName("selection_height")]
public uint? SelectionHeight { get; set; } public uint? SelectionHeight { get; set; }
[JsonPropertyName("display_type")] [JsonPropertyName("display_type")]
public string DisplayType { get; set; } public string DisplayType { get; set; }
}
} }

View File

@@ -1,19 +1,18 @@
namespace Model.ExternalTools { namespace CanvasModel.ExternalTools;
public class CourseHomeSubNavigationModel
public class CourseHomeSubNavigationModel { {
[JsonPropertyName("url")] [JsonPropertyName("url")]
public string Url { get; set; } public string Url { get; set; }
[JsonPropertyName("enabled")] [JsonPropertyName("enabled")]
public bool? Enabled { get; set; } public bool? Enabled { get; set; }
[JsonPropertyName("text")] [JsonPropertyName("text")]
public string Text { get; set; } public string Text { get; set; }
[JsonPropertyName("icon_url")] [JsonPropertyName("icon_url")]
public string IconUrl { get; set; } public string IconUrl { get; set; }
}
} }

View File

@@ -1,25 +1,24 @@
namespace Model.ExternalTools { namespace CanvasModel.ExternalTools;
public class CourseNavigationModel
public class CourseNavigationModel { {
[JsonPropertyName("enabled")] [JsonPropertyName("enabled")]
public bool? Enabled { get; set; } public bool? Enabled { get; set; }
[JsonPropertyName("text")] [JsonPropertyName("text")]
public string Text { get; set; } public string Text { get; set; }
[JsonPropertyName("visible")] [JsonPropertyName("visible")]
public string Visibility { get; set; } public string Visibility { get; set; }
[JsonPropertyName("window_target")] [JsonPropertyName("window_target")]
public string WindowTarget { get; set; } public string WindowTarget { get; set; }
[JsonPropertyName("default")] [JsonPropertyName("default")]
public bool? Default { get; set; } public bool? Default { get; set; }
[JsonPropertyName("display_type")] [JsonPropertyName("display_type")]
public string DisplayType { get; set; } public string DisplayType { get; set; }
}
} }

View File

@@ -1,25 +1,24 @@
namespace Model.ExternalTools { namespace CanvasModel.ExternalTools;
public class EditorButtonModel
public class EditorButtonModel { {
[JsonPropertyName("url")] [JsonPropertyName("url")]
public string Url { get; set; } public string Url { get; set; }
[JsonPropertyName("enabled")] [JsonPropertyName("enabled")]
public bool? Enabled { get; set; } public bool? Enabled { get; set; }
[JsonPropertyName("icon_url")] [JsonPropertyName("icon_url")]
public string IconUrl { get; set; } public string IconUrl { get; set; }
[JsonPropertyName("selection_width")] [JsonPropertyName("selection_width")]
public uint? SelectionWidth { get; set; } public uint? SelectionWidth { get; set; }
[JsonPropertyName("selection_height")] [JsonPropertyName("selection_height")]
public uint? SelectionHeight { get; set; } public uint? SelectionHeight { get; set; }
[JsonPropertyName("message_type")] [JsonPropertyName("message_type")]
public string MessageType { get; set; } public string MessageType { get; set; }
}
} }

View File

@@ -2,74 +2,73 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
namespace Model.ExternalTools { namespace CanvasModel.ExternalTools;
public class ExternalToolModel
public class ExternalToolModel { {
[JsonPropertyName("id")] [JsonPropertyName("id")]
public ulong Id { get; set; } public ulong Id { get; set; }
[JsonPropertyName("domain")] [JsonPropertyName("domain")]
public string Domain { get; set; } public string Domain { get; set; }
[JsonPropertyName("consumer_key")] [JsonPropertyName("consumer_key")]
public string ConsumerKey { get; set; } public string ConsumerKey { get; set; }
[JsonPropertyName("name")] [JsonPropertyName("name")]
public string Name { get; set; } public string Name { get; set; }
[JsonPropertyName("description")] [JsonPropertyName("description")]
public string Description { get; set; } public string Description { get; set; }
[JsonPropertyName("created_at")] [JsonPropertyName("created_at")]
public DateTime? CreatedAt { get; set; } public DateTime? CreatedAt { get; set; }
[JsonPropertyName("updated_at")] [JsonPropertyName("updated_at")]
public DateTime? UpdatedAt { get; set; } public DateTime? UpdatedAt { get; set; }
[JsonPropertyName("privacy_level")] [JsonPropertyName("privacy_level")]
public string PrivacyLevel { get; set; } public string PrivacyLevel { get; set; }
[JsonPropertyName("custom_fields")] [JsonPropertyName("custom_fields")]
public Dictionary<string, string> CustomFields { get; set; } public Dictionary<string, string> CustomFields { get; set; }
[JsonPropertyName("account_navigation")] [JsonPropertyName("account_navigation")]
public AccountNavigationModel AccountNavigation { get; set; } public AccountNavigationModel AccountNavigation { get; set; }
[JsonPropertyName("course_home_sub_navigation")] [JsonPropertyName("course_home_sub_navigation")]
public CourseHomeSubNavigationModel CourseHomeSubNavigation { get; set; } public CourseHomeSubNavigationModel CourseHomeSubNavigation { get; set; }
[JsonPropertyName("course_navigation")] [JsonPropertyName("course_navigation")]
public CourseNavigationModel CourseNavigation { get; set; } public CourseNavigationModel CourseNavigation { get; set; }
[JsonPropertyName("editor_button")] [JsonPropertyName("editor_button")]
public EditorButtonModel EditorButton { get; set; } public EditorButtonModel EditorButton { get; set; }
[JsonPropertyName("homework_submission")] [JsonPropertyName("homework_submission")]
public HomeworkSubmissionModel HomeworkSubmission { get; set; } public HomeworkSubmissionModel HomeworkSubmission { get; set; }
[JsonPropertyName("migration_selection")] [JsonPropertyName("migration_selection")]
public MigrationSelectionModel MigrationSelection { get; set; } public MigrationSelectionModel MigrationSelection { get; set; }
[JsonPropertyName("resource_selection")] [JsonPropertyName("resource_selection")]
public ResourceSelectionModel ResourceSelection { get; set; } public ResourceSelectionModel ResourceSelection { get; set; }
[JsonPropertyName("tool_configuration")] [JsonPropertyName("tool_configuration")]
public ToolConfigurationModel ToolConfiguration { get; set; } public ToolConfigurationModel ToolConfiguration { get; set; }
[JsonPropertyName("user_navigation")] [JsonPropertyName("user_navigation")]
public UserNavigationModel UserNavigation { get; set; } public UserNavigationModel UserNavigation { get; set; }
[JsonPropertyName("selection_width")] [JsonPropertyName("selection_width")]
public uint? SelectionWidth { get; set; } public uint? SelectionWidth { get; set; }
[JsonPropertyName("selection_height")] [JsonPropertyName("selection_height")]
public uint? SelectionHeight { get; set; } public uint? SelectionHeight { get; set; }
[JsonPropertyName("icon_url")] [JsonPropertyName("icon_url")]
public string IconUrl { get; set; } public string IconUrl { get; set; }
[JsonPropertyName("not_selectable")] [JsonPropertyName("not_selectable")]
public bool? NotSelectable { get; set; } public bool? NotSelectable { get; set; }
}
} }

View File

@@ -1,19 +1,18 @@
namespace Model.ExternalTools { namespace CanvasModel.ExternalTools;
public class HomeworkSubmissionModel
public class HomeworkSubmissionModel { {
[JsonPropertyName("url")] [JsonPropertyName("url")]
public string Url { get; set; } public string Url { get; set; }
[JsonPropertyName("enabled")] [JsonPropertyName("enabled")]
public bool? Enabled { get; set; } public bool? Enabled { get; set; }
[JsonPropertyName("text")] [JsonPropertyName("text")]
public string Text { get; set; } public string Text { get; set; }
[JsonPropertyName("message_type")] [JsonPropertyName("message_type")]
public string MessageType { get; set; } public string MessageType { get; set; }
}
} }

View File

@@ -1,19 +1,18 @@
namespace Model.ExternalTools { namespace CanvasModel.ExternalTools;
public class LinkSelectionModel
public class LinkSelectionModel { {
[JsonPropertyName("url")] [JsonPropertyName("url")]
public string Url { get; set; } public string Url { get; set; }
[JsonPropertyName("enabled")] [JsonPropertyName("enabled")]
public bool? Enabled { get; set; } public bool? Enabled { get; set; }
[JsonPropertyName("text")] [JsonPropertyName("text")]
public string Text { get; set; } public string Text { get; set; }
[JsonPropertyName("message_type")] [JsonPropertyName("message_type")]
public string MessageType { get; set; } public string MessageType { get; set; }
}
} }

View File

@@ -1,16 +1,15 @@
namespace Model.ExternalTools { namespace CanvasModel.ExternalTools;
public class MigrationSelectionModel
public class MigrationSelectionModel { {
[JsonPropertyName("url")] [JsonPropertyName("url")]
public string Url { get; set; } public string Url { get; set; }
[JsonPropertyName("enabled")] [JsonPropertyName("enabled")]
public bool? Enabled { get; set; } public bool? Enabled { get; set; }
[JsonPropertyName("message_type")] [JsonPropertyName("message_type")]
public string MessageType { get; set; } public string MessageType { get; set; }
}
} }

View File

@@ -1,22 +1,21 @@
namespace Model.ExternalTools { namespace CanvasModel.ExternalTools;
public class ResourceSelectionModel
public class ResourceSelectionModel { {
[JsonPropertyName("url")] [JsonPropertyName("url")]
public string Url { get; set; } public string Url { get; set; }
[JsonPropertyName("enabled")] [JsonPropertyName("enabled")]
public bool? Enabled { get; set; } public bool? Enabled { get; set; }
[JsonPropertyName("icon_url")] [JsonPropertyName("icon_url")]
public string IconUrl { get; set; } public string IconUrl { get; set; }
[JsonPropertyName("selection_width")] [JsonPropertyName("selection_width")]
public uint? SelectionWidth { get; set; } public uint? SelectionWidth { get; set; }
[JsonPropertyName("selection_height")] [JsonPropertyName("selection_height")]
public uint? SelectionHeight { get; set; } public uint? SelectionHeight { get; set; }
}
} }

View File

@@ -1,19 +1,18 @@
namespace Model.ExternalTools { namespace CanvasModel.ExternalTools;
public class ToolConfigurationModel
public class ToolConfigurationModel { {
[JsonPropertyName("url")] [JsonPropertyName("url")]
public string Url { get; set; } public string Url { get; set; }
[JsonPropertyName("enabled")] [JsonPropertyName("enabled")]
public bool? Enabled { get; set; } public bool? Enabled { get; set; }
[JsonPropertyName("message_type")] [JsonPropertyName("message_type")]
public string MessageType { get; set; } public string MessageType { get; set; }
[JsonPropertyName("prefer_sis_email")] [JsonPropertyName("prefer_sis_email")]
public bool? PreferSisEmail { get; set; } public bool? PreferSisEmail { get; set; }
}
} }

View File

@@ -1,19 +1,18 @@
namespace Model.ExternalTools { namespace CanvasModel.ExternalTools;
public class UserNavigationModel
public class UserNavigationModel { {
[JsonPropertyName("url")] [JsonPropertyName("url")]
public string Url { get; set; } public string Url { get; set; }
[JsonPropertyName("enabled")] [JsonPropertyName("enabled")]
public bool? Enabled { get; set; } public bool? Enabled { get; set; }
[JsonPropertyName("text")] [JsonPropertyName("text")]
public string Text { get; set; } public string Text { get; set; }
[JsonPropertyName("visibility")] [JsonPropertyName("visibility")]
public string Visibility { get; set; } public string Visibility { get; set; }
}
} }

View File

@@ -1,77 +1,77 @@
using System; using System;
namespace Model.Files { namespace CanvasModel.Files;
public class CanvasFileModel { public class CanvasFileModel
{
[JsonPropertyName("id")]
public ulong Id { get; set; } [JsonPropertyName("id")]
public ulong Id { get; set; }
[JsonPropertyName("uuid")]
public string Uuid { get; set; } [JsonPropertyName("uuid")]
public string Uuid { get; set; }
[JsonPropertyName("folder_id")]
public ulong FolderId { get; set; } [JsonPropertyName("folder_id")]
public ulong FolderId { get; set; }
[JsonPropertyName("display_name")]
public string DisplayName { get; set; } [JsonPropertyName("display_name")]
public string DisplayName { get; set; }
[JsonPropertyName("filename")]
public string Filename { get; set; } [JsonPropertyName("filename")]
public string Filename { get; set; }
[JsonPropertyName("content_type")]
public string ContentType { get; set; } [JsonPropertyName("content_type")]
public string ContentType { get; set; }
[JsonPropertyName("url")]
public string Url { get; set; } [JsonPropertyName("url")]
public string Url { get; set; }
[JsonPropertyName("size")]
public ulong Size { get; set; } [JsonPropertyName("size")]
public ulong Size { get; set; }
[JsonPropertyName("created_at")]
public DateTime? CreatedAt { get; set; } [JsonPropertyName("created_at")]
public DateTime? CreatedAt { get; set; }
[JsonPropertyName("updated_at")]
public DateTime? UpdatedAt { get; set; } [JsonPropertyName("updated_at")]
public DateTime? UpdatedAt { get; set; }
[JsonPropertyName("unlock_at")]
public DateTime? UnlockAt { get; set; } [JsonPropertyName("unlock_at")]
public DateTime? UnlockAt { get; set; }
[JsonPropertyName("locked")]
public bool Locked { get; set; } [JsonPropertyName("locked")]
public bool Locked { get; set; }
[JsonPropertyName("hidden")]
public bool Hidden { get; set; } [JsonPropertyName("hidden")]
public bool Hidden { get; set; }
[JsonPropertyName("lock_at")]
public DateTime? LockAt { get; set; } [JsonPropertyName("lock_at")]
public DateTime? LockAt { get; set; }
[JsonPropertyName("hidden_for_user")]
public bool HiddenForUser { get; set; } [JsonPropertyName("hidden_for_user")]
public bool HiddenForUser { get; set; }
[JsonPropertyName("thumbnail_url")]
public string ThumbnailUrl { get; set; } [JsonPropertyName("thumbnail_url")]
public string ThumbnailUrl { get; set; }
[JsonPropertyName("modified_at")]
public DateTime? ModifiedAt { get; set; } [JsonPropertyName("modified_at")]
public DateTime? ModifiedAt { get; set; }
[JsonPropertyName("mime_class")]
public string MimeClass { get; set; } [JsonPropertyName("mime_class")]
public string MimeClass { get; set; }
[JsonPropertyName("media_entry_id")]
public string MediaEntryId { get; set; } [JsonPropertyName("media_entry_id")]
public string MediaEntryId { get; set; }
[JsonPropertyName("locked_for_user")]
public bool LockedForUser { get; set; } [JsonPropertyName("locked_for_user")]
public bool LockedForUser { get; set; }
[JsonPropertyName("lock_info")]
// public LockInfo? LockInfo { get; set; } [JsonPropertyName("lock_info")]
public object? LockInfo { get; set; } // public LockInfo? LockInfo { get; set; }
public object? LockInfo { get; set; }
[JsonPropertyName("lock_explanation")]
public string LockExplanation { get; set; } [JsonPropertyName("lock_explanation")]
public string LockExplanation { get; set; }
[JsonPropertyName("preview_url")]
public string PreviewUrl { get; set; } [JsonPropertyName("preview_url")]
} public string PreviewUrl { get; set; }
} }

View File

@@ -1,67 +1,67 @@
using System; using System;
namespace Model.Files { namespace CanvasModel.Files;
public class FolderModel { public class FolderModel
{
[JsonPropertyName("context_type")]
public string ContextType { get; set; } [JsonPropertyName("context_type")]
public string ContextType { get; set; }
[JsonPropertyName("context_id")]
public ulong ContextId { get; set; } [JsonPropertyName("context_id")]
public ulong ContextId { get; set; }
[JsonPropertyName("files_count")]
public uint FilesCount { get; set; } [JsonPropertyName("files_count")]
public uint FilesCount { get; set; }
[JsonPropertyName("position")]
public int? Position { get; set; } [JsonPropertyName("position")]
public int? Position { get; set; }
[JsonPropertyName("updated_at")]
public DateTime UpdatedAt { get; set; } [JsonPropertyName("updated_at")]
public DateTime UpdatedAt { get; set; }
[JsonPropertyName("folders_url")]
public string FoldersUrl { get; set; } [JsonPropertyName("folders_url")]
public string FoldersUrl { get; set; }
[JsonPropertyName("files_url")]
public string FilesUrl { get; set; } [JsonPropertyName("files_url")]
public string FilesUrl { get; set; }
[JsonPropertyName("full_name")]
public string FullName { get; set; } [JsonPropertyName("full_name")]
public string FullName { get; set; }
[JsonPropertyName("lock_at")]
public DateTime? LockAt { get; set; } [JsonPropertyName("lock_at")]
public DateTime? LockAt { get; set; }
[JsonPropertyName("id")]
public ulong Id { get; set; } [JsonPropertyName("id")]
public ulong Id { get; set; }
[JsonPropertyName("folders_count")]
public uint FoldersCount { get; set; } [JsonPropertyName("folders_count")]
public uint FoldersCount { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; } [JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("parents_folder_id")]
public ulong? ParentFolderId { get; set; } [JsonPropertyName("parents_folder_id")]
public ulong? ParentFolderId { get; set; }
[JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; } [JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; }
[JsonPropertyName("unlock_at")]
public DateTime? UnlockAt { get; set; } [JsonPropertyName("unlock_at")]
public DateTime? UnlockAt { get; set; }
[JsonPropertyName("hidden")]
public bool? Hidden { get; set; } [JsonPropertyName("hidden")]
public bool? Hidden { get; set; }
[JsonPropertyName("hidden_for_user")]
public bool? HiddenForUser { get; set; } [JsonPropertyName("hidden_for_user")]
public bool? HiddenForUser { get; set; }
[JsonPropertyName("locker")]
public bool? Locked { get; set; } [JsonPropertyName("locker")]
public bool? Locked { get; set; }
[JsonPropertyName("locked_for_user")]
public bool? LockedForUser { get; set; } [JsonPropertyName("locked_for_user")]
public bool? LockedForUser { get; set; }
[JsonPropertyName("for_submissions")]
public bool? ForSubmissions { get; set; } [JsonPropertyName("for_submissions")]
} public bool? ForSubmissions { get; set; }
} }

View File

@@ -1,15 +1,15 @@
namespace Model.Files { namespace CanvasModel.Files;
public class LicenseModel { public class LicenseModel
{
[JsonPropertyName("id")]
public string Id { get; set; } [JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; } [JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("url")]
public string Url { get; set; } [JsonPropertyName("url")]
} public string Url { get; set; }
} }

View File

@@ -1,25 +1,25 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace Model.Files { namespace CanvasModel.Files;
public class UsageRightsModel { public class UsageRightsModel
{
[JsonPropertyName("legal_copyright")]
public string LegalCopyright { get; set; } [JsonPropertyName("legal_copyright")]
public string LegalCopyright { get; set; }
[JsonPropertyName("use_justification")]
public string UsageJustification { get; set; } [JsonPropertyName("use_justification")]
public string UsageJustification { get; set; }
[JsonPropertyName("license")]
public string License { get; set; } [JsonPropertyName("license")]
public string License { get; set; }
[JsonPropertyName("license_name")]
public string LicenseName { get; set; } [JsonPropertyName("license_name")]
public string LicenseName { get; set; }
[JsonPropertyName("message")]
public string Message { get; set; } [JsonPropertyName("message")]
public string Message { get; set; }
[JsonPropertyName("file_ids")]
public IEnumerable<ulong> FileIds { get; set; } [JsonPropertyName("file_ids")]
} public IEnumerable<ulong> FileIds { get; set; }
} }

View File

@@ -1,23 +1,20 @@
namespace CanvasModel.GradeChangelog;
public class GradeChangeEventLinksModel
{
[JsonPropertyName("assignment")]
public ulong Assignment { get; set; }
namespace Model.GradeChangelog { [JsonPropertyName("course")]
public ulong Course { get; set; }
public class GradeChangeEventLinksModel {
[JsonPropertyName("student")]
[JsonPropertyName("assignment")] public ulong Student { get; set; }
public ulong Assignment { get; set; }
[JsonPropertyName("grader")]
[JsonPropertyName("course")] public ulong Grader { get; set; }
public ulong Course { get; set; }
[JsonPropertyName("page_view")]
[JsonPropertyName("student")] public string? PageView { get; set; }
public ulong Student { get; set; }
[JsonPropertyName("grader")]
public ulong Grader { get; set; }
[JsonPropertyName("page_view")]
public string? PageView { get; set; }
}
} }

View File

@@ -1,42 +1,38 @@
using System;
namespace CanvasModel.GradeChangelog;
public class GradeChangeEventModel
{
[JsonPropertyName("id")]
public string Id { get; set; }
namespace Model.GradeChangelog { [JsonPropertyName("created_at")]
public DateTime CreatedAt { get; set; }
public class GradeChangeEventModel {
[JsonPropertyName("event_type")]
[JsonPropertyName("id")] public string EventType { get; set; }
public string Id { get; set; }
[JsonPropertyName("excused_after")]
[JsonPropertyName("created_at")] public bool ExcusedAfter { get; set; }
public DateTime CreatedAt { get; set; }
[JsonPropertyName("excused_before")]
[JsonPropertyName("event_type")] public bool ExcusedBefore { get; set; }
public string EventType { get; set; }
[JsonPropertyName("grade_after")]
[JsonPropertyName("excused_after")] public string GradeAfter { get; set; }
public bool ExcusedAfter { get; set; }
[JsonPropertyName("grade_before")]
[JsonPropertyName("excused_before")] public string GradeBefore { get; set; }
public bool ExcusedBefore { get; set; }
[JsonPropertyName("graded_anonymously")]
[JsonPropertyName("grade_after")] public bool? GradedAnonymously { get; set; }
public string GradeAfter { get; set; }
[JsonPropertyName("version_number")]
[JsonPropertyName("grade_before")] public string VersionNumber { get; set; }
public string GradeBefore { get; set; }
[JsonPropertyName("request_id")]
[JsonPropertyName("graded_anonymously")] public string RequestId { get; set; }
public bool? GradedAnonymously { get; set; }
[JsonPropertyName("links")]
[JsonPropertyName("version_number")] public GradeChangeEventLinksModel? Links { get; set; }
public string VersionNumber { get; set; }
[JsonPropertyName("request_id")]
public string RequestId { get; set; }
[JsonPropertyName("links")]
public GradeChangeEventLinksModel? Links { get; set; }
}
} }

View File

@@ -1,11 +1,8 @@
using System.Collections.Generic;
namespace CanvasModel.GradeChangelog;
public class RedundantGradeChangeEventResponse
{
namespace Model.GradeChangelog { [JsonPropertyName("events")]
public IEnumerable<GradeChangeEventModel> Events { get; set; }
public class RedundantGradeChangeEventResponse {
[JsonPropertyName("events")]
public IEnumerable<GradeChangeEventModel> Events { get; set; }
}
} }

View File

@@ -1,15 +1,11 @@
using System;
using System.Collections.Generic;
namespace CanvasModel.Gradebook;
public class DayModel
{
namespace Model.Gradebook { [JsonPropertyName("date")]
public DateTime Date { get; set; }
public class DayModel {
[JsonPropertyName("date")]
public DateTime Date { get; set; }
[JsonPropertyName("graders")] [JsonPropertyName("graders")]
public IEnumerable<GraderModel> Graders { get; set; } public IEnumerable<GraderModel> Graders { get; set; }
}
} }

View File

@@ -1,19 +1,17 @@
using System.Collections.Generic;
using Model.Assignments; using CanvasModel.Assignments;
namespace Model.Gradebook { namespace CanvasModel.Gradebook;
public class GraderModel
public class GraderModel { {
[JsonPropertyName("id")] [JsonPropertyName("id")]
public ulong Id { get; set; } public ulong Id { get; set; }
[JsonPropertyName("name")] [JsonPropertyName("name")]
public string Name { get; set; } public string Name { get; set; }
// the docs say this is a list of integers, but it isn't. // the docs say this is a list of integers, but it isn't.
[JsonPropertyName("assignments")] [JsonPropertyName("assignments")]
public IEnumerable<AssignmentModel> Assignments { get; set; } public IEnumerable<AssignmentModel> Assignments { get; set; }
}
} }

View File

@@ -1,15 +1,11 @@
using System.Collections.Generic;
namespace CanvasModel.Gradebook;
public class SubmissionHistoryModel
{
[JsonPropertyName("submission_id")]
public ulong SubmissionId { get; set; }
namespace Model.Gradebook { [JsonPropertyName("versions")]
public IEnumerable<SubmissionVersionModel>? Versions { get; set; }
public class SubmissionHistoryModel {
[JsonPropertyName("submission_id")]
public ulong SubmissionId { get; set; }
[JsonPropertyName("versions")]
public IEnumerable<SubmissionVersionModel>? Versions { get; set; }
}
} }

View File

@@ -1,39 +1,36 @@
using System; using CanvasModel.Submissions;
using Model.Submissions; namespace CanvasModel.Gradebook;
public class SubmissionVersionModel : SubmissionModel
{
namespace Model.Gradebook { [JsonPropertyName("assignment_name")]
public string AssignmentName { get; set; }
public class SubmissionVersionModel : SubmissionModel { [JsonPropertyName("current_grade")]
public string CurrentGrade { get; set; }
[JsonPropertyName("assignment_name")]
public string AssignmentName { get; set; } [JsonPropertyName("current_graded_at")]
public DateTime? CurrentGradedAt { get; set; }
[JsonPropertyName("current_grade")]
public string CurrentGrade { get; set; } [JsonPropertyName("current_grader")]
public string CurrentGrader { get; set; }
[JsonPropertyName("current_graded_at")]
public DateTime? CurrentGradedAt { get; set; } [JsonPropertyName("new_grade")]
public string NewGrade { get; set; }
[JsonPropertyName("current_grader")]
public string CurrentGrader { get; set; } [JsonPropertyName("new_graded_at")]
public DateTime? NewGradedAt { get; set; }
[JsonPropertyName("new_grade")]
public string NewGrade { get; set; } [JsonPropertyName("new_grader")]
public string NewGrader { get; set; }
[JsonPropertyName("new_graded_at")]
public DateTime? NewGradedAt { get; set; } [JsonPropertyName("previous_grade")]
public string PreviousGrade { get; set; }
[JsonPropertyName("new_grader")]
public string NewGrader { get; set; } [JsonPropertyName("previous_graded_at")]
public DateTime? PreviousGradedAt { get; set; }
[JsonPropertyName("previous_grade")]
public string PreviousGrade { get; set; } [JsonPropertyName("previous_grader")]
public string PreviousGrader { get; set; }
[JsonPropertyName("previous_graded_at")]
public DateTime? PreviousGradedAt { get; set; }
[JsonPropertyName("previous_grader")]
public string PreviousGrader { get; set; }
}
} }

View File

@@ -1,28 +1,26 @@
using System;
namespace CanvasModel.GradingPeriods;
public class GradingPeriodModel
{
namespace Model.GradingPeriods { [JsonPropertyName("id")]
public class GradingPeriodModel { public ulong Id { get; set; }
[JsonPropertyName("id")]
public ulong Id { get; set; }
[JsonPropertyName("title")]
public string Title { get; set; }
[JsonPropertyName("start_date")]
public DateTime? StartDate { get; set; }
[JsonPropertyName("end_date")] [JsonPropertyName("title")]
public DateTime? EndDate { get; set; } public string Title { get; set; }
[JsonPropertyName("close_date")] [JsonPropertyName("start_date")]
public DateTime? CloseDate { get; set; } public DateTime? StartDate { get; set; }
[JsonPropertyName("weight")] [JsonPropertyName("end_date")]
public double? Weight { get; set; } public DateTime? EndDate { get; set; }
[JsonPropertyName("is_closed")] [JsonPropertyName("close_date")]
public bool? IsClosed { get; set; } public DateTime? CloseDate { get; set; }
}
[JsonPropertyName("weight")]
public double? Weight { get; set; }
[JsonPropertyName("is_closed")]
public bool? IsClosed { get; set; }
} }

View File

@@ -1,9 +1,8 @@
using System.Collections.Generic;
namespace Model.GradingPeriods { namespace CanvasModel.GradingPeriods;
public class RedundantGradingPeriodResponse { public class RedundantGradingPeriodResponse
[JsonPropertyName("grading_periods")] {
public IEnumerable<GradingPeriodModel> GradingPeriods { get; set; } [JsonPropertyName("grading_periods")]
} public IEnumerable<GradingPeriodModel> GradingPeriods { get; set; }
} }

View File

@@ -1,28 +1,27 @@
namespace Model.Groups { namespace CanvasModel.Groups;
public class GroupMembershipModel
public class GroupMembershipModel { {
[JsonPropertyName("id")] [JsonPropertyName("id")]
public ulong Id { get; set; } public ulong Id { get; set; }
[JsonPropertyName("group_id")] [JsonPropertyName("group_id")]
public ulong GroupId { get; set; } public ulong GroupId { get; set; }
[JsonPropertyName("user_id")] [JsonPropertyName("user_id")]
public ulong UserId { get; set; } public ulong UserId { get; set; }
[JsonPropertyName("workflow_state")] [JsonPropertyName("workflow_state")]
public string WorkflowState { get; set; } public string WorkflowState { get; set; }
[JsonPropertyName("moderator")] [JsonPropertyName("moderator")]
public bool Moderator { get; set; } public bool Moderator { get; set; }
[JsonPropertyName("just_created")] [JsonPropertyName("just_created")]
public bool? JustCreated { get; set; } public bool? JustCreated { get; set; }
[JsonPropertyName("sis_import_id")] [JsonPropertyName("sis_import_id")]
public ulong? SisImportId { get; set; } public ulong? SisImportId { get; set; }
}
} }

View File

@@ -1,60 +1,56 @@
using System.Collections.Generic;
namespace CanvasModel.Groups;
public class GroupModel
{
[JsonPropertyName("id")]
public ulong Id { get; set; }
namespace Model.Groups { [JsonPropertyName("name")]
public string Name { get; set; }
public class GroupModel {
[JsonPropertyName("description")]
[JsonPropertyName("id")] public string? Description { get; set; }
public ulong Id { get; set; }
[JsonPropertyName("is_public")]
[JsonPropertyName("name")] public bool? IsPublic { get; set; }
public string Name { get; set; }
[JsonPropertyName("followed_by_user")]
[JsonPropertyName("description")] public bool FollowedByUser { get; set; }
public string? Description { get; set; }
[JsonPropertyName("join_level")]
[JsonPropertyName("is_public")] public string JoinLevel { get; set; }
public bool? IsPublic { get; set; }
[JsonPropertyName("members_count")]
[JsonPropertyName("followed_by_user")] public uint MembersCount { get; set; }
public bool FollowedByUser { get; set; }
[JsonPropertyName("avatar_url")]
[JsonPropertyName("join_level")] public string AvatarUrl { get; set; }
public string JoinLevel { get; set; }
[JsonPropertyName("context_type")]
[JsonPropertyName("members_count")] public string ContextType { get; set; }
public uint MembersCount { get; set; }
[JsonPropertyName("course_id")]
[JsonPropertyName("avatar_url")] public ulong? CourseId { get; set; }
public string AvatarUrl { get; set; }
[JsonPropertyName("account_id")]
[JsonPropertyName("context_type")] public ulong? AccountId { get; set; }
public string ContextType { get; set; }
[JsonPropertyName("role")]
[JsonPropertyName("course_id")] public string Role { get; set; }
public ulong? CourseId { get; set; }
[JsonPropertyName("group_category_id")]
[JsonPropertyName("account_id")] public ulong GroupCategoryId { get; set; }
public ulong? AccountId { get; set; }
[JsonPropertyName("sis_group_id")]
[JsonPropertyName("role")] public string? SisGroupId { get; set; }
public string Role { get; set; }
[JsonPropertyName("sis_import_id")]
[JsonPropertyName("group_category_id")] public ulong? SisImportId { get; set; }
public ulong GroupCategoryId { get; set; }
[JsonPropertyName("storage_quota_mb")]
[JsonPropertyName("sis_group_id")] public uint StorageQuoteMb { get; set; }
public string? SisGroupId { get; set; }
[JsonPropertyName("permissions")]
[JsonPropertyName("sis_import_id")] public Dictionary<string, bool> Permissions { get; set; }
public ulong? SisImportId { get; set; }
[JsonPropertyName("storage_quota_mb")]
public uint StorageQuoteMb { get; set; }
[JsonPropertyName("permissions")]
public Dictionary<string, bool> Permissions { get; set; }
}
} }

View File

@@ -1,16 +1,15 @@
namespace Model.Modules { namespace CanvasModel.Modules;
public class CompletionRequirementModel
public class CompletionRequirementModel { {
[JsonPropertyName("type")] [JsonPropertyName("type")]
public string Type { get; set; } public string Type { get; set; }
[JsonPropertyName("min_score")] [JsonPropertyName("min_score")]
public double? MinScore { get; set; } public double? MinScore { get; set; }
[JsonPropertyName("completed")] [JsonPropertyName("completed")]
public bool? Completed { get; set; } public bool? Completed { get; set; }
}
} }

View File

@@ -1,27 +1,23 @@
using System;
namespace CanvasModel.Modules;
public class ContentDetailsModel
{
[JsonPropertyName("points_possible")]
public uint? PointsPossible { get; set; }
namespace Model.Modules { [JsonPropertyName("due_at")]
public DateTime? DueAt { get; set; }
public class ContentDetailsModel {
[JsonPropertyName("unlock_at")]
[JsonPropertyName("points_possible")] public DateTime? UnlockAt { get; set; }
public uint? PointsPossible { get; set; }
[JsonPropertyName("lock_at")]
[JsonPropertyName("due_at")] public DateTime? LockAt { get; set; }
public DateTime? DueAt { get; set; }
[JsonPropertyName("locked_for_user")]
[JsonPropertyName("unlock_at")] public bool? LockedForUser { get; set; }
public DateTime? UnlockAt { get; set; }
[JsonPropertyName("lock_explanation")]
[JsonPropertyName("lock_at")] public string? LockExplanation { get; set; }
public DateTime? LockAt { get; set; }
[JsonPropertyName("locked_for_user")]
public bool? LockedForUser { get; set; }
[JsonPropertyName("lock_explanation")]
public string? LockExplanation { get; set; }
}
} }

View File

@@ -1,52 +1,48 @@
namespace CanvasModel.Modules;
public class ModuleItemModel
{
[JsonPropertyName("id")]
public ulong Id { get; set; }
[JsonPropertyName("module_id")]
public ulong ModuleId { get; set; }
namespace Model.Modules { [JsonPropertyName("position")]
public uint Position { get; set; }
public class ModuleItemModel {
[JsonPropertyName("title")]
[JsonPropertyName("id")] public string Title { get; set; }
public ulong Id { get; set; }
[JsonPropertyName("indent")]
[JsonPropertyName("module_id")] public uint? Indent { get; set; }
public ulong ModuleId { get; set; }
[JsonPropertyName("type")]
[JsonPropertyName("position")] public string Type { get; set; }
public uint Position { get; set; }
[JsonPropertyName("content_id")]
[JsonPropertyName("title")] public ulong? ContentId { get; set; }
public string Title { get; set; }
[JsonPropertyName("html_url")]
[JsonPropertyName("indent")] public string HtmlUrl { get; set; }
public uint? Indent { get; set; }
[JsonPropertyName("url")]
[JsonPropertyName("type")] public string? Url { get; set; }
public string Type { get; set; }
[JsonPropertyName("page_url")]
[JsonPropertyName("content_id")] public string? PageUrl { get; set; }
public ulong? ContentId { get; set; }
[JsonPropertyName("external_url")]
[JsonPropertyName("html_url")] public string? ExternalUrl { get; set; }
public string HtmlUrl { get; set; }
[JsonPropertyName("new_tab")]
[JsonPropertyName("url")] public bool NewTab { get; set; }
public string? Url { get; set; }
// [OptIn]
[JsonPropertyName("page_url")] [JsonPropertyName("completion_requirement")]
public string? PageUrl { get; set; } public CompletionRequirementModel? CompletionRequirement { get; set; }
[JsonPropertyName("external_url")] [JsonPropertyName("published")]
public string? ExternalUrl { get; set; } public bool? Published { get; set; }
[JsonPropertyName("new_tab")]
public bool NewTab { get; set; }
// [OptIn]
[JsonPropertyName("completion_requirement")]
public CompletionRequirementModel? CompletionRequirement { get; set; }
[JsonPropertyName("published")]
public bool? Published { get; set; }
}
} }

View File

@@ -1,11 +1,7 @@
using System.Collections.Generic;
namespace CanvasModel.Modules;
namespace Model.Modules { public class ModuleItemSequenceModel
{
public class ModuleItemSequenceModel { [JsonPropertyName("items")]
public IEnumerable<ModuleItemSequenceNodeModel> Items { get; set; }
[JsonPropertyName("items")]
public IEnumerable<ModuleItemSequenceNodeModel> Items { get; set; }
}
} }

View File

@@ -1,20 +1,17 @@
namespace CanvasModel.Modules;
public class ModuleItemSequenceNodeModel
{
[JsonPropertyName("prev")]
public ModuleItemModel? Prev { get; set; }
[JsonPropertyName("current")]
public ModuleItemModel Current { get; set; }
namespace Model.Modules { [JsonPropertyName("next")]
public class ModuleItemSequenceNodeModel { public ModuleItemModel? Next { get; set; }
[JsonPropertyName("prev")] [JsonPropertyName("mastery_path")]
public ModuleItemModel? Prev { get; set; } public object? MasteryPath { get; set; } // todo concrete type?
[JsonPropertyName("current")]
public ModuleItemModel Current { get; set; }
[JsonPropertyName("next")]
public ModuleItemModel? Next { get; set; }
[JsonPropertyName("mastery_path")]
public object? MasteryPath { get; set; } // todo concrete type?
}
} }

View File

@@ -1,56 +1,50 @@
using System;
using System.Collections.Generic;
namespace CanvasModel.Modules;
public class ModuleModel
{
[JsonPropertyName("id")]
public ulong Id { get; set; }
[JsonPropertyName("workflow_state")]
public string WorkflowState { get; set; }
namespace Model.Modules { [JsonPropertyName("position")]
public uint Position { get; set; }
public class ModuleModel {
[JsonPropertyName("name")]
[JsonPropertyName("id")] public string Name { get; set; }
public ulong Id { get; set; }
[JsonPropertyName("unlock_at")]
[JsonPropertyName("workflow_state")] public DateTime? UnlockAt { get; set; }
public string WorkflowState { get; set; }
[JsonPropertyName("require_sequential_progress")]
[JsonPropertyName("position")] public bool? RequireSequentialProgress { get; set; }
public uint Position { get; set; }
[JsonPropertyName("prerequisite_module_ids")]
[JsonPropertyName("name")] public IEnumerable<ulong>? PrerequisiteModuleIds { get; set; }
public string Name { get; set; }
[JsonPropertyName("items_count")]
[JsonPropertyName("unlock_at")] public uint ItemsCount { get; set; }
public DateTime? UnlockAt { get; set; }
[JsonPropertyName("items_url")]
[JsonPropertyName("require_sequential_progress")] public string ItemsUrl { get; set; }
public bool? RequireSequentialProgress { get; set; }
// [OptIn]
[JsonPropertyName("prerequisite_module_ids")] // [Enigmatic] // can be null if "the module is deemed too large", even if opted-in
public IEnumerable<ulong>? PrerequisiteModuleIds { get; set; } [JsonPropertyName("items")]
public IEnumerable<ModuleItemModel>? Items { get; set; }
[JsonPropertyName("items_count")]
public uint ItemsCount { get; set; } [JsonPropertyName("state")]
public string? State { get; set; } // todo make sure this is an enum in Structure class
[JsonPropertyName("items_url")]
public string ItemsUrl { get; set; } // [OptIn]
[JsonPropertyName("completed_at")]
// [OptIn] public DateTime? CompletedAt { get; set; }
// [Enigmatic] // can be null if "the module is deemed too large", even if opted-in
[JsonPropertyName("items")] [JsonPropertyName("publish_final_grade")]
public IEnumerable<ModuleItemModel>? Items { get; set; } public bool? PublishFinalGrade { get; set; }
[JsonPropertyName("state")] [JsonPropertyName("published")]
public string? State { get; set; } // todo make sure this is an enum in Structure class public bool? Published { get; set; }
// [OptIn]
[JsonPropertyName("completed_at")]
public DateTime? CompletedAt { get; set; }
[JsonPropertyName("publish_final_grade")]
public bool? PublishFinalGrade { get; set; }
[JsonPropertyName("published")]
public bool? Published { get; set; }
}
} }

View File

@@ -1,17 +1,14 @@
namespace CanvasModel.OutcomeResults;
public class OutcomeAlignmentModel
{
[JsonPropertyName("id")]
public string Id { get; set; }
namespace Model.OutcomeResults { [JsonPropertyName("name")]
public string Name { get; set; }
public class OutcomeAlignmentModel {
[JsonPropertyName("html_url")]
[JsonPropertyName("id")] public string? HtmlUrl { get; set; }
public string Id { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("html_url")]
public string? HtmlUrl { get; set; }
}
} }

View File

@@ -1,15 +1,10 @@
using System.Collections.Generic; namespace CanvasModel.OutcomeResults;
public struct OutcomePathModel
{
[JsonPropertyName("id")]
public ulong Id { get; set; }
[JsonPropertyName("parts")]
namespace Model.OutcomeResults { public IEnumerable<OutcomePathPartModel>? Parts { get; set; }
public struct OutcomePathModel {
[JsonPropertyName("id")]
public ulong Id { get; set; }
[JsonPropertyName("parts")]
public IEnumerable<OutcomePathPartModel>? Parts { get; set; }
}
} }

View File

@@ -1,10 +1,9 @@
namespace Model.OutcomeResults { namespace CanvasModel.OutcomeResults;
public struct OutcomePathPartModel
public struct OutcomePathPartModel { {
[JsonPropertyName("name")] [JsonPropertyName("name")]
public string Name { get; set; } public string Name { get; set; }
}
} }

View File

@@ -1,24 +1,21 @@
using System;
using System.Collections.Generic;
namespace Model.OutcomeResults { namespace CanvasModel.OutcomeResults;
public class OutcomeResultModel
public class OutcomeResultModel { {
[JsonPropertyName("id")] [JsonPropertyName("id")]
public ulong Id { get; set; } public ulong Id { get; set; }
[JsonPropertyName("score")] [JsonPropertyName("score")]
public double Score { get; set; } public double Score { get; set; }
[JsonPropertyName("submitted_or_assessed_at")] [JsonPropertyName("submitted_or_assessed_at")]
public DateTime SubmittedOrAssessedAt { get; set; } public DateTime SubmittedOrAssessedAt { get; set; }
[JsonPropertyName("links")] [JsonPropertyName("links")]
public Dictionary<string, object> Links { get; set; } // todo public Dictionary<string, object> Links { get; set; } // todo
[JsonPropertyName("percent")] [JsonPropertyName("percent")]
public decimal Percent { get; set; } public decimal Percent { get; set; }
}
} }

View File

@@ -1,16 +1,15 @@
namespace Model.OutcomeResults { namespace CanvasModel.OutcomeResults;
public class OutcomeRollupLinksModel
public class OutcomeRollupLinksModel { {
[JsonPropertyName("course")] [JsonPropertyName("course")]
public ulong? Course { get; set; } public ulong? Course { get; set; }
[JsonPropertyName("user")] [JsonPropertyName("user")]
public ulong? User { get; set; } public ulong? User { get; set; }
[JsonPropertyName("section")] [JsonPropertyName("section")]
public ulong? Section { get; set; } public ulong? Section { get; set; }
}
} }

View File

@@ -1,18 +1,15 @@
using System.Collections.Generic;
namespace CanvasModel.OutcomeResults;
public class OutcomeRollupModel
{
namespace Model.OutcomeResults { [JsonPropertyName("scores")]
public IEnumerable<OutcomeRollupScoreModel>? Scores { get; set; }
public class OutcomeRollupModel {
[JsonPropertyName("name")]
[JsonPropertyName("scores")] public string Name { get; set; }
public IEnumerable<OutcomeRollupScoreModel>? Scores { get; set; }
[JsonPropertyName("links")]
[JsonPropertyName("name")] public OutcomeRollupLinksModel Links { get; set; }
public string Name { get; set; }
[JsonPropertyName("links")]
public OutcomeRollupLinksModel Links { get; set; }
}
} }

View File

@@ -1,10 +1,9 @@
namespace Model.OutcomeResults { namespace CanvasModel.OutcomeResults;
public class OutcomeRollupScoreLinksModel
public class OutcomeRollupScoreLinksModel { {
[JsonPropertyName("outcome")] [JsonPropertyName("outcome")]
public ulong Outcome { get; set; } public ulong Outcome { get; set; }
}
} }

View File

@@ -1,16 +1,15 @@
namespace Model.OutcomeResults { namespace CanvasModel.OutcomeResults;
public class OutcomeRollupScoreModel
public class OutcomeRollupScoreModel { {
[JsonPropertyName("score")] [JsonPropertyName("score")]
public double? Score { get; set; } public double? Score { get; set; }
[JsonPropertyName("count")] [JsonPropertyName("count")]
public uint? Count { get; set; } public uint? Count { get; set; }
[JsonPropertyName("links")] [JsonPropertyName("links")]
public OutcomeRollupScoreLinksModel Links { get; set; } public OutcomeRollupScoreLinksModel Links { get; set; }
}
} }

View File

@@ -1,50 +1,46 @@
using System; using CanvasModel.Assignments;
using CanvasModel.Users;
namespace CanvasModel.Pages;
public class PageModel
{
using Model.Assignments; [JsonPropertyName("url")]
using Model.Users; public string Url { get; set; }
namespace Model.Pages { [JsonPropertyName("title")]
public string Title { get; set; }
public class PageModel {
[JsonPropertyName("created_at")]
[JsonPropertyName("url")] public DateTime CreatedAt { get; set; }
public string Url { get; set; }
[JsonPropertyName("updated_at")]
[JsonPropertyName("title")] public DateTime UpdatedAt { get; set; }
public string Title { get; set; }
[JsonPropertyName("editing_roles")]
[JsonPropertyName("created_at")] public string EditingRoles { get; set; }
public DateTime CreatedAt { get; set; }
[JsonPropertyName("last_edited_by")]
[JsonPropertyName("updated_at")] public UserDisplayModel LastEditedBy { get; set; }
public DateTime UpdatedAt { get; set; }
[JsonPropertyName("body")]
[JsonPropertyName("editing_roles")] public string? Body { get; set; }
public string EditingRoles { get; set; }
[JsonPropertyName("published")]
[JsonPropertyName("last_edited_by")] public bool Published { get; set; }
public UserDisplayModel LastEditedBy { get; set; }
[JsonPropertyName("front_page")]
[JsonPropertyName("body")] public bool FrontPage { get; set; }
public string? Body { get; set; }
[JsonPropertyName("locked_for_user")]
[JsonPropertyName("published")] public bool LockedForUser { get; set; }
public bool Published { get; set; }
[JsonPropertyName("lock_info")]
[JsonPropertyName("front_page")] public LockInfoModel? LockInfo { get; set; }
public bool FrontPage { get; set; }
[JsonPropertyName("lock_explanation")]
[JsonPropertyName("locked_for_user")] public string? LockExplanation { get; set; }
public bool LockedForUser { get; set; }
[JsonPropertyName("page_id")]
[JsonPropertyName("lock_info")] public string PageId { get; set; }
public LockInfoModel? LockInfo { get; set; }
[JsonPropertyName("lock_explanation")]
public string? LockExplanation { get; set; }
[JsonPropertyName("page_id")]
public string PageId { get; set; }
}
} }

View File

@@ -1,30 +1,27 @@
using System; using CanvasModel.Users;
namespace CanvasModel.Pages;
public class PageRevisionModel
{
using Model.Users; [JsonPropertyName("revision_id")]
public ulong RevisionId { get; set; }
namespace Model.Pages { [JsonPropertyName("updated_at")]
public class PageRevisionModel { public DateTime UpdatedAt { get; set; }
[JsonPropertyName("revision_id")] [JsonPropertyName("latest")]
public ulong RevisionId { get; set; } public bool Latest { get; set; }
[JsonPropertyName("updated_at")] [JsonPropertyName("edited_by")]
public DateTime UpdatedAt { get; set; } public UserDisplayModel? EditedBy { get; set; }
[JsonPropertyName("latest")] [JsonPropertyName("url")]
public bool Latest { get; set; } public string? Url { get; set; }
[JsonPropertyName("edited_by")] [JsonPropertyName("title")]
public UserDisplayModel? EditedBy { get; set; } public string? Title { get; set; }
[JsonPropertyName("url")] [JsonPropertyName("body")]
public string? Url { get; set; } public string? Body { get; set; }
[JsonPropertyName("title")]
public string? Title { get; set; }
[JsonPropertyName("body")]
public string? Body { get; set; }
}
} }

View File

@@ -1,10 +1,7 @@
using System.Collections.Generic;
namespace CanvasModel.ProficiencyRatings;
namespace Model.ProficiencyRatings { public struct ProficiencyModel
{
public struct ProficiencyModel { [JsonPropertyName("ratings")]
[JsonPropertyName("ratings")] public IEnumerable<ProficiencyRatingModel> Ratings { get; set; }
public IEnumerable<ProficiencyRatingModel> Ratings { get; set; }
}
} }

View File

@@ -1,19 +1,18 @@
namespace Model.ProficiencyRatings { namespace CanvasModel.ProficiencyRatings;
public class ProficiencyRatingModel
public class ProficiencyRatingModel { {
[JsonPropertyName("description")] [JsonPropertyName("description")]
public string Description { get; set; } public string Description { get; set; }
[JsonPropertyName("points")] [JsonPropertyName("points")]
public double Points { get; set; } public double Points { get; set; }
[JsonPropertyName("mastery")] [JsonPropertyName("mastery")]
public bool Mastery { get; set; } public bool Mastery { get; set; }
[JsonPropertyName("color")] [JsonPropertyName("color")]
public string Color { get; set; } public string Color { get; set; }
}
} }

View File

@@ -1,128 +1,124 @@
using System;
using System.Collections.Generic;
using CanvasModel.Assignments;
using Model.Assignments; namespace CanvasModel.Quizzes;
public class QuizModel
{
namespace Model.Quizzes { [JsonPropertyName("id")]
public ulong Id { get; set; }
public class QuizModel {
[JsonPropertyName("title")]
[JsonPropertyName("id")] public string Title { get; set; }
public ulong Id { get; set; }
[JsonPropertyName("html_url")]
[JsonPropertyName("title")] public string HtmlUrl { get; set; }
public string Title { get; set; }
[JsonPropertyName("mobile_url")]
[JsonPropertyName("html_url")] public string MobileUrl { get; set; }
public string HtmlUrl { get; set; }
[JsonPropertyName("preview_url")]
[JsonPropertyName("mobile_url")] public string PreviewUrl { get; set; }
public string MobileUrl { get; set; }
[JsonPropertyName("description")]
[JsonPropertyName("preview_url")] public string Description { get; set; }
public string PreviewUrl { get; set; }
[JsonPropertyName("quiz_type")]
[JsonPropertyName("description")] public string QuizType { get; set; }
public string Description { get; set; }
[JsonPropertyName("assignment_group_id")]
[JsonPropertyName("quiz_type")] public ulong AssignmentGroupId { get; set; }
public string QuizType { get; set; }
[JsonPropertyName("time_limit")]
[JsonPropertyName("assignment_group_id")] public decimal? TimeLimit { get; set; }
public ulong AssignmentGroupId { get; set; }
[JsonPropertyName("shuffle_answers")]
[JsonPropertyName("time_limit")] public bool? ShuffleAnswers { get; set; }
public decimal? TimeLimit { get; set; }
[JsonPropertyName("hide_results")]
[JsonPropertyName("shuffle_answers")] public string? HideResults { get; set; }
public bool? ShuffleAnswers { get; set; }
[JsonPropertyName("show_correct_answers")]
[JsonPropertyName("hide_results")] public bool? ShowCorrectAnswers { get; set; }
public string? HideResults { get; set; }
[JsonPropertyName("show_correct_answers_last_attempt")]
[JsonPropertyName("show_correct_answers")] public bool? ShowCorrectAnswersLastAttempt { get; set; }
public bool? ShowCorrectAnswers { get; set; }
[JsonPropertyName("show_correct_answers_at")]
[JsonPropertyName("show_correct_answers_last_attempt")] public DateTime? ShowCorrectAnswersAt { get; set; }
public bool? ShowCorrectAnswersLastAttempt { get; set; }
[JsonPropertyName("hide_correct_answers_at")]
[JsonPropertyName("show_correct_answers_at")] public DateTime? HideCorrectAnswersAt { get; set; }
public DateTime? ShowCorrectAnswersAt { get; set; }
[JsonPropertyName("one_time_results")]
[JsonPropertyName("hide_correct_answers_at")] public bool? OneTimeResults { get; set; }
public DateTime? HideCorrectAnswersAt { get; set; }
[JsonPropertyName("scoring_policy")]
[JsonPropertyName("one_time_results")] public string? ScoringPolicy { get; set; }
public bool? OneTimeResults { get; set; }
[JsonPropertyName("allowed_attempts")]
[JsonPropertyName("scoring_policy")] public int AllowedAttempts { get; set; }
public string? ScoringPolicy { get; set; }
[JsonPropertyName("one_question_at_a_time")]
[JsonPropertyName("allowed_attempts")] public bool? OneQuestionAtATime { get; set; }
public int AllowedAttempts { get; set; }
[JsonPropertyName("question_count")]
[JsonPropertyName("one_question_at_a_time")] public uint? QuestionCount { get; set; }
public bool? OneQuestionAtATime { get; set; }
[JsonPropertyName("points_possible")]
[JsonPropertyName("question_count")] public decimal? PointsPossible { get; set; }
public uint? QuestionCount { get; set; }
[JsonPropertyName("cant_go_back")]
[JsonPropertyName("points_possible")] public bool? CantGoBack { get; set; }
public decimal? PointsPossible { get; set; }
[JsonPropertyName("access_code")]
[JsonPropertyName("cant_go_back")] public string? AccessCode { get; set; }
public bool? CantGoBack { get; set; }
[JsonPropertyName("ip_filter")]
[JsonPropertyName("access_code")] public string? IpFilter { get; set; }
public string? AccessCode { get; set; }
[JsonPropertyName("due_at")]
[JsonPropertyName("ip_filter")] public DateTime? DueAt { get; set; }
public string? IpFilter { get; set; }
[JsonPropertyName("lock_at")]
[JsonPropertyName("due_at")] public DateTime? LockAt { get; set; }
public DateTime? DueAt { get; set; }
[JsonPropertyName("unlock_at")]
[JsonPropertyName("lock_at")] public DateTime? UnlockAt { get; set; }
public DateTime? LockAt { get; set; }
[JsonPropertyName("published")]
[JsonPropertyName("unlock_at")] public bool? Published { get; set; }
public DateTime? UnlockAt { get; set; }
[JsonPropertyName("unpublishable")]
[JsonPropertyName("published")] public bool? Unpublishable { get; set; }
public bool? Published { get; set; }
[JsonPropertyName("locked_for_user")]
[JsonPropertyName("unpublishable")] public bool? LockedForUser { get; set; }
public bool? Unpublishable { get; set; }
[JsonPropertyName("lock_info")]
[JsonPropertyName("locked_for_user")] public LockInfoModel? LockInfo { get; set; }
public bool? LockedForUser { get; set; }
[JsonPropertyName("lock_explanation")]
[JsonPropertyName("lock_info")] public string? LockExplanation { get; set; }
public LockInfoModel? LockInfo { get; set; }
[JsonPropertyName("speedgrader_url")]
[JsonPropertyName("lock_explanation")] public string? SpeedGraderUrl { get; set; }
public string? LockExplanation { get; set; }
[JsonPropertyName("quiz_extensions_url")]
[JsonPropertyName("speedgrader_url")] public string QuizExtensionsUrl { get; set; }
public string? SpeedGraderUrl { get; set; }
[JsonPropertyName("permissions")]
[JsonPropertyName("quiz_extensions_url")] public QuizPermissionsModel Permissions { get; set; }
public string QuizExtensionsUrl { get; set; }
[JsonPropertyName("all_dates")]
[JsonPropertyName("permissions")] public object AllDates { get; set; } // exact type unspecified by canvas & no example value given
public QuizPermissionsModel Permissions { get; set; }
[JsonPropertyName("version_number")]
[JsonPropertyName("all_dates")] public uint? VersionNumber { get; set; }
public object AllDates { get; set; } // exact type unspecified by canvas & no example value given
[JsonPropertyName("question_types")]
[JsonPropertyName("version_number")] public IEnumerable<string> QuestionTypes { get; set; }
public uint? VersionNumber { get; set; }
[JsonPropertyName("anonymous_submissions")]
[JsonPropertyName("question_types")] public bool? AnonymousSubmissions { get; set; }
public IEnumerable<string> QuestionTypes { get; set; }
[JsonPropertyName("anonymous_submissions")]
public bool? AnonymousSubmissions { get; set; }
}
} }

View File

@@ -1,28 +1,27 @@
namespace Model.Quizzes { namespace CanvasModel.Quizzes;
public class QuizPermissionsModel
public class QuizPermissionsModel { {
[JsonPropertyName("read")] [JsonPropertyName("read")]
public bool Read { get; set; } public bool Read { get; set; }
[JsonPropertyName("submit")] [JsonPropertyName("submit")]
public bool Submit { get; set; } public bool Submit { get; set; }
[JsonPropertyName("create")] [JsonPropertyName("create")]
public bool Create { get; set; } public bool Create { get; set; }
[JsonPropertyName("manage")] [JsonPropertyName("manage")]
public bool Manage { get; set; } public bool Manage { get; set; }
[JsonPropertyName("read_statistics")] [JsonPropertyName("read_statistics")]
public bool ReadStatistics { get; set; } public bool ReadStatistics { get; set; }
[JsonPropertyName("review_grades")] [JsonPropertyName("review_grades")]
public bool ReviewGrades { get; set; } public bool ReviewGrades { get; set; }
[JsonPropertyName("update")] [JsonPropertyName("update")]
public bool Update { get; set; } public bool Update { get; set; }
}
} }

View File

@@ -1,29 +1,24 @@
using System.Collections.Generic;
namespace CanvasModel.Reports;
public class ReportDescriptionModel
{
[JsonPropertyName("report")]
public string Report { get; set; }
namespace Model.Reports { [JsonPropertyName("title")]
public string Title { get; set; }
// ReSharper disable MemberCanBePrivate.Global
// ReSharper disable ClassNeverInstantiated.Global
public class ReportDescriptionModel {
[JsonPropertyName("report")]
public string Report { get; set; }
[JsonPropertyName("title")]
public string Title { get; set; }
[JsonPropertyName("parameters")] [JsonPropertyName("parameters")]
public Dictionary<string, ReportParameterDescriptionModel>? Parameters { get; set; } public Dictionary<string, ReportParameterDescriptionModel>? Parameters { get; set; }
} }
public class ReportParameterDescriptionModel { public class ReportParameterDescriptionModel
{
[JsonPropertyName("description")]
public string Description { get; set; } [JsonPropertyName("description")]
public string Description { get; set; }
[JsonPropertyName("required")]
public bool Required { get; set; } [JsonPropertyName("required")]
} public bool Required { get; set; }
} }

View File

@@ -1,47 +1,42 @@
using System;
using System.Collections.Generic;
using CanvasModel.Discussions;
namespace CanvasModel.Reports;
public class ReportModel
{
using Model.Discussions; [JsonPropertyName("id")]
public ulong Id { get; set; }
namespace Model.Reports { [JsonPropertyName("report")]
public string Report { get; set; }
public class ReportModel {
[JsonPropertyName("file_url")]
[JsonPropertyName("id")] public string? FileUrl { get; set; }
public ulong Id { get; set; }
[JsonPropertyName("attachment")]
[JsonPropertyName("report")] public FileAttachmentModel? Attachment { get; set; }
public string Report { get; set; }
[JsonPropertyName("status")]
[JsonPropertyName("file_url")] public string Status { get; set; }
public string? FileUrl { get; set; }
[JsonPropertyName("created_at")]
[JsonPropertyName("attachment")] public DateTime? CreatedAt { get; set; }
public FileAttachmentModel? Attachment { get; set; }
[JsonPropertyName("started_at")]
[JsonPropertyName("status")] public DateTime? StartedAt { get; set; }
public string Status { get; set; }
[JsonPropertyName("ended_at")]
[JsonPropertyName("created_at")] public DateTime? EndedAt { get; set; }
public DateTime? CreatedAt { get; set; }
// the fields in this object can vary wildly depending on the report type, so for now we will loosely type it
[JsonPropertyName("started_at")] // like this
public DateTime? StartedAt { get; set; } [JsonPropertyName("parameters")]
public Dictionary<string, object> Parameters { get; set; }
[JsonPropertyName("ended_at")]
public DateTime? EndedAt { get; set; } [JsonPropertyName("progress")]
public double? Progress { get; set; }
// the fields in this object can vary wildly depending on the report type, so for now we will loosely type it
// like this [JsonPropertyName("current_line")]
[JsonPropertyName("parameters")] public ulong? CurrentLine { get; set; }
public Dictionary<string, object> Parameters { get; set; }
[JsonPropertyName("progress")]
public double? Progress { get; set; }
[JsonPropertyName("current_line")]
public ulong? CurrentLine { get; set; }
}
} }

View File

@@ -1,26 +1,24 @@
namespace CanvasModel.Results;
public class ResultModel
{
// yes indeed the docs say this model specifically uses camelCase properties
namespace Model.Results { [JsonPropertyName("id")]
public string Id { get; set; }
public class ResultModel {
// yes indeed the docs say this model specifically uses camelCase properties
[JsonPropertyName("id")] [JsonPropertyName("userId")]
public string Id { get; set; } public string UserId { get; set; }
[JsonPropertyName("userId")] [JsonPropertyName("resultScore")]
public string UserId { get; set; } public string ResultScore { get; set; }
[JsonPropertyName("resultScore")] [JsonPropertyName("resultMaximum")]
public string ResultScore { get; set; } public string ResultMaximum { get; set; }
[JsonPropertyName("resultMaximum")] [JsonPropertyName("comment")]
public string ResultMaximum { get; set; } public string Comment { get; set; }
[JsonPropertyName("comment")] [JsonPropertyName("scoreOf")]
public string Comment { get; set; } public string ScoreOf { get; set; }
[JsonPropertyName("scoreOf")]
public string ScoreOf { get; set; }
}
} }

View File

@@ -1,24 +1,22 @@
using System.Collections.Generic;
using Model.Accounts; using CanvasModel.Accounts;
namespace Model.Roles { namespace CanvasModel.Roles;
public class RoleModel
public class RoleModel { {
[JsonPropertyName("label")] [JsonPropertyName("label")]
public string Label { get; set; } public string Label { get; set; }
[JsonPropertyName("base_role_type")] [JsonPropertyName("base_role_type")]
public string BaseRoleType { get; set; } public string BaseRoleType { get; set; }
[JsonPropertyName("account")] [JsonPropertyName("account")]
public AccountModel Account { get; set; } public AccountModel Account { get; set; }
[JsonPropertyName("workflow_state")] [JsonPropertyName("workflow_state")]
public string WorkflowState { get; set; } public string WorkflowState { get; set; }
[JsonPropertyName("permissions")] [JsonPropertyName("permissions")]
public Dictionary<string, RolePermissionsModel> Permissions { get; set; } public Dictionary<string, RolePermissionsModel> Permissions { get; set; }
}
} }

Some files were not shown because too many files have changed in this diff Show More