public JsonResult ShowTime(string date, int service_id) { var zaft = int.Parse(Session["userid"].ToString()); var emp = db.user.SingleOrDefault(y => y.id == zaft); var reqs = db.Emp_Org_Services.Where(c => c.emp_id == emp.id).ToList(); var branch_id = reqs[0].branch_id; Services_ service = db.Services_.SingleOrDefault(c => c.id == service_id); TimeSpan workPeriod = (TimeSpan)service.endtime - (TimeSpan)service.starttime; int workPeriodMinutes = (int)workPeriod.TotalMinutes; TimeSpan period = (TimeSpan)service.period; int servicePeriodMinutes = (int)period.TotalMinutes; int numRoles = workPeriodMinutes / servicePeriodMinutes; List <TimeSpan> times = new List <TimeSpan>(); TimeSpan start = (TimeSpan)service.starttime; TimeSpan breakStart = (TimeSpan)service.breakStart; TimeSpan breakPeriod = (TimeSpan)service.breakPeriod; int breakPeriodMinutes = (int)breakPeriod.TotalMinutes; int breakRoles = breakPeriodMinutes / servicePeriodMinutes; TimeSpan breakEnd = breakStart + breakPeriod; for (int i = 0; i <= numRoles - breakRoles; i++) { if (start == breakStart) { start = breakEnd; } else { times.Add(start); start = start + period; } } var service_emps = db.Emp_Org_Services.Where(c => c.service_id == service_id && c.branch_id == branch_id).ToList(); int emps = service_emps.Count(); List <TimeSpan> allTimes = new List <TimeSpan>(); for (int i = 0; i < emps; i++) { foreach (var x in times) { allTimes.Add(x); } } var appointments = db.Appointments_.Where(x => x.service_id == service_id && x.branch_id == branch_id).ToList(); foreach (var x in appointments) { string dt = ((DateTime)x.time).ToString("yyyy-MM-dd"); if (date.Equals(dt)) { string t = ((DateTime)x.time).ToString("H:mm:ss"); TimeSpan ts = TimeSpan.Parse(t); allTimes.Remove(ts); } } List <string> AllTimes = new List <string>(); foreach (var a in allTimes) { AllTimes.Add(a.ToString()); } return(Json(AllTimes, JsonRequestBehavior.AllowGet)); }
public List <string> GetAvailableTime(int branch_id, int service_id, string date) { Services_ service = db.Services_.SingleOrDefault(c => c.id == service_id); TimeSpan workPeriod = (TimeSpan)service.endtime - (TimeSpan)service.starttime; int workPeriodMinutes = (int)workPeriod.TotalMinutes; TimeSpan period = (TimeSpan)service.period; int servicePeriodMinutes = (int)period.TotalMinutes; int numRoles = workPeriodMinutes / servicePeriodMinutes; List <string> times = new List <string>(); TimeSpan start = (TimeSpan)service.starttime; TimeSpan breakStart = (TimeSpan)service.breakStart; TimeSpan breakPeriod = (TimeSpan)service.breakPeriod; int breakPeriodMinutes = (int)breakPeriod.TotalMinutes; int breakRoles = breakPeriodMinutes / servicePeriodMinutes; TimeSpan breakEnd = breakStart + breakPeriod; for (int i = 0; i <= numRoles - breakRoles; i++) { if (start == breakStart) { start = breakEnd; } else { string s = start.ToString(); times.Add(s); start = start + period; } } var service_emps = db.Emp_Org_Services.Where(c => c.service_id == service_id && c.branch_id == branch_id).ToList(); int emps = service_emps.Count(); List <string> allTimes = new List <string>(); for (int i = 0; i < emps; i++) { foreach (var x in times) { allTimes.Add(x); } } var app = GetAppointments(branch_id, service_id); foreach (var x in app) { string d = x.dateTime.ToString("yyyy-MM-dd"); if (date.Equals(d)) { string t = x.dateTime.ToString("H:mm:ss"); TimeSpan ts = TimeSpan.Parse(t); allTimes.Remove(t); } } return(allTimes); }