public WindowStudentAuthorizationAccount() { InitializeComponent(); UserNameText.Text = Program.CurrentAccount.Name; tempAccount = Program.CurrentAccount; Program.CurrentAccount = null; }
static bool ParserAccount(string[] readinFile) { //вхождение в блок аккаутна bool inAccount = false; bool inReg = false; string nameAccount = ""; string passwordAccount = ""; Guid guidAccount = Guid.Empty; DateTime dataReg = new DateTime(); //вхождение в блок теста bool inTest = false; StudentSolvedTest currentTest = null; string line = ""; try { foreach (string searchCommand in readinFile) { line += searchCommand; if (line.Contains("<")) { if (line.Contains(">")) { //вырезаем команду из строки line #region delete substring string subStrCommand = line.Substring(line.IndexOf('<'), line.IndexOf('>')); line = line.Remove(line.IndexOf('<'), line.IndexOf('>')); #endregion #region Command string readLine = subStrCommand.Split('<')[1]; string command = readLine.Split('>')[0]; switch (command[0]) { #region command first 'a' case 'a': if (command.Substring(0, 7).CompareTo("account") == 0) { string valStr = command.Split('(')[1]; string nameStudentAndPasswordAndGuid = valStr.Split(')')[0]; nameAccount = nameStudentAndPasswordAndGuid.Split(';')[0]; passwordAccount = nameStudentAndPasswordAndGuid.Split(';')[1]; guidAccount = Guid.Parse(nameStudentAndPasswordAndGuid.Split(';')[2]); CurrentAccount = new StudentAccount(nameAccount, passwordAccount, guidAccount); inAccount = true; } break; #endregion #region command first 'q' case 'r': if ((inAccount) && (command[1] == 'e')) { string valStr = command.Split('(')[1]; dataReg = DateTime.Parse(valStr.Split(')')[0]); CurrentAccount.RegistredData = dataReg; inReg = true; } break; #endregion #region command first 't' case 't': if ((inAccount) && (inReg) && (command[1] == 'e')) { string valStr = command.Split('(')[1]; string nameAndGuidTest = valStr.Split(')')[0]; string nameTest = nameAndGuidTest.Split(';')[0]; Guid guidTest = Guid.Parse(nameAndGuidTest.Split(';')[1]); currentTest = new StudentSolvedTest(nameTest, guidTest); inTest = true; } else if ((inAccount) && (inReg) && (inTest) && (command[1] == 'i')) { string valStr = command.Split('(')[1]; DateTime timeTest = DateTime.Parse(valStr.Split(')')[0]); currentTest.TimeTest = timeTest; } break; #endregion #region command first 'c' case 'c': if ((inAccount) && (inReg) && (inTest) && (command[1] == 'q')) { string valStr = command.Split('(')[1]; int num = Convert.ToInt32(valStr.Split(')')[0]); currentTest.CountQuestions = num; } else if ((inAccount) && (inReg) && (inTest) && (command[1] == 'a')) { #region Result if (command.Substring(0, 3).CompareTo("can") == 0 && command[3] == '(') { string valStr = command.Split('(')[1]; int num = Convert.ToInt32(valStr.Split(')')[0]); currentTest.CountAnswers = num; } else if (command.Substring(0, 4).CompareTo("cans") == 0 && command[4] == '(') { string valStr = command.Split('(')[1]; int num = Convert.ToInt32(valStr.Split(')')[0]); currentTest.CountStudentAnswers = num; } else if (command.Substring(0, 4).CompareTo("cant") == 0 && command[4] == '(') { string valStr = command.Split('(')[1]; int num = Convert.ToInt32(valStr.Split(')')[0]); currentTest.CountTrunessAnswers = num; } else if (command.Substring(0, 5).CompareTo("canst") == 0 && command[5] == '(') { string valStr = command.Split('(')[1]; int num = Convert.ToInt32(valStr.Split(')')[0]); currentTest.CountTrunessStudentAnswers = num; } #endregion } break; #endregion #region command first '/' case '/': if (command[1] == 'a') { inAccount = false; return(true); } else if (command[1] == 't') { CurrentAccount.SolvedTests.Add(currentTest); inTest = false; } break; #endregion } #endregion } else { //добавляем новую строку в line для поиска конца команды '>' continue; } } line = ""; } } catch (Exception) { WindowMsgError error = new WindowMsgError("Ошибка", "Ошибка при чтении файла аккаунта"); error.ShowDialog(); return(false); } WindowMsgError error2 = new WindowMsgError("Ошибка", "Ошибка при чтении файла аккаунта"); error2.ShowDialog(); return(false); }