Ejemplo n.º 1
0
 public WindowStudentAuthorizationAccount()
 {
     InitializeComponent();
     UserNameText.Text      = Program.CurrentAccount.Name;
     tempAccount            = Program.CurrentAccount;
     Program.CurrentAccount = null;
 }
Ejemplo n.º 2
0
        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);
        }