Esempio n. 1
0
        /// <summary>
        /// Функция добавления нового студента в коллекцию
        /// Осуществляет проверку логина на уникальность
        /// Добавляет информацию в таблицу
        /// Добавляет информацию в БД
        /// </summary>
        private async void AddNewStudent(object sender, EventArgs e)
        {
            List <Student> students = await dataBase.Get_AllDocs <Student>(Collection_Name);

            Student NewStudent = new Student(students, textBox1.Text, textBox2.Text, textBox3.Text);

            if (!NewStudent.ConfirmUniqueness(students)) //Проверка логина на уникальность
            {
                MessageBox.Show("Логин уже существует!", "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            NewStudent.AddTo_DataGridView(ref dataGridView1);
            dataBase.AddToCollectionAsync(NewStudent, Collection_Name);
        }
        /// <summary>
        /// Обработчик события "Нажатие на кномпу "Изменить" "
        /// Функция изменения конкретной записи в БД
        /// </summary>
        private async void Change(object sender, EventArgs e)
        {
            Student        student  = new Student(Id, textBox1.Text, textBox2.Text, textBox3.Text);
            List <Student> students = await dataBase.Get_AllDocs <Student>(Collection_Name);

            IMongoCollection <Student> Collection = dataBase.Database.GetCollection <Student>(Collection_Name);

            if (!student.ConfirmUniqueness(students)) //Проверка логина на уникальность
            {
                MessageBox.Show("Логин уже существует!", "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }
            await Collection.ReplaceOneAsync(p => p.Id == Id, student);

            if (Rows.Count != 0) //Если в стеке еще остались записи, то добавить их данные в поля для изменения и продолжить работу окна
            {
                Id            = Rows.Peek().Cells[0].Value.ToString();
                textBox1.Text = Rows.Peek().Cells[1].Value.ToString();
                textBox2.Text = Rows.Peek().Cells[2].Value.ToString();
                textBox3.Text = Rows.Peek().Cells[3].Value.ToString();
                Rows.Pop();
                return;
            }
            // Если стек пуст, то окно закрывается
            else
            {
                Close();
            }
        }