예제 #1
0
        private void Del_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                int selectedindex = DataGrid.SelectedIndex;
                if (selectedindex == -1)

                {
                    MessageBox.Show("Для удаления нужно что-то выбрать");
                }
                else
                {
                    Serialization        ser  = new Serialization();
                    List <Authorization> list = ser.Deserialize();

                    List <int> index = new List <int>();
                    for (int i = 0; i < list.Count; i++)
                    {
                        try
                        {
                            Students s = list[i].User as Students;
                            foreach (var row in DataGrid.SelectedItems)
                            {
                                Student st = row as Student;
                                if (st.Sername == s.Sername && st.Name == s.Name && s.Group == st.Group && st.Patronymic == s.Patronymic)
                                {
                                    Object           stud = new Students("-1", "-1", "-1", "-1", "-1", -1);
                                    Authorization    x    = new Authorization("-1", "-1", stud);
                                    HistoryOfChanges hist = new HistoryOfChanges(list[i], x);
                                    P.History.Add(hist);
                                    P.MakeIt10();
                                    foreach (Authorization X in list)
                                    {
                                        try
                                        {
                                            Teacher te = (Teacher)X.User;
                                            if (P.Name == te.Name && P.Sername == te.Sername && P.Subject == te.Subject && P.Patronymic == te.Patronymic)
                                            {
                                                te.History = P.History;
                                            }
                                        }
                                        catch { }
                                    }
                                    arj.Remove(st);
                                    index.Add(i);
                                    break;
                                }
                            }
                        }
                        catch
                        {
                        }
                    }
                    for (int i = 0; i < index.Count; i++)
                    {
                        list.RemoveAt(index[i]);
                    }
                    DataGrid.ItemsSource = null;
                    DataGrid.ItemsSource = arj;

                    ser.Serialize(list);
                }
            }catch { MessageBox.Show("Что-то пошло не так.. Попробуйте удалить данные в отдельном окне.", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); }
        }
