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 }); }
protected override Task <ChatActionResult> ActionAsync(string title, string username) { return(_chatService.AddUserAsync(title, username, User)); }