static async void WorkMethod() { try { DataManager dm = new DataManager(); User userType = new User(); Quiz quizType = new Quiz(); UserToSession utsType = new UserToSession(); await Task.Run(() => { while (true) { // dm.test(); Console.WriteLine("Очікування запитів..."); TcpClient handler = server.AcceptTcpClient(); NetworkStream ns = handler.GetStream(); BinaryFormatter bf = new BinaryFormatter(); var item = bf.Deserialize(ns); Console.WriteLine($"Отриманий об'єкт: {item.GetType()}"); //Якщо отриманий об'єкт - юзер if (item.GetType() == userType.GetType()) { User user = (User)item; if (user.FuncName == "UserSignUp") { dm.UserSignUp(user); } if (user.FuncName == "UserEdit") { dm.UserEdit(user); Console.WriteLine($"UserEdit: {user.Login} - {user.Password}"); } if (user.FuncName == "UserSignIn") { user = dm.UserSignIn(user); bf.Serialize(ns, user); } if (user.FuncName == "UserFind") { user = dm.UserFind(user); bf.Serialize(ns, user); } if (user.FuncName == "SendActivateLink") { user = dm.SendActivateLink(user); bf.Serialize(ns, user); } } else if (item.GetType() == quizType.GetType()) { Quiz quiz = (Quiz)item; if (quiz.FuncName == "QuizQuestionsAdd") { Console.WriteLine("quiz - QuizQuestionsAdd"); dm.QuizQuestionsAdd(quiz); } if (quiz.FuncName == "QuizInit") { Console.WriteLine("quiz - QuizInit"); quiz = dm.QuizInit(quiz); bf.Serialize(ns, quiz); } if (quiz.FuncName == "QuizGetAll") { Console.WriteLine("quiz - QuizGetAll"); List <Quiz> quizes = dm.QuizGetAll(); bf.Serialize(ns, quizes); } } else if (item.GetType() == utsType.GetType()) { dm.UserSessionAdd((UserToSession)item); } Console.WriteLine($" >>>Done! {handler.Client.LocalEndPoint}"); ns.Close(); handler.Close(); } }); } catch (Exception err) { Console.WriteLine(err.Message); } }