public ActionResult Edit(TableAvailability model, int[] selectedWeekDays, long[] selectedTables, int selectedAvailability) { model.CreatedOn = DateTime.UtcNow.ToClientTime(); model.CreatedBy = User.Identity.GetUserId<long>(); model.TableAvailabilityWeekDays = selectedWeekDays.Select(d => new TableAvailabilityWeekDay { DayId = d, TableAvailabilityId = model.TableAvailabilityId }).ToList(); model.TableAvailabilityFloorTables = selectedTables.Select(t => new TableAvailabilityFloorTable { FloorTableId = t, TableAvailabilityId = model.TableAvailabilityId }).ToList(); model.AvailablityStatusId = selectedAvailability; db.tabTableAvailabilities.Add(model); db.SaveChanges(); this.ClearAvailabilityCache(); return RedirectToAction("Index"); }
private bool CheckAvail(TableAvailability avail, DateTime startTime) { var TAstartTime = startTime.Date.AddTicks(Convert.ToDateTime(avail.StartTime).TimeOfDay.Ticks); var TAendTime = startTime.Date.AddTicks(Convert.ToDateTime(avail.EndTime).TimeOfDay.Ticks); TAstartTime = (TAstartTime.TimeOfDay.TotalMinutes < 240 && !(startTime.TimeOfDay.TotalMinutes < 240)) ? TAstartTime.AddDays(1) : ((startTime.TimeOfDay.TotalMinutes < 240) && !(TAstartTime.TimeOfDay.TotalMinutes < 240) ? TAstartTime.AddDays(-1) : TAstartTime); TAendTime = (TAendTime.TimeOfDay.TotalMinutes < 240 && !(startTime.TimeOfDay.TotalMinutes < 240)) ? TAendTime.AddDays(1) : ((startTime.TimeOfDay.TotalMinutes < 240) && !(TAendTime.TimeOfDay.TotalMinutes < 240) ? TAendTime.AddDays(-1) : TAendTime); if (!(TAstartTime <= startTime && startTime < TAendTime)) { return false; } return true; }