Skip to content

Commit 3099417

Browse files
committed
Random stuff, mostly making code more readable.
1 parent 984aacf commit 3099417

File tree

19 files changed

+147
-40
lines changed

19 files changed

+147
-40
lines changed

bin/MataSharp.XML

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

bin/MataSharp.dll

1.5 KB
Binary file not shown.

src/MataSharp/Assignment.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ internal partial struct AssignmentFolderItem
104104
{
105105
public uint? Beoordeling { get; set; }
106106
public Attachment[] Bijlagen { get; set; }
107-
public MagisterStylePerson[] Docenten { get; set; }
107+
public List<MagisterStylePerson> Docenten { get; set; }
108108
public int Id { get; set; }
109109
public string IngeleverdOp { get; set; }
110110
public string InleverenVoor { get; set; }
@@ -133,7 +133,7 @@ public Assignment toAssignment()
133133
{
134134
Grade = this.Beoordeling,
135135
Attachments = this.Bijlagen.ToList(AttachmentType.Assignment_teacher),
136-
Teachers = this.Docenten.ToList().ConvertAll(p => p.ToPerson(true)),
136+
Teachers = this.Docenten.ConvertAll(p => p.ToPerson(true)),
137137
ID = this.Id,
138138
HandInTime = this.IngeleverdOp.ToDateTime(),
139139
DeadLine = this.InleverenVoor.ToDateTime(),

src/MataSharp/Attachment.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,8 @@ public string Download(bool AddUserID, string Directory = "")
6363

6464
public int CompareTo(Attachment other)
6565
{
66-
return this.Name.CompareTo(other.Name);
66+
var nameCompared = this.Name.CompareTo(other.Name);
67+
return (nameCompared != 0) ? nameCompared : this.Date.CompareTo(other.Date);
6768
}
6869
}
6970

src/MataSharp/Conversions.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,33 @@ public static List<Attachment> ToList(this Attachment[] currentArray, Attachment
2626
tmpList.ForEach(a => a.Type = AttachmentType);
2727
return tmpList;
2828
}
29+
30+
/// <summary>
31+
/// Converts the current DateTime instance to a string.
32+
/// </summary>
33+
/// <returns>The current DateTime instance as string.</returns>
34+
public static string ToUTCString(this DateTime original)
35+
{
36+
return original.ToString("yyyy-MM-ddTHH:mm:ss.0000000Z");
37+
}
38+
39+
/// <summary>
40+
/// Gets the DayOfWeek from the current DateTime instance in Dutch.
41+
/// </summary>
42+
/// <returns>Dutch day of week that represents the day of the current DateTime instance.</returns>
43+
public static string DayOfWeekDutch(this DateTime Date)
44+
{
45+
switch(Date.DayOfWeek)
46+
{
47+
case DayOfWeek.Monday: return "maandag";
48+
case DayOfWeek.Tuesday: return "dinsdag";
49+
case DayOfWeek.Wednesday: return "woensdag";
50+
case DayOfWeek.Thursday: return "donderdag";
51+
case DayOfWeek.Friday: return "vrijdag";
52+
case DayOfWeek.Saturday: return "zaterdag";
53+
case DayOfWeek.Sunday: return "zondag";
54+
default: return "";
55+
}
56+
}
2957
}
3058
}

src/MataSharp/Homework.cs

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ internal Huiswerk ToMagisterStyle()
4646
AantekeningLeerling = this.Notes,
4747
Afgerond = this.Done,
4848
Id = this.ID,
49-
Docenten = this.Teachers.ConvertAll(p => p.ToMagisterStyle()).ToArray(),
50-
Einde = this.End.ToString("yyyy-MM-ddTHH:mm:ss.0000000Z"),
51-
Start = this.Start.ToString("yyyy-MM-ddTHH:mm:ss.0000000Z"),
49+
Docenten = this.Teachers.ConvertAll(p => p.ToMagisterStyle()),
50+
Einde = this.End.ToUTCString(),
51+
Start = this.Start.ToUTCString(),
5252
InfoType = this.InfoType,
5353
Inhoud = this.Content,
5454
LesuurTM = this.EndBySchoolHour,
@@ -60,6 +60,11 @@ internal Huiswerk ToMagisterStyle()
6060
};
6161
}
6262

