Awesome
GEPRO_OSIsharp
C# Library voor Gepro-OSI roosters. Zou te gebruiken moeten zijn met elke school.
Voor een gezellig praatje join: irc.geekshed.net @ channel #magister
Zie, voor een PHP implementatie: https://github.com/stipmonster/api-for-magister-gepro-osi-roosters
Voor de geintereseerden, zie: http://simplygits.github.io/MagisterJS/
GEBRUIK
Voeg gewoon reference toe en zet dan
using GEPRO_OSIsharp;
boven aan je bestand.
INHOUD
MagisterRooster:
Vraag rooster van Gepro-Osi op:
public static List<List<Lesuur>> GetRooster(uint SchoolID, string UserName, string Afdeling)
Filter de opgegeven rooster en haal alleen de opgegeven dag eruit:
public static List<Lesuur> GetByDay(List<List<Lesuur>> Rooster, DayOfWeek Dag)
Filter de opgegeven rooster en haal alleen de opgegeven dagen eruit:
public static List<List<Lesuur>> GetByDays(List<List<Lesuur>> Rooster, List<DayOfWeek> Dagen)
Krijg dag als DayOfWeek van dagNummer:
public static DayOfWeek getDay(int dayNumber)
Vraag de afdelingen op:
public static List<string> GetAfdelingen(uint SchoolID)
LICENSE
GPLv2 (zie LICENSE bestand)
VOORBEELD
using System;
using System.Collections.Generic;
using System.Linq;
using GEPRI_OSIsharp;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("School ID? :");
uint schoolID = Convert.ToUInt32(Console.ReadLine());
Console.WriteLine("Naam/Leerlingnummer? :");
string userName = Console.ReadLine();
var afdelingen = MagisterRooster.GetAfdelingen(schoolID);
for (int i = 0; i < afdelingen.Count; i++)
Console.WriteLine(i + " " + afdelingen[i]);
var afdeling = afdelingen[Convert.ToInt32(Console.ReadLine())];
Console.ForegroundColor = ConsoleColor.Green; Console.Clear();
var rooster = MagisterRooster.GetRooster(schoolID, userName, afdeling);
foreach (var day in rooster)
{
foreach (var lesuur in day)
{
if (!lesuur.IsEmpty()) Console.WriteLine("Dag: " + lesuur.Dag + ", Uur: " + lesuur.Uur + ": " + lesuur.Vak.Naam);
}
}
var roosterVandaag = MagisterRooster.GetByDay(rooster, DateTime.Today.DayOfWeek);
Console.WriteLine("Vandaag:");
foreach (var day in rooster)
{
foreach (var lesuur in day)
{
if (!lesuur.IsEmpty()) Console.WriteLine("Uur: " + lesuur.Uur + ": " + lesuur.Vak.Naam);
}
}
var linqTest = new List<List<Lesuur>>();
foreach (var dag in rooster)
linqTest.Add(dag.Where(x => (!x.IsEmpty()) && x.isGewijzigd == true).ToList()); //LINQ enabled :)
Console.ReadLine();
}
}