我正在爲客戶預約網站。因此,我正在嘗試返回一份免費預訂約會列表,目標是,如果預訂時間已滿,您將無法預訂時間。返回非預約日期時間列表的方法
我的第一種方法(公共列表所有時間)返回一個選定日期的所有圖書館預約時間列表,即使是已預訂的預訂時間列表。所以它會返回一個列表,所以你可以每隔15分鐘選一個表格。根據您選擇的女巫類型,每個表格單元格都會啓動(int behandlingslangd)。因此,在返回的列表可以是這個樣子,如果已選定約會-lenght例如是60分鐘:
8.00 - 9.00
8.15 - 9.15
8.30 - 9.30
8.45 - 9.45
9.00 -10.00
9.15 - 10.15
9.30 -10.30
9.45 - 10.45
到目前爲止,一切都很好! 但與我的第二個方法(公共列表NonBookedTimes)我試圖返回一個只是免費約會的列表。你不能預約已經預訂的預約。我的第二種方法中的if語句幾乎可以實現我想要做的事情。例如:如果一個約會已經被預訂了9.15,那我的表中的那個時間已經被刪除了。但是之前的兩次,以及女巫重疊之後的時間仍然存在於我的表格中,所以我無法弄清楚爲了解決這個問題我還需要添加哪些內容。 所以我的目標是,我希望我的表看起來像這樣(如果已選定的時間是60分鐘):
8.00 - 9.00
8.15 - 9.15
10.15 -11.15
10.30 - 11.30
public List<DateTime> AllTimes(int behandlingsLangd, List<Bokningstider> oppetTider, DateTime datum)
{
List<DateTime> _myList = new List<DateTime>();
foreach (var item in oppetTider)
{
var startTid = new DateTime(datum.Year, datum.Month, datum.Day, item.StartTidTimme, item.StartTidMinut, 00);
var SlutTid = new DateTime(datum.Year, datum.Month,datum.Day, item.SlutTidTimme, item.SlutTidMinut, 00);
for (DateTime i = startTid; i.AddMinutes(behandlingsLangd) <= SlutTid; i = i.AddMinutes(15))
{
_myList.Add(i);
}
}
return _myList;
}
public List<DateTime> NonBookedTimes(List<DateTime> AllTimes, DateTime datum, int? behandlingsId)
{
ApplicationDbContext _db = new ApplicationDbContext();
var query = from a in _db.AppointmentDiary
where a.DateTimeScheduled.Year == datum.Year
&& a.DateTimeScheduled.Month == datum.Month
&& a.DateTimeScheduled.Day == datum.Day
select a.DateTimeScheduled;
var bokningsTider = _db.BokningsTider;
AppointmentDiary rec = new AppointmentDiary();
List<DateTime> tider = new List<DateTime>();
foreach (var Tid in AllTimes)
{
tider.Add(Tid);
foreach (var item in query)
{
if (item <= Tid) // ---------- Here I think I need to extend my if-statment
{
tider.Remove(Tid);
}
}
}
return tider;
}