private void Mast_Button_UpdatePerson_Click(object sender, RoutedEventArgs e)
        {
            if (uint.TryParse(Mast_TextBlock_Person_Id.Text, out uint personId))
            {
                if (Mast_ComboBox_Company.SelectedItem == null)
                {
                    MessageBox.Show("Wähle eine Firmenzugehörigkeit aus!", "MelBox2", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    return;
                }

                if (Mast_TextBox_Name.Text.Length < 3)
                {
                    MessageBox.Show("Der Name muss mindestens drei Zeichen lang sein!", "MelBox2", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    return;
                }

                string name            = Mast_TextBox_Name.Text;
                string company         = Mast_ComboBox_Company.SelectedValue.ToString();
                string email           = Mast_TextBox_Email.Text;
                ulong  cellphone       = HelperClass.ConvertStringToPhonenumber(Mast_TextBox_Cellphone.Text);
                string keyWord         = Mast_TextBox_KeyWord.Text;
                string maxInactive     = Mast_TextBox_MaxInactivity.Text;
                bool   recEmailChecked = (bool)Mast_CheckBox_RecievesEmail.IsChecked;
                bool   recSmsChecked   = (bool)Mast_CheckBox_RecievesSMS.IsChecked;

                if (recEmailChecked && !HelperClass.IsValidEmailAddress(email))
                {
                    MessageBox.Show("E-Mails können nur mit gültiger Email-Adresse gesendet / empfangen werden!", "MelBox2", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    return;
                }

                if (recSmsChecked && cellphone == 0)
                {
                    MessageBox.Show("SMS können nur mit gültiger Telefonnummer gesendet / empfangen werden!", "MelBox2", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                    return;
                }

                MessageType role = MessageType.NoCategory;

                if (recEmailChecked)
                {
                    role = MessageType.SentToEmail;
                }

                if (recSmsChecked)
                {
                    role |= MessageType.SentToSms;
                }

                int r = sql.UpdatePerson(personId, name, company, email, cellphone.ToString(), keyWord, maxInactive, role);

                if (r > 0)
                {
                    _ = MessageBox.Show("Person geändert:\r\n" + name + "\r\nvon Firma " + company, "MelBox2 - Person [" + personId + "] geändert.", MessageBoxButton.OK, MessageBoxImage.Information);
                    Log.Write(Log.Type.Persons, "Person [" + personId + "] geändert: " + name + " von Firma " + company);
                }

                GetUnknownPersons();
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Erzeugt Einen EIntrag in der Nachrichten-Datenbank, Behandelt SMSAbruf-Test, sendet die Nachricht weiter an die aktuell eingeteilte Schicht.
        /// </summary>
        /// <param name="messages"></param>
        private void ProcessRecievedMessages(MessageCollection messages)
        {
            //Gsm gsm = new Gsm();

            foreach (Message message in messages)
            {
                //Nachrichten in Datenbank schreiben
                uint newMsgId = sql.CreateMessageEntry(message);

                //Ist message eine Testnachricht?
                gsm.IsTestSmsRoute(message);

                if (!sql.IsMessageBlocked(message) && newMsgId != 0)
                {
                    System.Net.Mail.MailAddressCollection mailAddresses = new System.Net.Mail.MailAddressCollection();
                    List <uint> sendSmsRecieverIds  = new List <uint>();
                    List <uint> sendMailRecieverIds = new List <uint>();

                    //Nachrichten an Bereitschaft senden
                    foreach (NightShift shift in sql.GetCurrentShifts())
                    {
                        if (shift.SendViaSMS)
                        {
                            StatusBarText = "Sende SMS an +" + shift.SendToCellphone;
                            if (shift.SendToCellphone > 0)
                            {
                                sendSmsRecieverIds.Add(sql.GetIdFromEntry("Persons", "Cellphone", shift.SendToCellphone.ToString()));
                                gsm.SendSMS(shift.SendToCellphone, message.Content);

                                //Status gesendet in die Datenbank schreiben.
                                sql.UpdateSentMessageEntry(newMsgId, MessageType.SentToSms, sendSmsRecieverIds);
                            }
                        }

                        if (shift.SendViaEmail)
                        {
                            StatusBarText = "Sende Email...";
                            sendMailRecieverIds.Add(sql.GetIdFromEntry("Persons", "Name", shift.GuardName));
                            if (HelperClass.IsValidEmailAddress(shift.SendToEmail))
                            {
                                mailAddresses.Add(new System.Net.Mail.MailAddress(shift.SendToEmail, shift.GuardName));
                                SendEmail(mailAddresses, message.Content, message.Content);

                                //Status gesendet in die Datenbank schreiben.
                                sql.UpdateSentMessageEntry(newMsgId, MessageType.SentToEmail, sendMailRecieverIds);
                            }
                        }
                    }
                }
            }

            //Neue Nachrichten anzeigen
            Timer_LastMessages = sql.GetLastMessagesForShow();
        }
        private void Mast_Button_CreatePerson_Click(object sender, RoutedEventArgs e)
        {
            if (Mast_ComboBox_Company.SelectedItem == null)
            {
                MessageBox.Show("Wähle eine Firmenzugehörigkeit aus!", "MelBox2", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }

            if (Mast_TextBox_Name.Text.Length < 3)
            {
                MessageBox.Show("Der Name muss mindestens drei Zeichen lang sein!", "MelBox2", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }

            string name            = Mast_TextBox_Name.Text;
            string company         = Mast_ComboBox_Company.SelectedValue.ToString();
            string email           = Mast_TextBox_Email.Text;
            ulong  cellphone       = HelperClass.ConvertStringToPhonenumber(Mast_TextBox_Cellphone.Text);
            string KeyWord         = Mast_TextBox_KeyWord.Text;
            string MaxInactive     = Mast_TextBox_MaxInactivity.Text;
            bool   recEmailChecked = (bool)Mast_CheckBox_RecievesEmail.IsChecked;
            bool   recSmsChecked   = (bool)Mast_CheckBox_RecievesSMS.IsChecked;

            if (recEmailChecked && !HelperClass.IsValidEmailAddress(email))
            {
                MessageBox.Show("E-Mails können nur mit gültiger Email-Adresse gesendet / empfangen werden!", "MelBox2", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }

            if (recSmsChecked && cellphone == 0)
            {
                MessageBox.Show("SMS können nur mit gültiger Telefonnummer gesendet / empfangen werden!", "MelBox2", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }

            MessageType role = MessageType.NoCategory;

            if (recEmailChecked)
            {
                role = MessageType.SentToEmail;
            }

            if (recSmsChecked)
            {
                role |= MessageType.SentToSms;
            }

            uint oldPersonId = sql.GetPersonID(null, email, cellphone, KeyWord);

            if (oldPersonId != 0)
            {
                string oldName = sql.GetPersonNameFromId(oldPersonId);
                MessageBox.Show(string.Format("Die Person mit \r\nEmail\t{0}\r\nMobilnummer\t{1}\r\nKeyWord\t{2}\r\n gibt es schon unter dem Namen\r\n\t\t{3}\r\n\r\nEs wird keine neue Person erstellt.", email, cellphone, KeyWord, oldName), "MelBox2 - Diese Person gibt es schon.", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            uint newPersonId = sql.CreatePerson(name, company, email, cellphone.ToString(), KeyWord, MaxInactive, role);

            Mast_TextBlock_Person_Id.Text = newPersonId.ToString();

            if (newPersonId > 0)
            {
                _ = MessageBox.Show("Person neu erstellt:\r\n" + name + "\r\nvon Firma " + company, "MelBox2 - Person [" + newPersonId + "] neu erstellt.", MessageBoxButton.OK, MessageBoxImage.Information);
                Log.Write(Log.Type.Persons, "Person [" + newPersonId + "] neu erstellt: " + name + " von Firma " + company);
            }

            //Auswahl verfügbarerer Personen im Kalender aktualisieren.
            Cal_AvailablePersonal = sql.GetListFromColumn("Persons", "Name", "1=1 LIMIT 50");
        }