Ejemplo n.º 1
0
        private void HandleLoginPacket(JObject json)
        {
            Console.WriteLine("Login packet received");
            //Recieve the username and password from json.
            var packet = new LoginPacket(json);

            JObject returnJson;
            //Code to check User/pass here
            if (Authentication.Authenticate(packet.Username, packet.Passhash, this))
            {
                returnJson = new LoginResponsePacket(
                    Statuscode.Status.Ok,
                    packet.Username,
                    Authentication.GetUser(packet.Username).IsDoctor
                    );
                var user = _datastorage.GetUser(packet.Username);
                if (user != null)
                {
                    user.OnlineStatus = true;
                    if (!user.IsDoctor)
                        SendToAllOnlineDoctors(new UserChangedPacket(user));
                }

            }
            else if (Authentication.GetUser(packet.Username) != null)
            {
                if (Authentication.GetUser(packet.Username).OnlineStatus)
                    returnJson = new ResponsePacket(Statuscode.Status.AlreadyOnline, "RESP-LOGIN");
                else
                    returnJson = new ResponsePacket(Statuscode.Status.SyntaxError, "RESP-LOGIN");
            }
            else //If the code reaches this point, the authentification has failed.
            {
                returnJson = new ResponsePacket(Statuscode.Status.InvalidUsernameOrPassword, "RESP-LOGIN");
            }

            //Send the result back to the client.
            Send(returnJson.ToString());
#if DEBUG
            Console.WriteLine(packet.ToString());
            Console.WriteLine(returnJson.ToString());
#endif
        }
Ejemplo n.º 2
0
        public static Packet GetPacketFromJson(JObject json)
        {
            if (json == null) return null;


            Packet p = null;
            switch ((string)json.GetValue("CMD", StringComparison.CurrentCultureIgnoreCase))
            {

                //case ChatPacket.DefCmd:
                //    p = new ChatPacket(json);
                //    break;
                case DisconnectPacket.DefCmd:
                    p = new DisconnectPacket(json);
                    break;
                case LoginPacket.DefCmd:
                    p = new LoginPacket(json);
                    break;
                case LoginResponsePacket.DefCmd:
                    p = new LoginResponsePacket(json);
                    break;
                case SerialDataPushPacket.DefCmd:
                    p = new SerialDataPushPacket(json);
                    break;
                //case RegisterPacket.DefCmd:
                //    p = new RegisterPacket(json);
                //    break;
                //case RegisterResponsePacket.DefCmd:
                //    p = new RegisterResponsePacket(json);
                //    break;
                case UserChangedPacket.DefCmd:
                    p = new UserChangedPacket(json);
                    break;
                case PullResponsePacket.DefCmd:
                    p = new PullResponsePacket<User>(json);
                    break;
                default:
                    try
                    {
                        p = new ResponsePacket(json);
                    }
                    catch (ArgumentException)
                    {
                    }
                    break;
            }
            return p;
        }
Ejemplo n.º 3
0
        //private ResponsePacket HandlePullRequestMessagesByUser(PullRequestPacket packet)
        //{
        //    var allMessages = _datastorage.GetMessages(packet.SearchKey);
        //    return new PullResponsePacket<ChatMessage>(Statuscode.Status.Ok,
        //        PullResponsePacket<ChatMessage>.DataType.ChatMessage,
        //        allMessages);
        //}

        //private ResponsePacket HandlePullRequestReceivedMessages(PullRequestPacket packet)
        //{
        //    var allMessages = _datastorage.GetMessagesSentTo(packet.SearchKey);
        //    return new PullResponsePacket<ChatMessage>(Statuscode.Status.Ok,
        //        PullResponsePacket<ChatMessage>.DataType.ChatMessage,
        //        allMessages);

        //}

        //        private void HandleRegisterPacket(JObject json)
        //        {
        //            Console.WriteLine("RegisterPacket Received");

        //            var packet = new RegisterPacket(json);
        //            var user = new User(packet.Nickname, packet.Username, packet.Passhash);
        //            Datastorage.Instance.AddUser(user);

        //            var returnPacket = new RegisterResponsePacket(Statuscode.Status.Ok);
        //            Send(returnPacket);

        //#if DEBUG
        //            Console.WriteLine(packet.ToString());
        //            Console.WriteLine(returnPacket.ToString());
        //#endif
        //        }

        private void HandleDisconnectPacket(JObject json)
        {
            Console.WriteLine("DisconnectPacket Received");

            var packet = new DisconnectPacket(json);

            var returnPacket = new ResponsePacket(Statuscode.Status.Unauthorized);
            if (Authentication.CheckLoggedIn(packet.Username))
            {
                Authentication.DeAuthenticate(packet.Username);
                returnPacket = new ResponsePacket(Statuscode.Status.Ok);
            }

            Send(returnPacket);

#if DEBUG
            Console.WriteLine(packet.ToString());
            Console.WriteLine(returnPacket.ToString());
#endif
        }