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(); * }*/ }
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; }