예제 #1
0
 private void DeleteTrainer(object obj)
 {
     if (MessageBox.Show("Are you Sure You want to Delete this Record?", "Pinna Fitness", MessageBoxButton.YesNoCancel, MessageBoxImage.Warning) == MessageBoxResult.Yes)
     {
         try
         {
             SelectedTrainer.Enabled = false;
             var stat = _trainerService.Disable(SelectedTrainer);
             if (stat == string.Empty)
             {
                 Trainers.Remove(SelectedTrainer);
             }
             else
             {
                 MessageBox.Show("Can't Delete, may be the data is already in use..."
                                 + Environment.NewLine + stat, "Can't Delete",
                                 MessageBoxButton.OK, MessageBoxImage.Error);
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show("Can't Delete, may be the data is already in use..."
                             + Environment.NewLine + ex.Message + Environment.NewLine + ex.InnerException, "Can't Delete",
                             MessageBoxButton.OK, MessageBoxImage.Error);
         }
     }
 }
예제 #2
0
        private static void RemoveTrainer(string username)
        {
            Trainer trainer = Trainers.FirstOrDefault(x => x.UserName == username);

            if (trainer == null)
            {
                throw new Exception("There is no such trainer");
            }
            Trainers.Remove(trainer);
        }
예제 #3
0
        private ProcessResult ProcessMessageFromTrainer(int userid, string text)
        {
            // Обработка команд отмены и размера
            if (text == "отмена")
            {
                vk.SendMessage(userid, "Режим обучения отключён");
                CallUsersGridUpdate(new UsersGridUpdateEventArgs("LearningNow", userid, "No"));
                Trainers.Remove(userid);
                WaitAnswersFor.Remove(userid);
                return(ProcessResult.Processed);
            }
            if (text == "размер")
            {
                long memory, patterns, answers;
                memory   = GetObjectSize(CustomAnswers);
                patterns = CustomAnswers.Keys.Count;
                answers  = CustomAnswers.Sum(p => p.Value.Count);
                vk.SendMessage(userid, $"Текущий размер базы данных:\n\nЗанятая память: {memory / 1024f}Kb\nКоличество фраз: {patterns}\nКоличество ответов: {answers}");
                return(ProcessResult.Processed);
            }
            if (text.StartsWith("неотвечен") || text.StartsWith("не отвечен"))
            {
                if (NotAnswered.Count < 10)
                {
                    vk.SendMessage(userid, string.Join("\r\n", NotAnswered));
                }
                else
                {
                    vk.SendMessage(userid, string.Join("\r\n", NotAnswered.Take(10)) + "\r\nИ ещё " + (NotAnswered.Count - 10));
                }
            }
            if (text == "ответ")
            {
                if (NotAnswered.Count == 0)
                {
                    vk.SendMessage(userid, "К сожалению, на данный момент нет неотвеченных фраз. Но вы можете добавить свою ;)");
                    return(ProcessResult.Processed);
                }

                var phrase = NotAnswered.First(); // FIXME
                WaitAnswersFor[userid] = phrase;
                vk.SendMessage(userid, phrase);
                return(ProcessResult.Processed);
            }

            // Разделение сообщения на строки
            var strings = text.Split(new[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries);

            // Добавление ответов на существующую фразу
            if (WaitAnswersFor.ContainsKey(userid))
            {
                var pattern = WaitAnswersFor[userid];
                NotAnswered.Remove(pattern);
                Tab.Invoke((Action)(() => Tab.listBoxNotAnswered.Items.Remove(pattern)));
                AddAnswer(pattern, strings, userid);
                return(ProcessResult.Processed);
            }

            // Проверка на ошибки ввода
            if (!CheckCorrect(strings, userid))
            {
                return(ProcessResult.Processed);
            }

            // Добавление фразы
            return(AddAnswer(strings.First(), strings.Skip(1), userid));
        }