public ActionResult PostLogin(LoginModel loginModel)
        {
            if (ModelState.IsValid)
            {
                // Guid will be used in SignalR auth
                Guid uuid = Guid.NewGuid();
                loginModel.Uuid = uuid.ToString();
                Session["loginModel"] = loginModel;
                return RedirectToAction("index", "home");
            }

            return View(loginModel);
        }
        public void startIrc(LoginModel model)
        {
            _loginData = model;
            _connectionId = Context.ConnectionId;
            foreach (IrcTask t in Connections.Values)
            {
                if (t.User_uuid.Equals(model.Uuid))
                {
                    // Resume old connection
                    Connections.Remove(t.Connection_id);
                    Connections.Add(_connectionId, t);
                    t.Connection_id = _connectionId;
                    t.sendCommand("motd");
                    t.onConnectionResume();
                    // Manually trigger user list update function
                    t.onUserListUpdate();
                    return;
                }
            }

            IrcConfiguration conf = new IrcConfiguration();
            conf.Server = _loginData.Server;
            conf.NickName = _loginData.Name;
            conf.Channel = _loginData.Channel;
            if (null != _loginData.Port)
            {
                conf.Port = (int)_loginData.Port;
            }
            conf.ChannelPassword = _loginData.ChannelPassword;
            conf.ServerPassword = _loginData.ServerPassword;
            _stayLogged = _loginData.StayLogged;

            IrcTask ircTask = new IrcTask(this, _connectionId, _loginData.Uuid, conf);
            Connections.Add(_connectionId, ircTask);
        }