예제 #2
0
        private void Show_Click(object sender, RoutedEventArgs e)
        {
            if (P == null)
            {
                NavigationService.Navigate(new Entrance()); return;
            }
            if (Group.Text == "")
            {
                MessageBox.Show("Выберите группу!", "", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                return;
            }
            List <Authorization> list = new List <Authorization>();
            Serialization        ser  = new Serialization();

            list = ser.Deserialize();
            //List<string> sername = new List<string>();
            //Authorization a;
            //for (int i = 0; i < list.Count; i++)
            //{
            //    try
            //    {
            //        Students st = (Students)list[i].User;
            //        sername.Add(st.Sername);
            //    }
            //    catch { }
            //}
            //sername.Sort();
            //for (int i = 0; i < sername.Count; i++)
            //{
            //    for (int j = 0; j < list.Count; j++)
            //    {
            //        try
            //        {
            //            Students st = (Students)list[j].User;
            //            if (st.Sername == sername[i])
            //            {
            //                a = list[j];
            //                list[j] = list[i];
            //                list[i] = a;
            //            }
            //        }
            //        catch { }
            //    }
            //}
            arj.Clear();
            foreach (Authorization el in list)
            {
                try
                {
                    Students student = (Students)el.User;
                    if (student.Group == Group.Text)
                    {
                        Student st = new Student(P.Subject, student);
                        arj.Add(st);
                    }
                }
                catch
                {
                }
            }



            if (arj.Count == 0)
            {
                MessageBox.Show("Студенты не найдены", "", MessageBoxButton.OK);
                DataGrid.ItemsSource  = null;
                SaveChanges.IsEnabled = false;
                return;
            }
            DataGrid.ItemsSource = null;
            DataGrid.ItemsSource = arj;
            group = Group.Text;
            mark  = -1;
            fio   = null;
            SaveChanges.IsEnabled = DataGrid.ItemsSource != null;
        }
예제 #3
0
        private void Search_Click(object sender, RoutedEventArgs e)
        {
            if (P == null)
            {
                NavigationService.Navigate(new Entrance()); return;
            }
            Group.Text = "";
            group      = "";
            if (FIO.Text == "" && Mark.Text == "")
            {
                MessageBox.Show("Для того, чтобы воспользоваться поиском, заполните все поля", "", MessageBoxButton.OK, MessageBoxImage.Exclamation); return;
            }
            if (FIO.Text != "" && Mark.Text == "")
            {
                string[] mas = FIO.Text.Split(new char[] { ' ' });

                if (mas.Length != 3)
                {
                    MessageBox.Show("Введите правильно ФИО", "", MessageBoxButton.OK); return;
                }
                fio = mas;
                arj.Clear();
                List <Authorization> list = new Serialization().Deserialize();
                foreach (Authorization el in list)
                {
                    try
                    {
                        Students student = (Students)el.User;
                        if (mas[0] == student.Sername && mas[1] == student.Name && mas[2] == student.Patronymic)
                        {
                            Student st = new Student(P.Subject, student);
                            arj.Add(st);
                        }
                    }
                    catch
                    {
                    }
                }
            }
            else
            {
                if (FIO.Text == "" && Mark.Text != "")
                {
                    mark = int.Parse(Mark.Text);
                    arj.Clear();
                    List <Authorization> list = new Serialization().Deserialize();
                    foreach (Authorization el in list)
                    {
                        try
                        {
                            Students student = (Students)el.User;

                            if (int.Parse(Mark.Text) == student.GetMark(P.Subject))
                            {
                                Student st = new Student(P.Subject, student);
                                arj.Add(st);
                            }
                        }
                        catch
                        {
                        }
                    }
                }
                else
                {
                    if (FIO.Text != "" && Mark.Text != "")
                    {
                        string[] mas = FIO.Text.Split(new char[] { ' ' });

                        if (mas.Length != 3)
                        {
                            MessageBox.Show("Введите правильно ФИО", "", MessageBoxButton.OK); return;
                        }
                        fio  = mas;
                        mark = int.Parse(Mark.Text);
                        arj.Clear();
                        List <Authorization> list = new Serialization().Deserialize();
                        foreach (Authorization el in list)
                        {
                            try
                            {
                                Students student = (Students)el.User;
                                if (mas[0] == student.Sername && mas[1] == student.Name && mas[2] == student.Patronymic && int.Parse(Mark.Text) == student.GetMark(P.Subject))
                                {
                                    Student st = new Student(P.Subject, student);
                                    arj.Add(st);
                                }
                            }
                            catch
                            {
                            }
                        }
                    }
                }
            }

            if (arj.Count == 0)
            {
                MessageBox.Show("Студенты не найдены", "", MessageBoxButton.OK);
                DataGrid.ItemsSource  = null;
                SaveChanges.IsEnabled = false;
                return;
            }
            DataGrid.ItemsSource  = null;
            DataGrid.ItemsSource  = arj;
            FIO.Text              = "";
            Mark.Text             = "";
            SaveChanges.IsEnabled = DataGrid.ItemsSource != null;
        }
예제 #4
0
        private void SaveChanges_Click(object sender, RoutedEventArgs e)
        {
            //try
            //{
            if (P == null)
            {
                NavigationService.Navigate(new Entrance()); return;
            }
            Serialization        ser            = new Serialization();
            List <Authorization> list           = ser.Deserialize();
            List <Students>      listOfStudents = new List <Students>();

            foreach (Authorization el in list)
            {
                try
                {
                    Students student = (Students)el.User;
                    if (group != "")
                    {
                        if (student.Group == group)
                        {
                            listOfStudents.Add(student);
                        }
                    }
                    else
                    {
                        if (fio != null && mark == -1)
                        {
                            if (student.Sername == fio[0] && student.Name == fio[1] && student.Patronymic == fio[2])
                            {
                                listOfStudents.Add(student);
                            }
                        }
                        else
                        {
                            if (fio == null && mark >= 0 && mark == student.GetMark(P.Subject))
                            {
                                listOfStudents.Add(student);
                            }
                            else
                            {
                                if (fio != null && mark >= 0 && student.Sername == fio[0] && student.Name == fio[1] && student.Patronymic == fio[2] && mark == student.GetMark(P.Subject))
                                {
                                    listOfStudents.Add(student);
                                }
                            }
                        }
                    }
                }
                catch
                {
                }
            }
            int t = 1;
            int m;

            for (int i = 0; i < listOfStudents.Count; i++)
            {
                if ((arj[i].Group == "ББИ161" || arj[i].Group == "ББИ162" || arj[i].Group == "ББИ163" || arj[i].Group == "ББИ164" || arj[i].Group == "ББИ165" || arj[i].Group == "ББИ166" || arj[i].Group == "ББИ167" || arj[i].Group == "ББИ168") == false || (0 <= arj[i].Mark && arj[i].Mark <= 10) == false)
                {
                    MessageBox.Show("Изменения должны быть корректными", "!", MessageBoxButton.OK, MessageBoxImage.Exclamation); return;
                }
                if (arj[i].Name == "" || arj[i].Sername == "" || arj[i].Patronymic == "")
                {
                    MessageBox.Show("Не оставляйте поля пустыми", "!", MessageBoxButton.OK, MessageBoxImage.Exclamation); return;
                }
                try
                {
                    m = int.Parse(arj[i].Name);
                    t = 0;
                }
                catch
                {
                }
                try
                {
                    m = int.Parse(arj[i].Sername);
                    t = 0;
                }
                catch
                {
                }
                try
                {
                    m = int.Parse(arj[i].Patronymic);
                    t = 0;
                }
                catch
                {
                }
                if (t == 0)
                {
                    MessageBox.Show("ФИО должны быть записаны буквами", "!", MessageBoxButton.OK, MessageBoxImage.Exclamation); return;
                }
                int _mark;
                switch (P.Subject)
                {
                case "Программирование":
                    _mark = listOfStudents[i].marks.Programming;
                    break;

                case "Экономика":
                    _mark = listOfStudents[i].marks.Economics;
                    break;

                case "Математический анализ":
                    _mark = listOfStudents[i].marks.Mathematical_analysis;
                    break;

                default:
                    _mark = 0;
                    break;
                }
                Authorization StudentBefore;
                Authorization StudentAfter;
                if (listOfStudents[i].Name != arj[i].Name || listOfStudents[i].Sername != arj[i].Sername || listOfStudents[i].Patronymic != arj[i].Patronymic || listOfStudents[i].Group != arj[i].Group || _mark != arj[i].Mark)
                {
                    for (int x = 0; x < list.Count; x++)
                    {
                        try
                        {
                            Students s = (Students)list[x].User;
                            if (listOfStudents[i] == s)
                            {
                                StudentBefore = list[x];
                                Students st = new Students(arj[i].Sername, arj[i].Name, arj[i].Patronymic, arj[i].Group, P.Subject, arj[i].Mark);
                                switch (P.Subject)
                                {
                                case "Программирование":
                                    st.marks.Economics             = s.marks.Economics;
                                    st.marks.Mathematical_analysis = s.marks.Mathematical_analysis;
                                    break;

                                case "Экономика":
                                    st.marks.Programming           = s.marks.Programming;
                                    st.marks.Mathematical_analysis = s.marks.Mathematical_analysis;
                                    break;

                                case "Математический анализ":
                                    st.marks.Programming = s.marks.Programming;
                                    st.marks.Economics   = s.marks.Economics;
                                    break;

                                default:

                                    break;
                                }
                                StudentAfter = new Authorization(list[x].Login, list[x].Password, st);
                                HistoryOfChanges hist = new HistoryOfChanges(StudentBefore, StudentAfter);
                                P.History.Add(hist);
                                P.MakeIt10();
                                list.Remove(StudentBefore);
                                list.Add(StudentAfter);

                                //int g=-1;
                                //for(int h=0; h<list.Count; h++)
                                //{
                                //    try
                                //    {

                                //        Students stud = (Students)list[i].User;
                                //        Students stu = StudentBefore.User as Students;
                                //        if (stud.Name == stu.Name && stud.Sername == stu.Sername && stud.Group == stu.Group && stud.Patronymic == stu.Patronymic)
                                //        {

                                //            g = h;

                                //        }
                                //    }
                                //    catch { }
                                //}
                                //if (g==-1)
                                //{
                                //    MessageBox.Show("Всё плохо");
                                //    return;
                                //}

                                foreach (Authorization X in list)
                                {
                                    try
                                    {
                                        Teacher te = (Teacher)X.User;
                                        if (P.Name == te.Name && P.Sername == te.Sername && P.Subject == te.Subject && P.Patronymic == te.Patronymic)
                                        {
                                            te.History = P.History;
                                        }
                                    }
                                    catch { }
                                }
                            }
                        }
                        catch
                        {
                        }
                    }
                }


                int pr = listOfStudents[i].marks.Programming, ec = listOfStudents[i].marks.Economics, ma = listOfStudents[i].marks.Mathematical_analysis;
                listOfStudents[i] = new Students(arj[i].Sername, arj[i].Name, arj[i].Patronymic, arj[i].Group, P.Subject, arj[i].Mark);
                switch (P.Subject)
                {
                case "Программирование":
                    listOfStudents[i].marks.Mathematical_analysis = ma;
                    listOfStudents[i].marks.Economics             = ec;
                    break;

                case "Экономика":
                    listOfStudents[i].marks.Programming           = pr;
                    listOfStudents[i].marks.Mathematical_analysis = ma;
                    break;

                case "Математический анализ":
                    listOfStudents[i].marks.Programming = pr;
                    listOfStudents[i].marks.Economics   = ec;
                    break;
                }

                //    listOfStudents[i].Name = arj[i].Name;
                //    listOfStudents[i].Sername = arj[i].Sername;
                //    listOfStudents[i].Patronymic = arj[i].Patronymic;
                //    listOfStudents[i].Group = arj[i].Group;
                //    switch (P.Subject)
                //    {
                //        case "Программирование":
                //            listOfStudents[i].marks.Programming = arj[i].Mark;
                //            break;
                //        case "Экономика":
                //            listOfStudents[i].marks.Economics = arj[i].Mark;
                //            break;
                //        case "Математический анализ":
                //            listOfStudents[i].marks.Mathematical_analysis = arj[i].Mark;
                //            break;
                //        default:
                //            break;
                //    }
            }
            List <string> sername = new List <string>();
            Authorization a;

            for (int i = 0; i < list.Count; i++)
            {
                try
                {
                    Students st = (Students)list[i].User;
                    sername.Add(st.Sername);
                }
                catch { }
            }
            sername.Sort();
            for (int i = 0; i < sername.Count; i++)
            {
                for (int j = 0; j < list.Count; j++)
                {
                    try
                    {
                        Students st = (Students)list[j].User;
                        if (st.Sername == sername[i])
                        {
                            a       = list[j];
                            list[j] = list[i];
                            list[i] = a;
                        }
                    }
                    catch { }
                }
            }
            ser.Serialize(list);
            //}
            //catch
            //{
            //    MessageBox.Show("Произошла ошибка, возможно, Вы неккоректно ввели данные","Ошибка", MessageBoxButton.OK,MessageBoxImage.Error);
            //}
        }