private void BtnStartGame_Click(object sender, RoutedEventArgs e) { UserToSession userSession = new UserToSession(); Session session = new Session(); userSession.Session = session; userSession.User = UserSet; userSession.Session.Quiz = QuizSet; int cnt = QuizSet.Question.Count; for (int i = 0; i < cnt; i++) { Play_Quiz play = new Play_Quiz(userSession, i); if (play.ShowDialog() == true) { userSession = play.UserSessionSet; } } DbCommands cmd = new DbCommands(); cmd.SendUserSession(userSession); Quiz_Final final = new Quiz_Final(); final.ShowDialog(); }
//Question //Session public void UserSessionAdd(UserToSession uts) { connection.Open(); // UserToSession userSession = uts; Session session = uts.Session; User user = uts.User; Quiz quiz = uts.Session.Quiz; session.Date = DateTime.Now; session.QuizId = quiz.Id; session.AccessCode = "asdad"; string sqlQuery = "INSERT INTO Sessions(AccessCode, Date, StatusId, QuizId) " + "VALUES (@AccessCode, @Date, 1, @QuizId)"; connection.Execute(sqlQuery, session); Console.WriteLine(">>>Inserted in Sessions"); sqlQuery = "SELECT * FROM Sessions WHERE QuizId = @QuizId and Date = @Date"; session = connection.QueryFirst <Session>(sqlQuery, session); Console.WriteLine(">>>Selected from Sessions"); sqlQuery = "INSERT INTO UsersToSessions(SessionId,UserId) " + $"VALUES (@Id, {user.Id})"; connection.Execute(sqlQuery, session); Console.WriteLine(">>>Inserted in UsersToSessions"); //? sqlQuery = "SELECT Id FROM UsersToSessions " + $"WHERE SessionId = @Id and UserId = {user.Id}"; uts.Id = connection.QueryFirst <int>(sqlQuery, session); Console.WriteLine(">>>Selected ID from UsersToSessions"); foreach (Question question in uts.Session.Quiz.Question) { if (question.BoolTrue.Count != 0) { sqlQuery = "INSERT INTO UserAnswersBool(Answer, BoolId, UserSessionId) " + $"VALUES (@Answer, {question.BoolTrue.First().Id},{uts.Id})"; connection.Execute(sqlQuery, uts.UserAnswerBool); Console.WriteLine(">>>>>>Inserted in UserAnswersBool"); } if (question.DefaultTrue.Count != 0) { sqlQuery = "INSERT INTO UserAnswersDefault(Answer, DefaultId, UserSessionId) " + $"VALUES (@Answer, {question.DefaultTrue.First().Id},{uts.Id})"; connection.Execute(sqlQuery, uts.UserAnswerDefault); Console.WriteLine(">>>>>>Inserted in UserAnswersDefault"); } if (question.SequenceTrue.Count != 0) { sqlQuery = "INSERT INTO UsersAnswersSequence(Answer1,Answer2,Answer3,Answer4,SequenceId,UserSessionId) " + $"VALUES (@Answer1,@Answer2,@Answer3,@Answer4,{question.SequenceTrue.First().Id},{uts.Id})"; connection.Execute(sqlQuery, uts.UserAnswerSequence); Console.WriteLine(">>>>>>Inserted in UsersAnswersSequence"); } } connection.Close(); }
public Play_Quiz(UserToSession uts, int num) { InitializeComponent(); UserSessionSet = uts; NumberOfQuestion = num; InitQuestion(); }
public void SendUserSession(UserToSession uts) { try { TcpClient client = new TcpClient(); client.Connect(ip, port); NetworkStream ns = client.GetStream(); BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(ns, uts); ns.Close(); client.Close(); } catch (Exception err) { } }
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); } }