63+
public override string ToString()
64+
{
65+
return "Class: " + this.ClassAbbreviation + "\nStart: " + this.Start.ToString() + "\nEnd: " + this.End.ToString() + "\nDone: " + this.Done + "\nContent: " + this.Content;
66+
}
67+
6368
public int CompareTo(Homework other)
6469
{
6570
return this.Start.CompareTo(other.Start);
@@ -108,7 +113,7 @@ internal partial class Huiswerk
108113
{
109114
public string AantekeningLeerling { get; set; }
110115
public bool Afgerond { get; set; }
111-
public MagisterStylePerson[] Docenten { get; set; }
116+
public List<MagisterStylePerson> Docenten { get; set; }
112117
public string Einde { get; set; }
113118
public int Id { get; set; }
114119
public int InfoType { get; set; }
@@ -127,7 +132,7 @@ public Homework ToHomework()
127132
{
128133
Notes = this.AantekeningLeerling,
129134
_Done = this.Afgerond,
130-
Teachers = this.Docenten.ToList().ConvertAll(p => p.ToPerson(true)),
135+
Teachers = this.Docenten.ConvertAll(p => p.ToPerson(true)),
131136
End = this.Einde.ToDateTime(),
132137
ID = this.Id,
133138
InfoType = this.InfoType,

src/MataSharp/MagisterMessage.cs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
namespace MataSharp
99
{
10-
public partial class MagisterMessage : IComparable<MagisterMessage>
10+
public partial class MagisterMessage : IComparable<MagisterMessage>, ICloneable
1111
{
1212
#region Contents
1313
public int ID { get; set; }
@@ -123,21 +123,6 @@ public MagisterMessage(Mata Mata)
123123
this.CC = new List<MagisterPerson>();
124124
}
125125

126-
internal static string DayOfWeekToString(DayOfWeek dayOfWeek)
127-
{
128-
switch(dayOfWeek)
129-
{
130-
case DayOfWeek.Monday: return "maandag";
131-
case DayOfWeek.Tuesday: return "dinsdag";
132-
case DayOfWeek.Wednesday: return "woensdag";
133-
case DayOfWeek.Thursday: return "donderdag";
134-
case DayOfWeek.Friday: return "vrijdag";
135-
case DayOfWeek.Saturday:return "zaterdag";
136-
case DayOfWeek.Sunday: return "zondag";
137-
default: return "";
138-
}
139-
}
140-
141126
/// <summary>
142127
/// Creates new MagisterMessage that forwards the current message.
143128
/// </summary>
@@ -158,7 +143,7 @@ public MagisterMessage CreateForwardMessage()
158143
IDKey = this.IDKey,
159144
IDOrginalReceiver = null,
160145
IDOriginal = null,
161-
Body = this.Body,
146+
Body = "<b>Van:</b> " + this.Sender.Name + "<br><b>Verzonden:</b> " + this.SentDate.DayOfWeekDutch() + " " + this.SentDate.ToString() + "<br><b>Aan:</b> " + String.Join(", ", this.Recipients.Select(x => x.Name)) + "<br><b>Onderwerp:</b> " + this.Subject + "<br><br>\"" + this.Body + "\"<br><br>",
162147
Deleted = false,
163148
_IsRead = true,
164149
Subject = tmpSubject,
@@ -190,7 +175,7 @@ public MagisterMessage CreateForwardMessage(string ContentAdd)
190175
IDKey = this.IDKey,
191176
IDOrginalReceiver = null,
192177
IDOriginal = null,
193-
Body = ContentAdd + "<br><br>---------------<br>Van: " + this.Sender.Name + "<br>Verzonden: " + DayOfWeekToString(this.SentDate.DayOfWeek) + " " + this.SentDate.ToString() + "<br>Aan: " + String.Join(", ",this.Recipients.Select(x=>x.Name)) + "<br>Onderwerp: " + this.Subject + "<br><br>\"" + this.Body + "\"<br><br>",
178+
Body = ContentAdd + "<br><br>---------------<br><b>Van:</b> " + this.Sender.Name + "<br><b>Verzonden:</b> " + this.SentDate.DayOfWeekDutch() + " " + this.SentDate.ToString() + "<br><b>Aan:</b> " + String.Join(", ",this.Recipients.Select(x=>x.Name)) + "<br><b>Onderwerp:</b> " + this.Subject + "<br><br>\"" + this.Body + "\"<br><br>",
194179
Deleted = false,
195180
_IsRead = true,
196181
Subject = tmpSubject,
@@ -227,7 +212,7 @@ public MagisterMessage CreateReplyToAllMessage(string ContentAdd)
227212
IDKey = this.IDKey,
228213
IDOrginalReceiver = null,
229214
IDOriginal = null,
230-
Body = ContentAdd + "<br><br>---------------<br>Van: " + this.Sender.Name + "<br>Verzonden: " + DayOfWeekToString(this.SentDate.DayOfWeek) + " " + this.SentDate.ToString() + "<br>Aan: " + String.Join(", ", this.Recipients.Select(x => x.Name)) + "<br>Onderwerp: " + this.Subject + "<br><br>\"" + this.Body + "\"<br><br>",
215+
Body = ContentAdd + "<br><br>---------------<br><b>Van:</b> " + this.Sender.Name + "<br><b>Verzonden:</b> " + this.SentDate.DayOfWeekDutch() + " " + this.SentDate.ToString() + "<br><b>Aan:</b> " + String.Join(", ", this.Recipients.Select(x => x.Name)) + "<br><b>Onderwerp:</b> " + this.Subject + "<br><br>\"" + this.Body + "\"<br><br>",
231216
Deleted = false,
232217
_IsRead = true,
233218
Subject = tmpSubject,
@@ -260,7 +245,7 @@ public MagisterMessage CreateReplyMessage(string ContentAdd)
260245
IDKey = this.IDKey,
261246
IDOrginalReceiver = null,
262247
IDOriginal = null,
263-
Body = ContentAdd + "<br><br>---------------<br>Van: " + this.Sender.Name + "<br>Verzonden: " + DayOfWeekToString(this.SentDate.DayOfWeek) + " " + this.SentDate.ToString() + "<br>Aan: " + String.Join(", ", this.Recipients.Select(x => x.Name)) + "<br>Onderwerp: " + this.Subject + "<br><br>\"" + this.Body + "\"<br><br>",
248+
Body = ContentAdd + "<br><br>---------------<br><b>Van:</b> " + this.Sender.Name + "<br><b>Verzonden:</b> " + this.SentDate.DayOfWeekDutch() + " " + this.SentDate.ToString() + "<br><b>Aan:</b> " + String.Join(", ", this.Recipients.Select(x => x.Name)) + "<br><b>Onderwerp:</b> " + this.Subject + "<br><br>\"" + this.Body + "\"<br><br>",
264249
Deleted = false,
265250
_IsRead = true,
266251
Subject = tmpSubject,
@@ -329,7 +314,7 @@ internal MagisterStyleMessage ToMagisterStyle()
329314
Ontvangers = tmpReceivers,
330315
KopieOntvangers = tmpCC,
331316
CC = tmpCC,
332-
VerstuurdOp = this.SentDate.ToString("yyyy-MM-ddTHH:mm:ss.0000000Z"),
317+
VerstuurdOp = this.SentDate.ToUTCString(),
333318
IsGelezen = this._IsRead,
334319
Status = this.State,
335320
HeeftPrioriteit = this.IsFlagged,
@@ -343,10 +328,25 @@ internal MagisterStyleMessage ToMagisterStyle()
343328
};
344329
}
345330

331+
public override string ToString()
332+
{
333+
return "From: " + this.Sender.Name + "\nSent: " + this.SentDate.DayOfWeek + " " + this.SentDate.ToString() + "\nTo: " + String.Join(", ", this.Recipients.Select(x => x.Name)) + "\nSubject: " + this.Subject + "\n\n\"" + this.Body + "\"";
334+
}
335+
346336
public int CompareTo(MagisterMessage other)
347337
{
348338
return this.SentDate.CompareTo(other.SentDate);
349339
}
340+
341+
public MagisterMessage Clone()
342+
{
343+
return (MagisterMessage)this.MemberwiseClone();
344+
}
345+
346+
object ICloneable.Clone()
347+
{
348+
return this.Clone();
349+
}
350350
}
351351

352352
internal partial class MagisterStyleMessage

src/MataSharp/MagisterPerson.cs

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
namespace MataSharp
88
{
9-
public partial class MagisterPerson : IComparable<MagisterPerson>
9+
public partial class MagisterPerson : IComparable<MagisterPerson>, ICloneable
1010
{
1111
public uint ID { get; set; }
1212
public object Ref { get; set; } // Even Schoolmaster doesn't know what this is, it's mysterious. Just keep it in case.
@@ -22,6 +22,11 @@ public partial class MagisterPerson : IComparable<MagisterPerson>
2222

2323
internal MagisterPerson Original { get; set; }
2424

25+
public override bool Equals(object obj)
26+
{
27+
return this.Equals((MagisterPerson)obj);
28+
}
29+
2530
public bool Equals(MagisterPerson Person)
2631
{
2732
return (this.ID == Person.ID && this.Initials == Person.Initials && this.SurName == Person.SurName &&
@@ -36,9 +41,8 @@ public bool Equals(MagisterPerson Person)
3641
/// <returns>A MagisterStylePerson instance.</returns>
3742
internal MagisterStylePerson ToMagisterStyle()
3843
{
39-
var tmpPerson = (!this.Original.Equals(this)) ?
40-
(_Session.Mata.GetPersons(this.Name).Count == 1) ? _Session.Mata.GetPersons(this.Name)[0] : this
41-
: this;
44+
var tmpPerson = (!this.Original.Equals(this)) ? this.Original : this;
45+
4246
return new MagisterStylePerson()
4347
{
4448
Id = tmpPerson.ID,
@@ -63,12 +67,20 @@ public MagisterPerson Clone()
6367
return (MagisterPerson)this.MemberwiseClone();
6468
}
6569

70+
public override string ToString() { return this.Description; }
71+
6672
public int CompareTo(MagisterPerson PersonB)
6773
{
6874
var surNameCompared = this.SurName.CompareTo(PersonB.SurName);
6975
return (surNameCompared != 0) ? surNameCompared : this.FirstName.CompareTo(PersonB.FirstName);
7076
}
77+
78+
object ICloneable.Clone()
79+
{
80+
return this.Clone();
81+
}
7182
}
83+
7284
internal partial struct MagisterStylePerson
7385
{
7486
public uint Id { get; set; }

src/MataSharp/MagisterSchool.cs

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace MataSharp
99
/// <summary>
1010
/// Type to represent a magister school.
1111
/// </summary>
12-
public class MagisterSchool : IComparable<MagisterSchool>
12+
public class MagisterSchool : IComparable<MagisterSchool>, ICloneable
1313
{
1414
[JsonProperty("Licentie")]
1515
public string Name { get; set; }
@@ -36,6 +36,11 @@ public MagisterSchool Clone()
3636
return (MagisterSchool)this.MemberwiseClone();
3737
}
3838

39+
public override bool Equals(object obj)
40+
{
41+
return this.Equals((MagisterSchool)obj);
42+
}
43+
3944
public bool Equals(MagisterSchool School)
4045
{
4146
return (School != null && this.Name == School.Name && this.URL == School.URL);
@@ -45,5 +50,15 @@ public int CompareTo(MagisterSchool other)
4550
{
4651
return this.Name.CompareTo(other.Name);
4752
}
53+
54+
public override string ToString()
55+
{
56+
return this.Name + " - " + this.URL;
57+
}
58+
59+
object ICloneable.Clone()
60+
{
61+
return this.Clone();
62+
}
4863
}
49-
}
64+
}

src/MataSharp/Mata.cs

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ internal static void Clean()
2727
/// <summary>
2828
/// Type to communicate with a Magister School's server.
2929
/// </summary>
30-
public partial class Mata : IDisposable
30+
public partial class Mata : IDisposable, ICloneable
3131
{
3232
public string Name { get; private set; }
3333
public uint UserID { get; private set; }
@@ -136,10 +136,10 @@ public List<MagisterMessageFolder> GetMessageFolders()
136136
/// <returns>List containing MagisterPerson instances</returns>
137137
public List<MagisterPerson> GetPersons(string SearchFilter)
138138
{
139-
if (SearchFilter == null || !_Session.checkedPersons.ContainsKey(SearchFilter))
140-
{
141-
if (string.IsNullOrWhiteSpace(SearchFilter) || SearchFilter.Count() < 3) return new List<MagisterPerson>();
139+
if (string.IsNullOrWhiteSpace(SearchFilter) || SearchFilter.Count() < 3) return new List<MagisterPerson>();
142140

141+
if (!_Session.checkedPersons.ContainsKey(SearchFilter))
142+
{
143143
string URL = "https://" + this.School.URL + "/api/personen/" + this.UserID + "/communicatie/contactpersonen?q=" + SearchFilter;
144144

145145
string personsRAW = _Session.HttpClient.DownloadString(URL);
@@ -329,6 +329,16 @@ public static bool Equals(Mata TargetA, Mata TargetB)
329329
{
330330
return (TargetA.UserName == TargetB.UserName && TargetA.UserID == TargetB.UserID && TargetA.SessionID == TargetB.SessionID && TargetA.Name == TargetB.Name);
331331
}
332+
333+
public override bool Equals(object obj)
334+
{
335+
return Equals(this, (Mata)obj);
336+
}
337+
338+
object ICloneable.Clone()
339+
{
340+
return this.Clone();
341+
}
332342
}
333343

334344
internal partial struct MagisterStyleMata

0 commit comments

Comments
 (0)