public static Stundenplan getDaten() { var doc = XDocument.Load(System.Web.HttpContext.Current.Server.MapPath("content/Stundenplan.xml")); string[] zeiten = { "08:15", "10:15", "12:15", "14:15", "15:45", "17:15" }; string[] tage = { "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag" }; var result = new Stundenplan { Aktualisiert = DateTime.Parse(doc.Element("stundenplan").Attribute("Aktualisiert").Value), FachSemester = int.Parse(doc.Element("stundenplan").Attribute("FachSemester").Value), Studiengang = doc.Element("stundenplan").Attribute("Studiengang").Value, }; var nummern = GetFachnummern(doc.Root); var verzeichnis = new Dictionary<int, Tuple<string, string>>(); var context = new dbContext(); foreach (int nr in nummern) { string nickname = context.Module.Where(m => m.FachNummer == nr).First().Verantwortlicher; string name = context.Module.Where(m => m.FachNummer == nr) .Join(context.Benutzer, m => m.Verantwortlicher, b => b.Nickname, (m, b) => new { _Modul = m, _Benutzer = b }) .First()._Benutzer.Nachname; string titel = context.Module.Where(m => m.FachNummer == nr) .Join(context.Professoren, m => m.Verantwortlicher, p => p.Nickname, (m, p) => new { _Modul = m, _Professor = p }) .First()._Professor.AkademischerTitel; name = titel + " " + name; var tup = new Tuple<string, string>(nickname, name); verzeichnis.Add(nr, tup); } var plan = doc.Element("stundenplan").Descendants("Tag"); foreach (var tag in tage) { var newTag = new Tag { Name = tag, Bloecke = new List<Block>() }; foreach (var zeit in zeiten) { var block = plan.Where(t => t.Attribute("Name").Value.Equals(tag)) .Descendants("Block").Where(b => b.Attribute("Zeit").Value.Equals(zeit)) .First(); if (block.Attribute("Typ") != null) { int nr = int.Parse(block.Attribute("FachNr").Value); newTag.Bloecke.Add(new Block { Zeit = zeit, FachNr = nr, Typ = "(" + block.Attribute("Typ").Value + ")", Veranstaltung = block.Value, profUsername = verzeichnis[nr].Item1, profName = verzeichnis[nr].Item2 }); } else { newTag.Bloecke.Add(new Block { Zeit = zeit, FachNr = 0, Typ = "", Veranstaltung = "", profUsername = "", profName = "" }); } } result.Tage.Add(newTag); } return result; }