示例#1
0
        private async Task SaveUsersAsync()
        {
            string filename = Path + Constants.userRepositoryFilename;

            while (true)
            {
                await Task.Delay(Constants.saveUsersDelay);

                IUserRepositorySaver.Save(userRepository, filename);
            }
        }
示例#2
0
 public override void SaveUsers()
 {
     IUserRepositorySaver.Save(userRepository, Path + Constants.userRepositoryFilename);
 }
示例#3
0
        private void AdminMessageResponse(Message message)
        {
            string messageStr = message.Text.ToUpper();

            if (Constants.textHelpCommand.Contains(messageStr))
            {
                EnqueueMessage(
                    sendAsNewMessage: true,
                    editingEnabled: false,
                    userId: message.PeerId,
                    message: Constants.adminHelp);
            }
            else if (message.Text.IndexOf("Рассылка") == 0 || message.Text.IndexOf("Distribution") == 0)
            {
                string temp   = message.Text.Substring(message.Text.IndexOf(' ') + 1);
                string toWhom = temp.Substring(0, temp.IndexOf(' '));
                if (toWhom == "всем" || toWhom == "all")
                {
                    EnqueueMessage(
                        sendAsNewMessage: true,
                        editingEnabled: false,
                        userIds: userRepository.GetIds(),
                        message: temp.Substring(temp.IndexOf(' ') + 1));
                    EnqueueMessage(
                        sendAsNewMessage: true,
                        editingEnabled: false,
                        userId: message.PeerId,
                        message: "Выполнено");
                }
                else if (toWhom.Length == 1)
                {
                    if (int.TryParse(toWhom, out int toCourse) && toCourse >= 1 && toCourse <= 4)
                    {
                        --toCourse;
                        EnqueueMessage(
                            sendAsNewMessage: true,
                            editingEnabled: false,
                            userIds: userRepository.GetIds(mapper.GetGroupNames(toCourse)),
                            message: temp.Substring(temp.IndexOf(' ') + 1));
                        EnqueueMessage(
                            sendAsNewMessage: true,
                            editingEnabled: false,
                            userId: message.PeerId,
                            message: "Выполнено");
                        return;
                    }
                    EnqueueMessage(
                        sendAsNewMessage: true,
                        editingEnabled: false,
                        userId: message.PeerId,
                        message: "Ошибка рассылки:\nневерный курс: " + toWhom + "\nВведите значение от 1 до 4");
                }
                else
                {
                    EnqueueMessage(
                        sendAsNewMessage: true,
                        editingEnabled: false,
                        userIds: userRepository.GetIds(toWhom),
                        message: temp.Substring(temp.IndexOf(' ') + 1));
                    EnqueueMessage(
                        sendAsNewMessage: true,
                        editingEnabled: false,
                        userId: message.PeerId,
                        message: "Выполнено");
                }
            }
            else if (messageStr == "АПТАЙМ" || messageStr == "UPTIME")
            {
                StringBuilder sb = new StringBuilder();
                sb.Append("Время запуска: ");
                sb.Append(StartTime.ToString());
                sb.Append("\nАптайм: ");
                sb.Append((DateTime.Now - StartTime).ToString());
                EnqueueMessage(
                    sendAsNewMessage: true,
                    editingEnabled: false,
                    userId: message.PeerId,
                    message: sb.ToString());
                return;
            }
            else if (message.Text.IndexOf("Обновить") == 0 || message.Text.IndexOf("Update") == 0)
            {
                // TODO: update command
                EnqueueMessage(
                    sendAsNewMessage: true,
                    editingEnabled: false,
                    userId: message.PeerId,
                    message: "todo");
                return;
            }
            else if (messageStr == "ПЕРЕЗАГРУЗКА" || messageStr == "REBOOT")
            {
                IUserRepositorySaver.Save(userRepository, Path + Constants.userRepositoryFilename);
                Environment.Exit(0);
            }
        }