Пример #1
0
        public async Task <CommandResult> Execute(string args)
        {
            var chats = await(_isAdd ? _chatRepository.GetAutoAddAsync() : _chatRepository.GetAutoRemoveAsync());
            var user  = await _userService.FindUserByUsernameAsync(args.TrimStart("@"));

            foreach (var chat in chats)
            {
                try
                {
                    if (_isAdd)
                    {
                        await _chatService.AddUserAsync(chat, user);
                    }
                    else
                    {
                        await _chatService.RemoveUserAsync(chat, user);
                    }
                }
                catch (InvalidOperationException ex)
                {
                    if (ex.Message == "USER_ALREADY_PARTICIPANT" || ex.Message == "USER_NOT_PARTICIPANT")
                    {
                        continue;
                    }
                    throw;
                }
            }

            return(new CommandResult
            {
                Message = "Done",
                Success = true
            });
        }
Пример #2
0
 protected override Task <ChatActionResult> ActionAsync(string title, string username)
 {
     return(_chatService.AddUserAsync(title, username, User));
 }