public async Task <string> ProcessorAsync(OnChatCommandReceivedArgs e) { if (e.Command.ArgumentsAsList.Count < 1) { return(StandardMessages.FilterFormat); } User user = null; if (e.Command.ArgumentsAsList.Count >= 2) { try { user = await _apiRetriever.GetUserByUsernameAsync(e.Command.ArgumentsAsList[1]) .ConfigureAwait(false); } catch (Exception exception) { Log.Error(exception.Message, "Bad request {parameter}", e.Command.ArgumentsAsString); return(String.Format(StandardMessages.ErrorMessages.InvalidName, e.Command.ArgumentsAsList[1])); } if (user == null) { return(String.Format(StandardMessages.ErrorMessages.UserMissing, e.Command.ArgumentsAsList[1])); } } switch (e.Command.ArgumentsAsList[0]) { case "get": { if (user != null) { if (_filterManager.CheckIfUserIdFiltered(user.Id)) { return($"/me {user.DisplayName} este filtrat!"); } return($"/me {user.DisplayName} nu este filtrat!"); } var filteredUsers = _filterManager.RetrieveFilteredUsers(); if (filteredUsers.Count <= 0) { return("/me Nici un User filtrat!"); } var builder = new StringBuilder(); builder.Append("Useri filtrati:"); for (var i = 0; i < filteredUsers.Count; i++) { builder.Append($" {filteredUsers[i].DisplayName},"); } return($"/me {builder}"); } case "add": { if (user == null) { return(StandardMessages.FilterFormat); } if (await _filterManager.AddToFilterAsync(new UserBase(user.DisplayName, user.Id)) .ConfigureAwait(false)) { return($"/me {user.DisplayName} adaugat la Filtru!"); } return($"/me {user.DisplayName} deja in Filtru!"); } case "rem": case "remove": { if (user == null) { return(StandardMessages.FilterFormat); } if (await _filterManager.RemoveFromFilterAsync(new UserBase(user.DisplayName, user.Id)) .ConfigureAwait(false)) { return($"/me {user.DisplayName} sters din Filtru!"); } return($"/me {user.DisplayName} nu este in Filtru!"); } default: return(StandardMessages.FilterFormat); } }