/// <summary> /// Speichert das gesendete Event in der Invites Tabelle der Datenbank. /// Die InviteList wird mit den Verknüpfungen befüllt. /// </summary> /// <param name="username">Der Name des eingeladenen Nutzers</param> /// <param name="kaEvent">Das Event zu dem eingeladen wird</param> public void SaveInvites(string username, KaEvent kaEvent) { //Wenn es den eingeladenen Nutzer in der Datenbank gibt. if (UserExist(username)) { SqlConnection con = new SqlConnection(connectionString); con.Open(); //Das Event (Alter Nutzer) in der Invites Tabelle speichern. int inviteID = SaveInvite(kaEvent); //Referenz auf den neuen Nutzer in der InviteList vermerken. string saveEvent = string.Format("INSERT INTO InviteList(InviteID, [Invitee]) VALUES ({0}, '{1}')", inviteID, username); con.Close(); con = new SqlConnection(connectionString); con.Open(); SqlCommand saveEventCommand = new SqlCommand(saveEvent, con); Console.WriteLine(string.Join("; ", saveEventCommand.Parameters)); //debugging Console.WriteLine("Rows affected {0}.", saveEventCommand.ExecuteNonQuery()); Console.WriteLine(saveEventCommand.CommandText); //debugging saveEventCommand.Dispose(); con.Close(); } }
/// <summary> /// Eine Einladung akzeptieren oder nicht /// </summary> /// <param name="kaEvent">Den jeweiligen Termin</param> /// <param name="user">Der jeweilige eingeladene</param> /// <param name="choice">True=Accept, False = Ablehnen</param> public void AnswerInvite(KaEvent kaEvent, string user, bool choice) { SqlConnection con = new SqlConnection(connectionString); con.Open(); string del_Com = String.Format("DELETE FROM Invites WHERE InviteID = {0}", kaEvent.TerminID); if (choice) { kaEvent.owner.name = user; SaveEvent(kaEvent); SqlCommand delSave = new SqlCommand(del_Com, con); delSave.ExecuteNonQuery(); delSave.Dispose(); } del_Com = String.Format("DELETE FROM InviteList WHERE InviteID = {0}", kaEvent.TerminID); SqlCommand delInvite = new SqlCommand(del_Com, con); delInvite.ExecuteNonQuery(); delInvite.Dispose(); con.Close(); }
/// <summary> /// Speichern des mitgelieferten Events in der Remote Datenbank /// Benutzt das ClientConnectionInterface /// </summary> /// <param name="kaEvent"></param> public KaEvent SaveRemote(KaEvent kaEvent) { kaEvent.owner = currentUser; Package savePackage = new Package(Request.Save, kaEvent); Package returnPackage = clientConnection.Start(savePackage); return(returnPackage.kaEvents[0]); }
public Vorschaufenster(KaEvent kaEvent) { InitializeComponent(); TB_Title.Text = kaEvent.Titel; TB_Place.Text = kaEvent.Ort; tB_Beginn.Text = kaEvent.Beginn.ToString(); tb_Ende.Text = kaEvent.Ende.ToString(); rTB_Beschreibung.Text = kaEvent.Beschreibung; tb_Verantwortlicher.Text = kaEvent.owner.name; }
public void SendInvites(KaEvent kaEvent) { Package package = new Package { kaEvents = new List <KaEvent>() }; package.kaEvents.Add(kaEvent); package.request = Request.Invite; clientConnection.Start(package); }
public void AnswerInvite(KaEvent kaEvent, bool choice) { Package package = new Package { kaEvents = new List <KaEvent>(), user = currentUser, answerInvite = choice, request = Request.AnswerInvite }; package.kaEvents.Add(kaEvent); clientConnection.Start(package); }
public void ListViewTest() { KaEvent[] kaEvents = new KaEvent[5]; for (int i = 0; i < 3; i++) { kaEvents[i] = new KaEvent { Titel = "Titetl " + i, Ort = "Ort " + i }; } //Form open_list = new Wdw_List(kaEvents); //open_list.Show(); Assert.IsFalse(false); }
/// <summary> /// Liest die Termine von einem bestimmten Benutzer aus der Datenbank aus /// </summary> /// <param name="owner"></param> /// <returns> /// Gibt die Termine des Benutzers in einer Liste /// mit KaEvent-Objekten zurueck. /// </returns> public List <KaEvent> Read(string owner) { List <KaEvent> ka = new List <KaEvent>(); SqlConnection con = new SqlConnection(connectionString); con.Open(); //Pruefen ob der Benutzer existiert //string exist = "SELECT * FROM calendar Where username ="******"SELECT * FROM calendar where Benutzername = '{0}'", owner); SqlCommand com = new SqlCommand(exist, con); KaEvent temp = new KaEvent(); SqlDataReader reader = com.ExecuteReader(); com.Dispose(); if (reader.HasRows) { while (reader.Read()) { temp.TerminID = reader.GetInt32(0); temp.Titel = reader.GetString(1); temp.Ort = reader.GetString(2); temp.Beginn = reader.GetDateTime(4); temp.Ende = reader.GetDateTime(5); temp.Beschreibung = reader.GetString(6); temp.owner = new User(reader.GetString(7)); Console.WriteLine(temp.Titel); ka.Add(temp); temp = new KaEvent(); } } else { ka.Add(temp); } return(ka); }
/// <summary> /// Läd eine Liste an Events für einen Monat Remote von der Datenbank /// Nutzt das Datenbankinterface /// </summary> /// <param name="month"></param> /// <returns></returns> public List <KaEvent> LoadEventsRemote(DateTime month) { KaEvent eventMonth = new KaEvent { Beginn = month }; Package loadPackage = new Package(Request.Load, currentUser, eventMonth); Package returnPackage = clientConnection.Start(loadPackage); if (returnPackage.request == Request.Success) { return(returnPackage.kaEvents); } else { return(null); } }
/// <summary> /// BTN_save_Click /// </summary> private void BTN_save_Click(object sender, EventArgs e) { try { this.Write(); if (!isOnline) { clientLogic.SaveLocal(returnValue); } else { returnValue = clientLogic.SaveRemote(returnValue); } this.DialogResult = DialogResult.OK; this.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public void LoadEvent(int index) { bool isNewElement = false; KaEvent kaEvent; if (index >= ListEvents.Count) { isNewElement = true; kaEvent = new KaEvent(); } else { kaEvent = ListEvents[index]; } using (var form = new Wdw_KaEvent(kaEvent)) { var result = form.ShowDialog(); if (result == DialogResult.OK) { kaEvent = form.returnValue; } else { } } if (isNewElement) { ListEvents[index] = kaEvent; } else { ListEvents[index] = kaEvent; } /// Beispiel Funktion fuer das Oeffnen eines Date.cs/ oder Kaevents-Fenster /// Wenn man das Oeffnet sollte mit bestehenden Daten befuellt werden. /// Konstruktor wird zuerst mit Wdw_KaEvent(Clientlog clientlogic, KaEvent ereignis) siehe Date.cs }
private void BTN_invite_Click(object sender, EventArgs e) { try { using (var form = new Wdw_user_list()) { var results = form.ShowDialog(); KaEvent FocusEvent = ListEvents[LV_dates.FocusedItem.Index]; List <User> users = new List <User>(); char[] delim = { '#' }; foreach (string s in form.listStringreturn) { string[] parts = s.Split(delim); User user = new User(parts[0]); if (parts[1] != null) { if (Int32.TryParse(parts[1], out int result)) { user.serverID = result; } } users.Add(user); } FocusEvent.members = users; clientLogic.SendInvites(FocusEvent); } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
/// <summary> /// Speichert Termin in der Invites Tabelle. /// Gibt InviteID zurück. /// </summary> /// <param name="kaEvent">Das zu speichernde Event</param> /// <returns>TerminID des Invites bei Erfolg</returns> public int SaveInvite(KaEvent kaEvent) { Save(kaEvent, DatabaseTable.Invites); return(GetInviteID()); int GetInviteID() { SqlConnection sqlConnection = new SqlConnection(connectionString); sqlConnection.Open(); string commandString = String.Format("SELECT InviteID FROM Invites WHERE Benutzername = '{0}' AND PastID = {1}", kaEvent.owner.name, kaEvent.TerminID); SqlCommand sqlCommand = new SqlCommand(commandString, sqlConnection); SqlDataReader readInviteID = sqlCommand.ExecuteReader(); sqlCommand.Dispose(); int inviteID; if (readInviteID.Read()) { inviteID = readInviteID.GetInt32(0); } else { inviteID = 0; } readInviteID.Close(); sqlConnection.Close(); return(inviteID); } }
/// <summary> /// Diese Methode dient zur Anbindung der P2P Topology an die Hierarchische. /// Es wird ein entsprechendes Paket in das hierarchische Netz gesendet. /// </summary> /// <param name="p2pRequest"></param> /// <param name="username"></param> /// <param name="kaEvent"></param> /// <param name="writeResult">übergebe die Methode writeResult</param> void ConnectP2P(P2PRequest p2pRequest, string username, KaEvent kaEvent, Action <Request, string> writeResult) { //P2P Teil P2PPackage p2p = new P2PPackage(username, kaEvent) { P2Prequest = p2pRequest }; //Sende Teil Package sendPackage = new Package(p2p); Package recievePackage; recievePackage = Send(sendPackage, KnownServers.GetRandomWellKnownPeer()); if (recievePackage != null) { switch (recievePackage.p2p.P2PAnswer) { case P2PAnswer.Success: writeResult(Request.Success, InviteSuccess); break; case P2PAnswer.Failure: writeResult(Request.Failure, InviteFail); break; default: writeResult(Request.Failure, InviteFail); break; } } else { writeResult(Request.Error, Error); } }
/// <summary> /// wrote the informations from an object of the class KaEvent to the input mask /// </summary> public Wdw_KaEvent(KaEvent ereignis, DateTime date = new DateTime(), bool isOnline = false) { InitializeComponent(); this.date = date; this.isOnline = isOnline; TB_day_beginn.Text = date.Day.ToString(); TB_day_end.Text = date.Day.ToString(); TB_month_beginn.Text = date.Month.ToString(); TB_month_end.Text = date.Month.ToString(); TB_year_beginn.Text = date.Year.ToString(); TB_year_end.Text = date.Year.ToString(); returnValue = new KaEvent(); if (ereignis != null) { TB_Title.Text = ereignis.Titel; TB_Place.Text = ereignis.Ort; RTB_description.Text = ereignis.Beschreibung; } /* * if (ereignis != null) * { * TB_Title.Text = ereignis.Titel; * TB_Place.Text = ereignis.Ort; * * TB_day_beginn.Text = ereignis.Beginn.ToString("dd"); * TB_month_beginn.Text = ereignis.Beginn.ToString("MM"); * TB_year_beginn.Text = ereignis.Beginn.ToString("yyyy"); * TB_hour_beginn.Text = ereignis.Beginn.ToString("HH"); * TB_minute_beginn.Text = ereignis.Beginn.ToString("mm"); * * TB_day_end.Text = ereignis.Beginn.ToString("dd"); * TB_month_end.Text = ereignis.Beginn.ToString("MM"); * TB_year_end.Text = ereignis.Beginn.ToString("yyyy"); * TB_hour_end.Text = ereignis.Beginn.ToString("HH"); * TB_minute_end.Text = ereignis.Beginn.ToString("mm"); * * //NUD_Priority.Value = ereignis.Prioritaet; * * RTB_description.Text = ereignis.Beschreibung; * * switch (ereignis.Haeufigkeit) * { * case "keine": * CB_none.Checked = true; * pan_frequency.Enabled = false; * break; * case "taeglich": * CB_dayli.Checked = true; * break; * case "woechentlich": * CB_weekly.Checked = true; * break; * case "monatlich": * CB_monthly.Checked = true; * break; * case "jaehrlich": * CB_yearly.Checked = true; * break; * }*/ /* * TB_number_repetitions.Text = ereignis.Haeufigkeit_Anzahl.ToString(); * * if (ereignis.Immer_Wiederholen == 1) { CB_always_repeat.Checked = true; } * else { CB_always_repeat.Checked = false; } * * TB_times_repeat.Text = ereignis.Wiederholungen.ToString(); * * TB_repeat_until_day.Text = ereignis.Wiederholen_bis.ToString("dd"); * TB_repeat_until_month.Text = ereignis.Wiederholen_bis.ToString("MM"); * TB_repeat_until_year.Text = ereignis.Wiederholen_bis.ToString("yyyy"); * * if (ereignis.XMontag <= -1) { CB_mon.Checked = false; } * else { CB_mon.Checked = true; } * if (ereignis.XDienstag <= -1) { CB_die.Checked = false; } * else { CB_die.Checked = true; } * if (ereignis.XMittwoch <= -1) { CB_mit.Checked = false; } * else { CB_mit.Checked = true; } * if (ereignis.XDonnerstag <= -1) { CB_don.Checked = false; } * else { CB_don.Checked = true; } * if (ereignis.XFreitag <= -1) { CB_fre.Checked = false; } * else { CB_fre.Checked = true; } * if (ereignis.XSamstag <= -1) { CB_sam.Checked = false; } * else { CB_sam.Checked = true; } * if (ereignis.XSonntag <= -1) { CB_son.Checked = false; } * else { CB_son.Checked = true; } * * NUD_mon.Value = ereignis.XMontag; * NUD_tue.Value = ereignis.XDienstag; * NUD_wen.Value = ereignis.XMittwoch; * NUD_thu.Value = ereignis.XDonnerstag; * NUD_fri.Value = ereignis.XFreitag; * NUD_sat.Value = ereignis.XSamstag; * NUD_sun.Value = ereignis.XSonntag; * * } */ }
/// <summary> /// Speichert Event in der angegebenen Tabelle. /// </summary> /// <param name="kaEvent">Das zu speichernde Event</param> /// <param name="table">Die zu benutzende Tabelle</param> private void Save(KaEvent kaEvent, string table) { SqlConnection con = new SqlConnection(connectionString); con.Open(); string commandString; string exist; //Gibt es die TerminID bereits? if (table == DatabaseTable.Invites) { exist = String.Format("SELECT InviteID FROM {0} WHERE PastID = {1} AND Benutzername = '{2}'", table, kaEvent.TerminID, kaEvent.owner.name); } else { exist = String.Format("SELECT TerminID FROM {0} WHERE TerminID = {1}", table, kaEvent.TerminID); } SqlCommand cmd_exist = new SqlCommand(exist, con); SqlDataReader exist_reader = cmd_exist.ExecuteReader(); cmd_exist.Dispose(); //Update falls bereits existent if (exist_reader.Read()) { if (table == DatabaseTable.Invites) { commandString = String.Format("UPDATE {0} SET Titel = @Titel, Ort = @Ort, Beginn = @Beginn, Ende = @Ende, Beschreibung = @Beschreibung WHERE Benutzername = '{1}' AND PastID = {2}", table, kaEvent.owner.name, kaEvent.TerminID); } else { commandString = String.Format("UPDATE {0} SET Titel = @Titel, Ort = @Ort, Beginn = @Beginn, Ende = @Ende, Beschreibung = @Beschreibung WHERE TerminID = {1}", table, kaEvent.TerminID); } } //Insert falls nicht else { if (table == DatabaseTable.Invites) { commandString = String.Format("INSERT INTO {0} (Titel, Ort, Beginn, Ende, Beschreibung, Benutzername, PastID) VALUES (@Titel, @Ort, @Beginn, @Ende, @Beschreibung, '{1}', {2})", table, kaEvent.owner.name, kaEvent.TerminID); } else { commandString = String.Format("INSERT INTO {0} (Titel, Ort, Beginn, Ende, Beschreibung, Benutzername) VALUES (@Titel, @Ort, @Beginn, @Ende, @Beschreibung, '{1}')", table, kaEvent.owner.name); } } exist_reader.Close(); SqlCommand SqlCommand = new SqlCommand(commandString, con); AddParameters(SqlCommand); DebugExecute(SqlCommand); SqlCommand.Dispose(); con.Close(); ///Fügt die immergleichen Parameter in den SQL Befehl ein. void AddParameters(SqlCommand sqlCommand) { sqlCommand.Parameters.AddWithValue("@Titel", kaEvent.Titel); sqlCommand.Parameters.AddWithValue("@Ort", kaEvent.Ort); sqlCommand.Parameters.AddWithValue("@Beginn", kaEvent.Beginn); sqlCommand.Parameters.AddWithValue("@Ende", kaEvent.Ende); sqlCommand.Parameters.AddWithValue("@Beschreibung", kaEvent.Beschreibung); } void DebugExecute(SqlCommand sqlCommand) { Console.WriteLine("Rows affected {0}.", sqlCommand.ExecuteNonQuery()); Console.WriteLine(sqlCommand.CommandText); //debugging } }
/// <summary> /// Speichert Termine in der calendar Tabelle. /// </summary> /// <param name="kaEvent">Das zu speichernde Event</param> public void SaveEvent(KaEvent kaEvent) { Save(kaEvent, DatabaseTable.Calendar); }
/// <summary> /// Löschen des mitgelieferten Events in der Remote Datenbank /// Benutzt das Datenbankinterface /// </summary> /// <param name="kaEvent"></param> public void DeleteRemote(KaEvent kaEvent) { Package deletePackage = new Package(Request.Delete, kaEvent); clientConnection.Start(deletePackage); }
/// <summary> /// Speichern des mitgelieferten Events in der Datenbank /// Benutzt das Datenbankinterface /// </summary> /// <param name="kaEvent"></param> public void SaveLocal(KaEvent kaEvent) { kaEvent.owner = currentUser; database.SaveEvent(kaEvent); }