Exemplo n.º 1
0
        public void AddConnection(ClientObject clientObject)
        {
            LicenceKey key;
            JsonPack   jsOut;
            JsonPack   jsIn = clientObject.GetMessage();

            switch (jsIn.metod)
            {
            case "JSDRegister":
                JSDRegister reg = (JSDRegister)jsIn.data;
                key = db.LicenceKeys.Where(x => x.Key == reg.key).FirstOrDefault();
                if (key != null && (key.UnicId == null || key.UnicId == ""))
                {
                    key.UnicId = reg.Id_1 + reg.Id_2;
                }
                db.LicenceKeys.Attach(key);
                db.Entry(db.LicenceKeys.Find(key.LicenceKeyId)).State = EntityState.Modified;
                db.SaveChanges();
                clientObject.user = db.Users.Where(x => x.UserId == key.UserId).FirstOrDefault();
                jsOut             = new JsonPack();
                jsOut.data        = new JSDRegisterS()
                {
                    result = true
                };
                clients.Add(clientObject);
                clientObject.SendMessage(jsOut);
                break;

            case "JSDLogin":
                JSDLogin login = (JSDLogin)jsIn.data;
                key   = db.LicenceKeys.Where(x => x.Key == login.LicenseKey && x.UnicId == login.UniqPC).FirstOrDefault();
                jsOut = new JsonPack()
                {
                    data = new JSDLoginS()
                    {
                        result = false
                    }
                };
                if (key != null)
                {
                    clientObject.user = db.Users.Where(x => x.UserId == key.UserId).FirstOrDefault();
                    ((JSDLoginS)(jsOut.data)).result = true;
                }
                ;
                clients.Add(clientObject);
                clientObject.SendMessage(jsOut);
                break;

            default:
                break;
            }

            /*
             * if (clientObject.TryLogin() == ResultCode.Login)
             * {
             *  Thread clientThread = new Thread(new ThreadStart(clientObject.Process));
             *  clientThread.Start();
             * }*/
        }
Exemplo n.º 2
0
        public bool Login()
        {
            if (!client.Connected)
            {
                return(false);
            }
            else
            {
                string   LicenceKey = GetLicenseKey();
                JsonPack pack       = new JsonPack();
                JSDLogin data       = new JSDLogin()
                {
                    LicenseKey = LicenceKey,
                    UniqPC     = pack.GetUniqPC()
                };
                pack.data  = data;
                pack.metod = data.GetType().Name;

                SendMessage(pack.ToString());

                JsonPack receive = ReceiveOneMessage();

                if (!receive.Accept)
                {
                    return(false);
                }
                else
                {
                    // запускаем новый поток для получения данных
                    receiveThread = new Thread(new ThreadStart(ReceiveMessage));
                    receiveThread.Start(); //старт потока
                    return(true);
                }
            }

            //return false;
        }