Example #1
0
        public void RunningThread()
        {
            int     i       = MaxQueue;
            Message message = new Message();

            message.Title = "keepeya";
            while (true)
            {
                if (listEvents.Count > 0) // делаем запрос к БД
                {
                    message.Result    = null;
                    message.Account   = null;
                    message.AllEvents = new MainEvent[listEvents.Count];
                    for (int index = 0; index < listEvents.Count; index++)
                    {
                        message.AllEvents[index] = listEvents[index];
                    }
                    Message recieveMessage = parent.SendToServer(message);
                    if (recieveMessage != null && recieveMessage.Result != null)
                    {
                        for (int index = 0; index < recieveMessage.AllEvents.Length; index++)
                        {
                            if (recieveMessage.AllEvents[index].EventDone || recieveMessage.AllEvents[index].EventError != "")
                            // если событие произошло
                            {
                                MainEvent temp = listEvents.FirstOrDefault(
                                    c => c.Title == recieveMessage.AllEvents[index].Title &&
                                    c.Sign == recieveMessage.AllEvents[index].Sign &&
                                    c.ValueParam == recieveMessage.AllEvents[index].ValueParam
                                    );
                                if (recieveMessage.AllEvents[index].EventError == "")
                                {
                                    Interlocked.Increment(ref eventMessage);
                                    // отправляем еmail
                                    SendEmail sendMail = new SendEmail(parent.MyAccount.Email, "Событие произошло", temp.ToString());
                                    // отправляем сообщение по Skype
                                    SendSkype sendSkype = new SendSkype(parent.MyAccount.LoginSkype, temp.ToString());
                                    listResultEvents.Add(temp);
                                }
                                else
                                {
                                    MessageBox.Show(recieveMessage.AllEvents[index].EventError + " " + recieveMessage.AllEvents[index].Title);
                                }
                                // удаляем событие
                                listEvents.Remove(temp);
                                UpdateListEvent();
                            }
                        }
                    }
                }
                valueList.Enqueue(new KeyValuePair <int, int>((++i), eventMessage));
                if (valueList.Count > MaxQueue)
                {
                    valueList.Dequeue();
                }
                Message(i);
                Thread.Sleep(threadDelay * 1000);
            }
        }
Example #2
0
 private void btnDelete_Click(object sender, RoutedEventArgs e)
 {
     if (lstEvents.SelectedIndex >= 0)
     {
         MainEvent        mainEvent = (MainEvent)lstEvents.SelectedItem;
         MessageBoxResult res       = MessageBox.Show("Вы уверены что хотите удалить это событие: " + mainEvent.ToString(), "Удалить событие", MessageBoxButton.OKCancel);
         if (res == MessageBoxResult.OK)
         {
             listEvents.Remove(mainEvent);
             EditEvent();
         }
     }
 }