private void GenerateEndMin(int shour, int smin,string ehour,string selectedTime = "") { Dictionary<string, string> mins = new Dictionary<string, string>(); if (modalDropDownEndTimeHour.SelectedItem.Text.Trim() == "--") { mins.Add("--", "00"); } if (ehour != "--") { DateTime selectedDate = DateTime.Parse(txtBoxDate.Text); int userid = Convert.ToInt32(Session["UserId"]); bool isCurrentDate = false; int hour = Convert.ToInt32(ehour); JobTracker jobtracker = new JobTracker(); TimeSetting timeSetting = new TimeSetting(); timeSetting = timeSetting.GetTimeSetting(); TimeSpan selTime = new TimeSpan(shour, smin, 0); List<TimeSpan> availableTime = new List<TimeSpan>(); User user = new User(); user = user.GetUser(userid, selectedDate); TimeSpan cutOffTime = user.GetMyCutOfTime(); if (hour != 24) { for (int j = 0; j < 60; j += timeSetting.Interval) { if (selTime < cutOffTime) { if (new TimeSpan(hour, j, 0) <= cutOffTime) { availableTime.Add(new TimeSpan(hour, j, 0)); } else { break; } } else { availableTime.Add(new TimeSpan(hour, j, 0)); } } } else { if (selTime < cutOffTime) { if (new TimeSpan(hour, 0, 0) <= cutOffTime) { availableTime.Add(new TimeSpan(hour, 0, 0)); } } else { availableTime.Add(new TimeSpan(hour, 0, 0)); } } if (selectedDate.CompareTo(DateTime.Today) == 0) { isCurrentDate = true; } jobtracker = jobtracker.GetNextUsedTime(userid, DateTime.Parse(selectedDate.Year + "-" + selectedDate.Month + "-" + selectedDate.Day + " " + selTime.ToString()), selectedDate); TimeSpan stime = jobtracker == null ? new TimeSpan(23, 59, 59) : Convert.ToDateTime(jobtracker.StartTime).TimeOfDay; if (Session["StartTime"] != null) { TimeSpan ts = TimeSpan.Parse(Session["StartTime"].ToString()); if (ts == stime) { jobtracker = jobtracker.GetNextUsedTime(userid, DateTime.Parse(selectedDate.Year + "-" + selectedDate.Month + "-" + selectedDate.Day + " " + Session["StartTime"].ToString()), selectedDate); stime = jobtracker == null ? new TimeSpan(23, 59, 59) : Convert.ToDateTime(jobtracker.StartTime).TimeOfDay; } } for (int j = 0; j < availableTime.Count; j++) { if (availableTime[j] > stime) { availableTime.RemoveAt(j); --j; } else if (isCurrentDate == true && DateTime.Now.TimeOfDay < availableTime[j]) { availableTime.RemoveAt(j); --j; } else if (selTime >= availableTime[j]) { availableTime.RemoveAt(j); --j; } } int curtime = 60; for (int i = 0; i < availableTime.Count; i++) { if (curtime != availableTime[i].Minutes) { curtime = availableTime[i].Minutes; mins.Add(curtime > 9 ? curtime.ToString() : "0" + curtime.ToString(), curtime > 9 ? curtime.ToString() : "0" + curtime.ToString()); } } } modalDropDownEndTimeMin.DataSource = mins; modalDropDownEndTimeMin.DataTextField = "Key"; modalDropDownEndTimeMin.DataValueField = "Value"; modalDropDownEndTimeMin.DataBind(); if (selectedTime.Trim() != "") { string[] s = selectedTime.Split(':'); foreach (ListItem i in modalDropDownEndTimeMin.Items) { if (i.Text.Trim() == s[1].Trim()) i.Selected = true; } } }
private void GenerateEndHour(int shour, int smin,bool addBlank, string selectedTime = "") { DateTime selectedDate = DateTime.Parse(txtBoxDate.Text); bool isCurrentDate = false; int userid = Convert.ToInt32(Session["UserId"]); JobTracker jobtracker = new JobTracker(); TimeSetting timeSetting = new TimeSetting(); timeSetting = timeSetting.GetTimeSetting(); TimeSpan selTime = new TimeSpan(shour, smin, 0); User user = new User(); user = user.GetUser(userid, selectedDate); TimeSpan cutOffTime = user.GetMyCutOfTime(); List<TimeSpan> availableTime = new List<TimeSpan>(); for (int i = shour; i < 25; i++) { if (i != 24) { for (int j = 0; j < 60; j += timeSetting.Interval) { if (selTime < cutOffTime) { if (new TimeSpan(i, j, 0) <= cutOffTime) { availableTime.Add(new TimeSpan(i, j, 0)); } else { break; } } else { availableTime.Add(new TimeSpan(i, j, 0)); } } } else //adding 24:00 { if (selTime < cutOffTime) { if (new TimeSpan(i, 0, 0) <= cutOffTime) { availableTime.Add(new TimeSpan(i, 0, 0)); } } else { availableTime.Add(new TimeSpan(i, 0, 0)); } } } if (selectedDate.CompareTo(DateTime.Today) == 0) { isCurrentDate = true; } Dictionary<string, string> hours = new Dictionary<string, string>(); jobtracker = jobtracker.GetNextUsedTime(userid, DateTime.Parse(selectedDate.Year + "-" + selectedDate.Month + "-" + selectedDate.Day + " " + selTime.ToString()), selectedDate); TimeSpan stime = jobtracker == null ? new TimeSpan(24,0,0) : Convert.ToDateTime(jobtracker.StartTime).TimeOfDay; if (Session["StartTime"] != null) { TimeSpan ts = TimeSpan.Parse(Session["StartTime"].ToString()); if (ts == stime) { jobtracker = jobtracker.GetNextUsedTime(userid, DateTime.Parse(selectedDate.Year + "-" + selectedDate.Month + "-" + selectedDate.Day + " " + Session["StartTime"].ToString()), selectedDate); stime = jobtracker == null ? new TimeSpan(24, 0, 0) : Convert.ToDateTime(jobtracker.StartTime).TimeOfDay; } } for (int j = 0; j < availableTime.Count; j++) { if (availableTime[j] > stime) { availableTime.RemoveAt(j); --j; } else if (isCurrentDate == true && DateTime.Now.TimeOfDay < availableTime[j]) { availableTime.RemoveAt(j); --j; } else if (selTime >= availableTime[j]) { availableTime.RemoveAt(j); --j; } } int curtime = 24; if (addBlank == true) { hours.Add("--", "00"); } for (int i = 0; i < availableTime.Count; i++) { if (curtime != Convert.ToInt32(Math.Floor(availableTime[i].TotalHours))) { curtime = Convert.ToInt32(Math.Floor(availableTime[i].TotalHours)); hours.Add(curtime > 9 ? curtime.ToString() : "0" + curtime.ToString(), curtime > 9 ? curtime.ToString() : "0" + curtime.ToString()); } } modalDropDownEndTimeHour.DataSource = hours; modalDropDownEndTimeHour.DataTextField = "Key"; modalDropDownEndTimeHour.DataValueField = "Value"; modalDropDownEndTimeHour.DataBind(); if (selectedTime.Trim() != "") { string seletime = ""; if (selectedTime.Length > 10) { DateTime selEndDate = Convert.ToDateTime(selectedTime); if (selectedDate.Date < selEndDate.Date) seletime = "24:00:00"; else seletime = selEndDate.TimeOfDay.ToString(); } else { seletime = selectedTime; } string[] s = seletime.Split(':'); foreach (ListItem i in modalDropDownEndTimeHour.Items) { if (i.Text.Trim() == s[0].Trim()) i.Selected = true; } } }