protected void HollidaysType_SelectedIndexChanged(object sender, EventArgs e) { Base.HoolidaysType type = _hollidaysType.Find(delegate(Base.HoolidaysType ht) { return(HollidaysType.SelectedValue == ht.Title); }); if (type == null) { return; } label1.Text = "выходной"; if (type.Id == 1) { phHollidayDaysOfWeek.Visible = true; phHollidayPeriod.Visible = false; phHollidaysPeriod2.Visible = false; Connections.Visible = false; WorkTime.Visible = false; phClear.Visible = false; phDaysHolliday.Visible = false; } else if (type.Id < 5) { phHollidayDaysOfWeek.Visible = false; phHollidayPeriod.Visible = true; phHollidaysPeriod2.Visible = false; Connections.Visible = false; WorkTime.Visible = false; phClear.Visible = false; phDaysHolliday.Visible = false; } else if (type.Id == 9) // конкретное число { phHollidayDaysOfWeek.Visible = false; phHollidayPeriod.Visible = false; phHollidaysPeriod2.Visible = false; Connections.Visible = false; WorkTime.Visible = false; phClear.Visible = false; phDaysHolliday.Visible = true; } else { if (type.Id == 5) { label1.Text = "рабочий день"; } phHollidayDaysOfWeek.Visible = false; phHollidayPeriod.Visible = false; phHollidaysPeriod2.Visible = true; Connections.Visible = false; WorkTime.Visible = false; phClear.Visible = false; phDaysHolliday.Visible = false; } }
protected void HollidayPeriodSave_Click(object sender, EventArgs e) { Base.PersonData pd = _workers.Find(delegate(Base.PersonData i) { return(i.Title == WorkerName.SelectedValue); }); if (pd == null) { Msg.Text = "Ошибка сохранения"; return; } Base.HoolidaysType bw = _hollidaysType.Find(delegate(Base.HoolidaysType i) { return(i.Title == HollidaysType.SelectedValue); }); if (bw == null || bw.Id < 1) { Msg.Text = "Ошибка сохранения"; return; } using (SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["DefaultConnection"].ToString())) { conn.Open(); SqlCommand cmd = new SqlCommand("delete from Holidays where " + "UserId=@userId and [Date] between @d1 and @d2", conn); cmd.Parameters.AddWithValue("userId", pd.Id); cmd.Parameters.AddWithValue("d1", HollidayStart.SelectedDate); cmd.Parameters.AddWithValue("d2", HollidayEnd.SelectedDate.AddDays(1).AddSeconds(-1)); cmd.ExecuteNonQuery(); for (DateTime date = HollidayStart.SelectedDate; date < HollidayEnd.SelectedDate.AddDays(1); date = date.AddDays(1)) { cmd = new SqlCommand("insert into Holidays " + "(UserId, [Date], HollidaysTypeId) " + "values (@userId, @date, @type)", conn); cmd.Parameters.AddWithValue("userId", pd.Id); cmd.Parameters.AddWithValue("date", date); cmd.Parameters.AddWithValue("type", bw.Id); cmd.ExecuteNonQuery(); Msg.Text = string.Empty; } } }
protected void H2_Click(object sender, EventArgs e) { Base.PersonData pd = _workers.Find(delegate(Base.PersonData i) { return(i.Title == WorkerName.SelectedValue); }); if (pd == null) { Msg.Text = "Ошибка сохранения"; return; } Base.HoolidaysType type = _hollidaysType.Find(delegate(Base.HoolidaysType ht) { return(HollidaysType.SelectedValue == ht.Title); }); if (type == null) { Msg.Text = "Ошибка сохранения"; return; } if (Calendar3.SelectedDate < Calendar1.SelectedDate || Calendar3.SelectedDate > Calendar2.SelectedDate) { Msg.Text = "Ошибка сохранения"; return; } using (SqlConnection conn = new SqlConnection(WebConfigurationManager.ConnectionStrings["DefaultConnection"].ToString())) { conn.Open(); switch (type.Id) { case 5: // сутки через трое for (DateTime date = Calendar3.SelectedDate.AddDays(1); date < Calendar2.SelectedDate.AddDays(1); date = date.AddDays(1)) { for (int i = 0; date < Calendar2.SelectedDate.AddDays(1) && i < 3; date = date.AddDays(1)) { SetHolliday(date, pd.Id); ++i; } } break; case 6: // два через два for (DateTime date = Calendar3.SelectedDate; date < Calendar2.SelectedDate.AddDays(1); date = date.AddDays(3)) { SetHolliday(date, pd.Id); date = date.AddDays(1); if (date > Calendar2.SelectedDate) { break; } SetHolliday(date, pd.Id); } break; case 7: // неделя через неделю for (DateTime date = Calendar3.SelectedDate; date < Calendar2.SelectedDate.AddDays(1); date = date.AddDays(7)) { for (int i = 0; date < Calendar2.SelectedDate.AddDays(1) && i < 7; date = date.AddDays(1)) { SetHolliday(date, pd.Id); ++i; } } break; case 8: // две недели через две недели for (DateTime date = Calendar3.SelectedDate; date < Calendar2.SelectedDate.AddDays(1); date = date.AddDays(14)) { for (int i = 0; date < Calendar2.SelectedDate.AddDays(1) && i < 14; date = date.AddDays(1)) { SetHolliday(date, pd.Id); ++i; } } break; } Msg.Text = string.Empty; } }