public static async Task WriteMessageAsync() { Console.Write("Enter your message: "); string message = Console.ReadLine(); await UpdateCurrentChat(); WriteMessageDto writeMessage = EncodeMessage(message, CURRENT_CHAT); if (writeMessage == null) { Console.WriteLine("Failed to write a message. Try again."); await WriteMessageAsync(); } else { try { await ExecuteProtected(async() => { MessageDto messageDto = await CHAT_CLIENT.WriteMessage(writeMessage); Console.WriteLine("\nMessage sent!\n\n"); await UpdateCurrentChat(); DrawChat(CURRENT_CHAT); }, true); } catch (Exception e) { Console.WriteLine($"{e.Message}\n"); PrintChatMenu(); } } }