public CoordinatorForm()
        {
            InitializeComponent();
            this.StartPosition = FormStartPosition.CenterScreen;
            SqlConnection connection = UserCoordinator.GetDBConnection();

            connection.Open();
            SqlTransaction transaction = connection.BeginTransaction();

            try
            {
                using (SqlCommand sql = new SqlCommand())
                {
                    SqlCommand sqlCom = new SqlCommand(@"SELECT * FROM dbo.Worker WHERE ID = @ID", connection);
                    sqlCom.Transaction = transaction;
                    sqlCom.Parameters.Add("@ID", SqlDbType.Int);
                    sqlCom.Parameters["@ID"].Value = Convert.ToInt32(ID);
                    SqlDataReader reader = sqlCom.ExecuteReader();
                    reader.Read();
                    label7.Text = reader.GetString(0);
                    label8.Text = reader.GetString(1);
                    label9.Text = reader.GetString(2);
                    reader.Close();

                    SqlCommand sqlCom2 = new SqlCommand(@"SELECT * FROM dbo.MedicalBook WHERE WorkerID = @ID", connection);
                    sqlCom2.Transaction = transaction;
                    sqlCom2.Parameters.Add("@ID", SqlDbType.Int);
                    sqlCom2.Parameters["@ID"].Value = Convert.ToInt32(ID);
                    SqlDataReader reader2 = sqlCom2.ExecuteReader();
                    reader2.Read();
                    if (reader2.GetBoolean(1) == false)
                    {
                        label12.Text = "Болен";
                        button2.Text = "Сообщить о выздоровлении";
                    }
                    else
                    {
                        label12.Text = "Здоров";
                    }
                    reader2.Close();

                    SqlCommand sqlCom1 = new SqlCommand(@"SELECT * FROM dbo.VPB WHERE WorkerID = @ID", connection);
                    sqlCom1.Transaction = transaction;
                    sqlCom1.Parameters.Add("@ID", SqlDbType.Int);
                    sqlCom1.Parameters["@ID"].Value = Convert.ToInt32(ID);
                    SqlDataReader reader1 = sqlCom1.ExecuteReader();
                    reader1.Read();
                    label10.Text = reader1.GetInt32(1).ToString();
                    label11.Text = reader1.GetInt32(2).ToString();
                    reader1.Close();
                }
                transaction.Commit();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Что-то пошло не так! Обратитесь к разработчику.", "Ошибка");
                transaction.Rollback();
            }
            connection.Close();
        }
        private void Button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text != "")
            {
                SqlConnection connection = UserCoordinator.GetDBConnection();
                connection.Open();
                SqlTransaction transaction = connection.BeginTransaction();

                try
                {
                    using (SqlCommand sql = new SqlCommand())
                    {
                        SqlCommand sqlCom =
                            new SqlCommand(@"SELECT WorkerID FROM Appointment WHERE ID = @ID", connection);
                        sqlCom.Transaction = transaction;
                        sqlCom.Parameters.Add("@ID", SqlDbType.Int);
                        sqlCom.Parameters["@ID"].Value = Convert.ToInt32(textBox1.Text);
                        SqlDataReader reader = sqlCom.ExecuteReader();
                        if (reader.Read() && reader.GetInt32(0).ToString() == ID)
                        {
                            reader.Close();

                            DialogResult result = MessageBox.Show(
                                "Вы уверены?",
                                "Сообщение",
                                MessageBoxButtons.YesNo,
                                MessageBoxIcon.Information,
                                MessageBoxDefaultButton.Button1,
                                MessageBoxOptions.DefaultDesktopOnly);
                            if (result == DialogResult.Yes)
                            {
                                sqlCom =
                                    new SqlCommand(@"DELETE FROM Appointment WHERE ID = @ID", connection);
                                sqlCom.Parameters.Add("@ID", SqlDbType.Int);
                                sqlCom.Parameters["@ID"].Value = Convert.ToInt32(textBox1.Text);
                                sqlCom.ExecuteNonQuery();
                                UpdateTable();
                            }
                        }
                        else
                        {
                            MessageBox.Show("Такого номера нет в таблице.", "Ошибка");
                        }
                    }
                    transaction.Commit();
                } catch (Exception ex)
                {
                    MessageBox.Show("Что-то пошло не так! Обратитесь к разработчику.", "Ошибка");
                    transaction.Rollback();
                }
                connection.Close();
            }
            else
            {
                MessageBox.Show("Вы не ввели никакого номера.", "Ошибка");
            }
        }
        private void Button3_Click(object sender, EventArgs e)
        {
            if (textBox2.Text != "")
            {
                SqlConnection connection = UserCoordinator.GetDBConnection();
                connection.Open();
                SqlTransaction transaction = connection.BeginTransaction();

                try
                {
                    using (SqlCommand sql = new SqlCommand())
                    {
                        SqlCommand sqlCom =
                            new SqlCommand(@"SELECT EventID, ZoneID, WorkerID FROM Appointment WHERE ID = @ID", connection);
                        sqlCom.Transaction = transaction;
                        sqlCom.Parameters.Add("@ID", SqlDbType.Int);
                        sqlCom.Parameters["@ID"].Value = Convert.ToInt32(textBox2.Text);
                        SqlDataReader reader = sqlCom.ExecuteReader();
                        if (reader.Read())
                        {
                            if (reader.GetInt32(1) == 4 && reader.GetInt32(2) == Convert.ToInt32(ID))
                            {
                                Coordination coordination = new Coordination(reader.GetInt32(0).ToString());
                                reader.Close();
                                coordination.ShowDialog();
                                transaction.Commit();
                            }
                            else
                            {
                                reader.Close();
                                MessageBox.Show("Вы не координатор данного мероприятия.", "Ошибка");
                                transaction.Rollback();
                            }
                        }
                        else
                        {
                            reader.Close();
                            MessageBox.Show("Такого номера нет в таблице.", "Ошибка");
                            transaction.Rollback();
                        }
                    }
                } catch (Exception ex)
                {
                    MessageBox.Show("Что-то пошло не так! Обратитесь к разработчику.", "Ошибка");
                    transaction.Rollback();
                }
                connection.Close();
            }
            else
            {
                MessageBox.Show("Вы не ввели никакого номера.", "Ошибка");
            }
        }
        private void Button3_Click(object sender, EventArgs e)
        {
            CoordinatorEdit coordinatorEdit = new CoordinatorEdit(textBox1.Text, ID);

            SqlConnection connection = UserCoordinator.GetDBConnection();

            connection.Open();
            SqlTransaction transaction = connection.BeginTransaction();

            try
            {
                using (SqlCommand sql = new SqlCommand())
                {
                    SqlCommand sqlCom =
                        new SqlCommand(@"SELECT WorkerID, ZoneID, TimeStart, TimeEnd, EventID  FROM Appointment WHERE ID = @ID", connection);
                    sqlCom.Transaction = transaction;
                    sqlCom.Parameters.Add("@ID", SqlDbType.Int);
                    sqlCom.Parameters["@ID"].Value = Convert.ToInt32(textBox1.Text);
                    SqlDataReader reader = sqlCom.ExecuteReader();
                    if (reader.Read() && reader.GetInt32(4).ToString() == ID)
                    {
                        int rankID = reader.GetInt32(1);
                        if (rankID != 4 && rankID != 5)
                        {
                            coordinatorEdit.textBox1.Text           = reader.GetInt32(0).ToString();
                            coordinatorEdit.comboBox1.SelectedIndex = rankID - 1;
                            coordinatorEdit.textBox4.Text           = reader.GetDateTime(2).ToString("dd/MM/yyyy HH:mm");
                            coordinatorEdit.textBox5.Text           = reader.GetDateTime(3).ToString("dd/MM/yyyy HH:mm");
                            reader.Close();
                            coordinatorEdit.ShowDialog();
                            UpdateTable();
                            transaction.Commit();
                        }
                        else
                        {
                            MessageBox.Show("Вы не имеете права изменять организатора и координатора мероприятия.", "Ошибка");
                            transaction.Rollback();
                        }
                    }
                    else
                    {
                        reader.Close();
                        MessageBox.Show("Такого номера нет в таблице.", "Ошибка");
                        transaction.Rollback();
                    }
                }
            } catch (Exception ex)
            {
                MessageBox.Show("Что-то пошло не так! Обратитесь к разработчику.", "Ошибка");
                transaction.Rollback();
            }
            connection.Close();
        }
        private void Button2_Click(object sender, EventArgs e) //сообщить о болезни
        {
            SqlConnection connection = UserCoordinator.GetDBConnection();

            connection.Open();
            SqlTransaction transaction = connection.BeginTransaction();

            try
            {
                if (label12.Text == "Здоров")
                {
                    DialogResult result = MessageBox.Show(
                        "Вы уверены? \n" +
                        "Ваше действие уберет Вас со всех мероприятий следующей недели!",
                        "Сообщение",
                        MessageBoxButtons.YesNo,
                        MessageBoxIcon.Information,
                        MessageBoxDefaultButton.Button1,
                        MessageBoxOptions.DefaultDesktopOnly);
                    if (result == DialogResult.Yes)
                    {
                        SqlCommand sqlCom = new SqlCommand(@"UPDATE dbo.MedicalBook SET IsHealthy = 0 WHERE WorkerID = @ID", connection);
                        sqlCom.Transaction = transaction;
                        sqlCom.Parameters.Add("@ID", SqlDbType.Int);
                        sqlCom.Parameters["@ID"].Value = Convert.ToInt32(ID);
                        sqlCom.ExecuteNonQuery();
                        label12.Text = "Болен";
                        button2.Text = "Сообщить о выздоровлении";
                        MessageBox.Show("Выздоравливайте!", "Сообщение");
                    }
                }
                else
                {
                    SqlCommand sqlCom = new SqlCommand(@"UPDATE dbo.MedicalBook SET IsHealthy = 1 WHERE WorkerID = @ID", connection);
                    sqlCom.Transaction = transaction;
                    sqlCom.Parameters.Add("@ID", SqlDbType.Int);
                    sqlCom.Parameters["@ID"].Value = Convert.ToInt32(ID);
                    sqlCom.ExecuteNonQuery();
                    label12.Text = "Здоров";
                    button2.Text = "Сообщить о болезни";
                    MessageBox.Show("Рады видеть Вас снова в строю!", "Сообщение");
                }
                transaction.Commit();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Что-то пошло не так! Обратитесь к разработчику.", "Ошибка");
                transaction.Rollback();
            }
            connection.Close();
        }
        public void CreateUser_saves_a_User_via_context()
        {
            var user    = GetUser();
            var mockSet = new Mock <DbSet <User> >();

            var mockContext = new Mock <Models.Model>();

            mockContext.Setup(m => m.Users).Returns(mockSet.Object);

            var coordinator = new UserCoordinator(mockContext.Object);

            coordinator.Create(user);

            mockSet.Verify(m => m.Add(It.IsAny <User>()), Times.Once());
            mockContext.Verify(m => m.SaveChanges(), Times.Once());
        }
        public void UpdateTable()
        {
            SqlConnection connection = UserCoordinator.GetDBConnection();

            connection.Open();
            SqlTransaction transaction = connection.BeginTransaction();

            try
            {
                using (SqlCommand sql = new SqlCommand())
                {
                    SqlCommand sqlCom =
                        new SqlCommand(@"SELECT Appointment.ID, Event_.NameE, EventZone.NameEZ, TimeStart, TimeEnd FROM dbo.Appointment
                                     JOIN Event_ ON Event_.ID = Appointment.EventID
                                     JOIN EventZone ON EventZone.ID = Appointment.ZoneID
                                     WHERE WorkerID = @ID", connection);
                    sqlCom.Transaction = transaction;
                    sqlCom.Parameters.Add("@ID", SqlDbType.Int);
                    sqlCom.Parameters["@ID"].Value = Convert.ToInt32(ID);
                    SqlDataReader reader = sqlCom.ExecuteReader();

                    listView1.Items.Clear();
                    while (reader.Read())
                    {
                        ListViewItem lvi = new ListViewItem(new string[] {
                            reader.GetInt32(0).ToString(),
                            reader.GetString(1),
                            reader.GetString(2),
                            reader.GetDateTime(3).ToString("dd/MM/yyyy HH:mm"),
                            reader.GetDateTime(4).ToString("dd/MM/yyyy HH:mm")
                        });

                        listView1.Items.Add(lvi);
                    }
                    reader.Close();
                }

                transaction.Commit();
            } catch (Exception ex)
            {
                MessageBox.Show("Что-то пошло не так! Обратитесь к разработчику.", "Ошибка");
                transaction.Rollback();
            }
            connection.Close();
        }
        public void Disable_disables_the_User_via_context()
        {
            var user    = GetUser();
            var mockSet = new Mock <DbSet <User> >();

            mockSet.Setup(m => m.Find(It.IsAny <int>())).Returns(user);

            var mockContext = new Mock <Models.Model>();

            mockContext.Setup(m => m.Users).Returns(mockSet.Object);

            var coordinator = new UserCoordinator(mockContext.Object);

            coordinator.Enable(user.Id);

            Assert.AreEqual(true, user.IsEnable);
            mockContext.Verify(m => m.SaveChanges(), Times.Once());
        }
Example #9
0
        public VolunteersList()
        {
            InitializeComponent();
            this.StartPosition = FormStartPosition.CenterScreen;

            SqlConnection connection = UserCoordinator.GetDBConnection();

            connection.Open();
            SqlTransaction transaction = connection.BeginTransaction();

            try
            {
                using (SqlCommand sql = new SqlCommand())
                {
                    SqlCommand sqlCom =
                        new SqlCommand(@"SELECT ID, FirstName, SecondName, ThirdName, WorkerRank.NameWR FROM HEALTHY_BASE()
                                     JOIN WorkerRank ON WorkerRank.RID = RankID", connection);
                    sqlCom.Transaction = transaction;
                    SqlDataReader reader = sqlCom.ExecuteReader();

                    listView1.Items.Clear();
                    while (reader.Read())
                    {
                        ListViewItem lvi = new ListViewItem(new string[] {
                            reader.GetInt32(0).ToString(),
                            reader.GetString(1),
                            reader.GetString(2),
                            reader.GetString(3),
                            reader.GetString(4)
                        });

                        listView1.Items.Add(lvi);
                    }
                    reader.Close();
                }

                transaction.Commit();
            } catch (Exception ex)
            {
                MessageBox.Show("Что-то пошло не так! Обратитесь к разработчику.", "Ошибка");
                transaction.Rollback();
            }
            connection.Close();
        }
Example #10
0
        private void Button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "" || textBox4.Text == "" || textBox5.Text == "" || comboBox1.SelectedIndex == -1)
            {
                MessageBox.Show("Не все поля заполнены.", "Ошибка");
            }
            else
            {
                SqlConnection connection = UserCoordinator.GetDBConnection();
                connection.Open();
                SqlTransaction transaction = connection.BeginTransaction();
                if (AID != "")
                {
                    try
                    {
                        using (SqlCommand sql = new SqlCommand())
                        {
                            SqlCommand sqlCom = new SqlCommand(@"UPDATE dbo.Appointment SET 
                                                         WorkerID = @WID, ZoneID = @ZID,
                                                         TimeStart = @TS, TimeEnd = @TE
                                                         WHERE ID = @ID", connection);
                            sqlCom.Transaction = transaction;
                            sqlCom.Parameters.Add("@WID", SqlDbType.Int);
                            sqlCom.Parameters.Add("@ZID", SqlDbType.Int);
                            sqlCom.Parameters.Add("@TS", SqlDbType.DateTime);
                            sqlCom.Parameters.Add("@TE", SqlDbType.DateTime);
                            sqlCom.Parameters.Add("@ID", SqlDbType.Int);

                            sqlCom.Parameters["@WID"].Value = Convert.ToInt32(textBox1.Text);
                            sqlCom.Parameters["@ZID"].Value = Convert.ToInt32(comboBox1.SelectedIndex + 1);
                            sqlCom.Parameters["@TS"].Value  = Convert.ToDateTime(textBox4.Text);
                            sqlCom.Parameters["@TE"].Value  = Convert.ToDateTime(textBox5.Text);
                            sqlCom.Parameters["@ID"].Value  = Convert.ToInt32(AID);
                            sqlCom.ExecuteNonQuery();
                            Close();
                        }
                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Перепроверьте введенные значения, данные невозможно изменить.\n" +
                                        "Подсказка: поле (ID) - целое число, поля (Начало) и (Окончание) - дата в формате dd.mm.yyyy hh:mm.",
                                        "Ошибка");
                        transaction.Rollback();
                    }
                }
                else
                {
                    try
                    {
                        using (SqlCommand sql = new SqlCommand())
                        {
                            SqlCommand sqlCom = new SqlCommand(@"INSERT INTO dbo.Appointment(WorkerID, EventID, ZoneID, TimeStart, TimeEnd)
                                                         VALUES (@WID, @EID, @ZID, @TS, @TE)", connection);
                            sqlCom.Transaction = transaction;
                            sqlCom.Parameters.Add("@WID", SqlDbType.Int);
                            sqlCom.Parameters.Add("@EID", SqlDbType.Int);
                            sqlCom.Parameters.Add("@ZID", SqlDbType.Int);
                            sqlCom.Parameters.Add("@TS", SqlDbType.DateTime);
                            sqlCom.Parameters.Add("@TE", SqlDbType.DateTime);

                            sqlCom.Parameters["@WID"].Value = Convert.ToInt32(textBox1.Text);
                            sqlCom.Parameters["@EID"].Value = Convert.ToInt32(EID);
                            sqlCom.Parameters["@ZID"].Value = Convert.ToInt32(comboBox1.SelectedIndex + 1);
                            sqlCom.Parameters["@TS"].Value  = Convert.ToDateTime(textBox4.Text);
                            sqlCom.Parameters["@TE"].Value  = Convert.ToDateTime(textBox5.Text);
                            sqlCom.ExecuteNonQuery();
                            Close();
                        }
                        transaction.Commit();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Перепроверьте введенные значения, данные невозможно изменить.\n" +
                                        "Подсказка: поле (ID) - целое число, поля (Начало) и (Окончание) - дата в формате dd.mm.yyyy hh:mm.",
                                        "Ошибка");
                        transaction.Rollback();
                    }
                }
                connection.Close();
            }
        }