public void OnActionExecuting(ActionExecutingContext context) { foreach (var argument in context.ActionArguments.Values.Where(v => v is AddUserToChatRequest)) { AddUserToChatRequest command = argument as AddUserToChatRequest; _chatValidationService.RequireUserIsGroupMemberFromChat(command.Username, command.ChatId); _chatValidationService.RequireUserIsNotChatMember(command.Username, command.ChatId); } }
public async Task <IActionResult> AddUserToChat(string chatId, AddUserToChatRequest request) { using (var db = ArangoDatabase.CreateWithSetting()) { var usersInChatGraph = db.Graph("ChatsUserGraph"); var edge = new ChatMembers { Chat = chatId, User = request.UserId }; await usersInChatGraph.InsertEdgeAsync <ChatMembers>(edge); return(Ok()); } }
public IActionResult AddUserToChat(AddUserToChatRequest command) { _chatUserService.AddUserToChatByUsername(command.Username, command.ChatId); return(NoContent()); }