Example #1
0
        /// <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();
            }
        }
Example #2
0
        /// <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();
        }
Example #3
0
        /// <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]);
        }
Example #4
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;
 }
Example #5
0
        public void SendInvites(KaEvent kaEvent)
        {
            Package package = new Package
            {
                kaEvents = new List <KaEvent>()
            };

            package.kaEvents.Add(kaEvent);
            package.request = Request.Invite;
            clientConnection.Start(package);
        }
Example #6
0
        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);
        }
Example #7
0
        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);
        }
Example #8
0
        /// <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);
        }
Example #9
0
        /// <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);
            }
        }
Example #10
0
 /// <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);
     }
 }
Example #11
0
        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
        }
Example #12
0
        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);
            }
        }
Example #13
0
        /// <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);
            }
        }
Example #14
0
        /// <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);
            }
        }
Example #15
0
        /// <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;
             *
             * }
             */
        }
Example #16
0
        /// <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
            }
        }
Example #17
0
 /// <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);
 }
Example #18
0
        /// <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);
        }
Example #19
0
 /// <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);
 }