/// <summary> /// Methode um einem Schulung-Objekt eine GUID und dem Repository dieses Schulung-Objekt hinzuzufügen. /// </summary> /// <param name="schulung"> hinzuzufügende Schulung </param> public async Task <Schulung> AddAsync(Schulung schulung) { try { if (schulung.SchulungGUID == null) { schulung.SchulungGUID = Guid.NewGuid().ToString(); } if (schulung.AccessToken == null) { schulung.AccessToken = Guid.NewGuid().ToString(); } await context.Schulung.AddAsync(schulung); await context.SaveChangesAsync(); return(schulung); } catch (Exception e) { Console.Error.Write(e); string code = "#005"; e = new Exception("Fehler beim Anlegen der Schulung in der Datenbank-Schulung (" + e.Message + ") " + code, e); throw e; } }
/// Setzt das Feld, dass die Mail zum Überprüfen der Anwesenheit versendet wurde public async Task SetGeprüftMailSent(String schulungsID, bool reminderSent) { Schulung schulung = await context.Schulung.FindAsync(schulungsID); if (schulung != null) { schulung.GeprüftReminderSent = reminderSent; context.Entry(schulung).State = EntityState.Modified; await context.SaveChangesAsync(); } }
/// <summary> /// Methode um eine Schulung zu löschen. /// </summary> /// <param name="schulung"> ein Schulung-Objekt </param> public async Task DeleteAsync(Schulung schulung) { try { context.Schulung.Remove(schulung); await context.SaveChangesAsync(); } catch (Exception e) { string code = "#008"; e = new Exception("Fehler beim Löschen der Schulung in der Datenbank-Schulung (" + e.Message + ") " + code, e); throw e; } }
/// <summary> /// Methode um eine bestehende Schulung mit einer überarbeiteten Version zu ersetzen. /// Die bestehende Version und die Überarbeitete müssen die selbe ID haben. /// Wenn die ID null ist passiert nichts. /// Wenn die Schulung zu der ID nicht existiert passiert nichts. /// </summary> /// <param name="schulung"> überarbeitete Version der Schulung </param> public async Task UpdateAsync(Schulung schulung) { try { Schulung schulungAlt = await context.Schulung .Include(s => s.Termine) .Include(s => s.Dozenten) .SingleAsync(m => m.SchulungGUID == schulung.SchulungGUID); schulungAlt.Beschreibung = schulung.Beschreibung; schulungAlt.Anmeldefrist = schulung.Anmeldefrist; schulungAlt.StartAnmeldefrist = schulung.StartAnmeldefrist; schulungAlt.Check = schulung.Check; if (!schulungAlt.Dozenten.Equals(schulung.Dozenten)) { schulungAlt.Dozenten = schulung.Dozenten; } if (!schulungAlt.Termine.Equals(schulung.Termine)) { schulungAlt.Termine = schulung.Termine; } schulungAlt.GeprüftReminderSent = schulung.GeprüftReminderSent; schulungAlt.IsAbgesagt = schulung.IsAbgesagt; schulungAlt.IsGeprüft = schulung.IsGeprüft; schulungAlt.OrganisatorInstitution = schulung.OrganisatorInstitution; schulungAlt.Ort = schulung.Ort; schulungAlt.Titel = schulung.Titel; // We don't wanna put the access token out there // so if it's not present thats ok if (schulung.AccessToken != null) { schulungAlt.AccessToken = schulung.AccessToken; } context.Entry(schulungAlt).State = EntityState.Modified; await context.SaveChangesAsync(); } catch (Exception e) { string code = "#007"; e = new Exception("Fehler beim Update der Schulung in der Datenbank-Schulung (" + e.Message + ") " + code, e); throw e; } }