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));
 }
Exemplo n.º 2
0
        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);
            }
        }