public ActionResult Create([Bind(Include = "Reciever,MessageText")] MessageTextInput messageTextInput) { if (ModelState.IsValid) { db.spSendMessage(Session["Name"].ToString(), messageTextInput.Reciever, messageTextInput.MessageText, DateTime.Now); return(RedirectToAction("Index")); } return(View(messageTextInput)); }
private static async Task RenderUiAndHandleInputAsync(ITcpPeerMessenger messenger, MessageLog messageLog, bool isChatbotMode) { IMessengerCommandHandler commandHandler = new MessengerCommandHandler(messenger, messageLog); IMessengerCommandParser commandParser = new MessengerCommandParser(); int headerHeight = 2; int splitterHeight = 1; int inputHeight = 5; Header header = new Header(isChatbotMode); int logViewHeight = Console.WindowHeight - headerHeight - splitterHeight - inputHeight; int logViewTop = headerHeight; MessageLogView messageLogView = new MessageLogView(logViewTop, logViewHeight, messageLog, messenger.EndPoint); int splitterTop = headerHeight + logViewHeight; HorizontalSplitter splitter = new HorizontalSplitter(splitterTop); int inputTop = headerHeight + splitterHeight + logViewHeight; MessageTextInput messageTextInput = new MessageTextInput(inputTop); messageTextInput.MessageEntered += async(s, input) => { if (input != "") { try { MessengerCommand command = commandParser.Parse(input); await command.AcceptHandlerAsync(commandHandler); } catch (MessengerCommandParserException ex) { messageLog.Add(new SystemMessage(ex.Message)); } catch (Exception e) { messenger.Stop(); throw e; } } }; var components = new List <ConsoleUiComponent> { header, messageLogView, splitter, messageTextInput }; Console.Clear(); while (messenger.IsStarted) { foreach (var c in components) { c.Render(); } await Task.Delay(500); } }