|
| 1 | +namespace Schema.NET |
| 2 | +{ |
| 3 | + using System; |
| 4 | + using System.Runtime.Serialization; |
| 5 | + using Newtonsoft.Json; |
| 6 | + |
| 7 | + /// <summary> |
| 8 | + /// A description of an educational course which may be offered as distinct instances at which take place at different times or take place at different locations, or be offered through different media or modes of study. An educational course is a sequence of one or more educational events and/or creative works which aims to build knowledge, competence or ability of learners. |
| 9 | + /// </summary> |
| 10 | + public partial interface ICourse : ICreativeWork |
| 11 | + { |
| 12 | + /// <summary> |
| 13 | + /// The identifier for the <a class="localLink" href="https://schema.org/Course">Course</a> used by the course <a class="localLink" href="https://schema.org/provider">provider</a> (e.g. CS101 or 6.001). |
| 14 | + /// </summary> |
| 15 | + OneOrMany<string> CourseCode { get; set; } |
| 16 | + |
| 17 | + /// <summary> |
| 18 | + /// Requirements for taking the Course. May be completion of another <a class="localLink" href="https://schema.org/Course">Course</a> or a textual description like "permission of instructor". Requirements may be a pre-requisite competency, referenced using <a class="localLink" href="https://schema.org/AlignmentObject">AlignmentObject</a>. |
| 19 | + /// </summary> |
| 20 | + Values<IAlignmentObject, ICourse, string> CoursePrerequisites { get; set; } |
| 21 | + |
| 22 | + /// <summary> |
| 23 | + /// A description of the qualification, award, certificate, diploma or other educational credential awarded as a consequence of successful completion of this course or program. |
| 24 | + /// </summary> |
| 25 | + Values<string, Uri> EducationalCredentialAwarded { get; set; } |
| 26 | + |
| 27 | + /// <summary> |
| 28 | + /// An offering of the course at a specific time and place or through specific media or mode of study or to a specific section of students. |
| 29 | + /// </summary> |
| 30 | + OneOrMany<ICourseInstance> HasCourseInstance { get; set; } |
| 31 | + |
| 32 | + /// <summary> |
| 33 | + /// The number of credits or units awarded by a Course or required to complete an EducationalOccupationalProgram. |
| 34 | + /// </summary> |
| 35 | + Values<int?, IStructuredValue> NumberOfCredits { get; set; } |
| 36 | + |
| 37 | + /// <summary> |
| 38 | + /// A description of the qualification, award, certificate, diploma or other occupational credential awarded as a consequence of successful completion of this course or program. |
| 39 | + /// </summary> |
| 40 | + Values<string, Uri> OccupationalCredentialAwarded { get; set; } |
| 41 | + } |
| 42 | + |
| 43 | + /// <summary> |
| 44 | + /// A description of an educational course which may be offered as distinct instances at which take place at different times or take place at different locations, or be offered through different media or modes of study. An educational course is a sequence of one or more educational events and/or creative works which aims to build knowledge, competence or ability of learners. |
| 45 | + /// </summary> |
| 46 | + [DataContract] |
| 47 | + public partial class Course : CreativeWork, ICourse, IEquatable<Course> |
| 48 | + { |
| 49 | + /// <summary> |
| 50 | + /// Gets the name of the type as specified by schema.org. |
| 51 | + /// </summary> |
| 52 | + [DataMember(Name = "@type", Order = 1)] |
| 53 | + public override string Type => "Course"; |
| 54 | + |
| 55 | + /// <summary> |
| 56 | + /// The identifier for the <a class="localLink" href="https://schema.org/Course">Course</a> used by the course <a class="localLink" href="https://schema.org/provider">provider</a> (e.g. CS101 or 6.001). |
| 57 | + /// </summary> |
| 58 | + [DataMember(Name = "courseCode", Order = 206)] |
| 59 | + [JsonConverter(typeof(ValuesJsonConverter))] |
| 60 | + public OneOrMany<string> CourseCode { get; set; } |
| 61 | + |
| 62 | + /// <summary> |
| 63 | + /// Requirements for taking the Course. May be completion of another <a class="localLink" href="https://schema.org/Course">Course</a> or a textual description like "permission of instructor". Requirements may be a pre-requisite competency, referenced using <a class="localLink" href="https://schema.org/AlignmentObject">AlignmentObject</a>. |
| 64 | + /// </summary> |
| 65 | + [DataMember(Name = "coursePrerequisites", Order = 207)] |
| 66 | + [JsonConverter(typeof(ValuesJsonConverter))] |
| 67 | + public Values<IAlignmentObject, ICourse, string> CoursePrerequisites { get; set; } |
| 68 | + |
| 69 | + /// <summary> |
| 70 | + /// A description of the qualification, award, certificate, diploma or other educational credential awarded as a consequence of successful completion of this course or program. |
| 71 | + /// </summary> |
| 72 | + [DataMember(Name = "educationalCredentialAwarded", Order = 208)] |
| 73 | + [JsonConverter(typeof(ValuesJsonConverter))] |
| 74 | + public Values<string, Uri> EducationalCredentialAwarded { get; set; } |
| 75 | + |
| 76 | + /// <summary> |
| 77 | + /// An offering of the course at a specific time and place or through specific media or mode of study or to a specific section of students. |
| 78 | + /// </summary> |
| 79 | + [DataMember(Name = "hasCourseInstance", Order = 209)] |
| 80 | + [JsonConverter(typeof(ValuesJsonConverter))] |
| 81 | + public OneOrMany<ICourseInstance> HasCourseInstance { get; set; } |
| 82 | + |
| 83 | + /// <summary> |
| 84 | + /// The number of credits or units awarded by a Course or required to complete an EducationalOccupationalProgram. |
| 85 | + /// </summary> |
| 86 | + [DataMember(Name = "numberOfCredits", Order = 210)] |
| 87 | + [JsonConverter(typeof(ValuesJsonConverter))] |
| 88 | + public Values<int?, IStructuredValue> NumberOfCredits { get; set; } |
| 89 | + |
| 90 | + /// <summary> |
| 91 | + /// A description of the qualification, award, certificate, diploma or other occupational credential awarded as a consequence of successful completion of this course or program. |
| 92 | + /// </summary> |
| 93 | + [DataMember(Name = "occupationalCredentialAwarded", Order = 211)] |
| 94 | + [JsonConverter(typeof(ValuesJsonConverter))] |
| 95 | + public Values<string, Uri> OccupationalCredentialAwarded { get; set; } |
| 96 | + |
| 97 | + /// <inheritdoc/> |
| 98 | + public bool Equals(Course other) |
| 99 | + { |
| 100 | + if (other is null) |
| 101 | + { |
| 102 | + return false; |
| 103 | + } |
| 104 | + |
| 105 | + if (ReferenceEquals(this, other)) |
| 106 | + { |
| 107 | + return true; |
| 108 | + } |
| 109 | + |
| 110 | + return this.Type == other.Type && |
| 111 | + this.CourseCode == other.CourseCode && |
| 112 | + this.CoursePrerequisites == other.CoursePrerequisites && |
| 113 | + this.EducationalCredentialAwarded == other.EducationalCredentialAwarded && |
| 114 | + this.HasCourseInstance == other.HasCourseInstance && |
| 115 | + this.NumberOfCredits == other.NumberOfCredits && |
| 116 | + this.OccupationalCredentialAwarded == other.OccupationalCredentialAwarded && |
| 117 | + base.Equals(other); |
| 118 | + } |
| 119 | + |
| 120 | + /// <inheritdoc/> |
| 121 | + public override bool Equals(object obj) => this.Equals(obj as Course); |
| 122 | + |
| 123 | + /// <inheritdoc/> |
| 124 | + public override int GetHashCode() => HashCode.Of(this.Type) |
| 125 | + .And(this.CourseCode) |
| 126 | + .And(this.CoursePrerequisites) |
| 127 | + .And(this.EducationalCredentialAwarded) |
| 128 | + .And(this.HasCourseInstance) |
| 129 | + .And(this.NumberOfCredits) |
| 130 | + .And(this.OccupationalCredentialAwarded) |
| 131 | + .And(base.GetHashCode()); |
| 132 | + } |
| 133 | +} |
0 commit comments