私は寮内の洗濯機の予約システムを開発中です。 これはASP.NET MVCアプリケーションになります。 私はテーブルに置くべきWashingTimeクラスを持っています。ユーザーはそれをクリックして洗濯時間を予約することができます。Cで時刻表を作る方法
public class WashTime
{
public int ID { get; set; }
public DateTime Time { get; set; }
public bool IsBooked { get; set; }
public string Machine { get; set; }
public int RoomNumber { get; set; }
}
私はバックエンドとしてMS SQLデータベースを使用しています:
WashingTimeクラスは次のようになります。 私はタイムテーブルと予約システムを稼働させていますが、これを行う私のやり方は賢明ではないので、ビュー(タイムテーブル)にはかなりの時間がかかります。 私はモデルオブジェクトが予約されているかどうかを確認するために非常に多くのRazorを使用しています。これを行うにはよりスマートな方法があります。JavaScriptでこれをチェックする方法が必要であると考えていました。 ビューのための私のコードは次のとおりです。
@for (int i = 6; i < 24; i++)
{
<tr>
<th>@i.ToString():00 - @(1 + i):00</th>
<td>
<table class="col-xs-12">
<div class="inner-table">
<td>
<div class="rid">
<div id="ID" style="display: none;" data-value="@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Monday && d.Machine == "Left").ID"></div>
@if (Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Monday && d.Machine == "Left").IsBooked == true)
{
<div class="booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Monday && d.Machine == "Left").RoomNumber
</div>
}
else
{
<div class="not-booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Monday && d.Machine == "Left").Machine
</div>
}
</div>
</td>
<td class="">
<div class="rid">
<div id="ID" style="display: none;" data-value="@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Monday && d.Machine == "Right").ID"></div>
@if (Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Monday && d.Machine == "Right").IsBooked == true)
{
<div class="booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Monday && d.Machine == "Right").RoomNumber
</div>
}
else
{
<div class="not-booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Monday && d.Machine == "Right").Machine
</div>
}
</div>
</td>
</div>
</table>
</td>
<td>
<table class="no-padding col-xs-12">
<div class="inner-table">
<td>
<div class="rid">
<div id="ID" style="display: none;" data-value="@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Tuesday && d.Machine == "Left").ID"></div>
@if (Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Tuesday && d.Machine == "Left").IsBooked == true)
{
<div class="booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Tuesday && d.Machine == "Left").RoomNumber
</div>
}
else
{
<div class="not-booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Tuesday && d.Machine == "Left").Machine
</div>
}
</div>
</td>
<td class="">
<div class="rid">
<div id="ID" style="display: none;" data-value="@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Tuesday && d.Machine == "Right").ID"></div>
@if (Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Tuesday && d.Machine == "Right").IsBooked == true)
{
<div class="booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Tuesday && d.Machine == "Right").RoomNumber
</div>
}
else
{
<div class="not-booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Tuesday && d.Machine == "Right").Machine
</div>
}
</div>
</td>
</div>
</table>
</td>
<td>
<table class="no-padding col-xs-12">
<div class="inner-table">
<td>
<div class="rid">
<div id="ID" style="display: none;" data-value="@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Wednesday && d.Machine == "Left").ID"></div>
@if (Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Wednesday && d.Machine == "Left").IsBooked == true)
{
<div class="booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Wednesday && d.Machine == "Left").RoomNumber
</div>
}
else
{
<div class="not-booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Wednesday && d.Machine == "Left").Machine
</div>
}
</div>
</td>
<td class="">
<div class="rid">
<div id="ID" style="display: none;" data-value="@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Wednesday && d.Machine == "Right").ID"></div>
@if (Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Wednesday && d.Machine == "Right").IsBooked == true)
{
<div class="booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Wednesday && d.Machine == "Right").RoomNumber
</div>
}
else
{
<div class="not-booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Wednesday && d.Machine == "Right").Machine
</div>
}
</div>
</td>
</div>
</table>
</td>
<td>
<table class="no-padding col-xs-12">
<div class="inner-table">
<td>
<div class="rid">
<div id="ID" style="display: none;" data-value="@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Thursday && d.Machine == "Left").ID"></div>
@if (Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Thursday && d.Machine == "Left").IsBooked == true)
{
<div class="booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Thursday && d.Machine == "Left").RoomNumber
</div>
}
else
{
<div class="not-booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Thursday && d.Machine == "Left").Machine
</div>
}
</div>
</td>
<td class="">
<div class="rid">
<div id="ID" style="display: none;" data-value="@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Thursday && d.Machine == "Right").ID"></div>
@if (Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Thursday && d.Machine == "Right").IsBooked == true)
{
<div class="booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Thursday && d.Machine == "Right").RoomNumber
</div>
}
else
{
<div class="not-booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Thursday && d.Machine == "Right").Machine
</div>
}
</div>
</td>
</div>
</table>
</td>
<td>
<table class="no-padding col-xs-12">
<div class="inner-table">
<td>
<div class="rid">
<div id="ID" style="display: none;" data-value="@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Friday && d.Machine == "Left").ID"></div>
@if (Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Friday && d.Machine == "Left").IsBooked == true)
{
<div class="booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Friday && d.Machine == "Left").RoomNumber
</div>
}
else
{
<div class="not-booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Friday && d.Machine == "Left").Machine
</div>
}
</div>
</td>
<td class="">
<div class="rid">
<div id="ID" style="display: none;" data-value="@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Friday && d.Machine == "Right").ID"></div>
@if (Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Friday && d.Machine == "Right").IsBooked == true)
{
<div class="booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Friday && d.Machine == "Right").RoomNumber
</div>
}
else
{
<div class="not-booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Friday && d.Machine == "Right").Machine
</div>
}
</div>
</td>
</div>
</table>
</td>
<td>
<table class="no-padding col-xs-12">
<div class="inner-table">
<td>
<div class="rid">
<div id="ID" style="display: none;" data-value="@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Saturday && d.Machine == "Left").ID"></div>
@if (Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Saturday && d.Machine == "Left").IsBooked == true)
{
<div class="booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Saturday && d.Machine == "Left").RoomNumber
</div>
}
else
{
<div class="not-booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Saturday && d.Machine == "Left").Machine
</div>
}
</div>
</td>
<td>
<div class="rid">
<div id="ID" style="display: none;" data-value="@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Saturday && d.Machine == "Right").ID"></div>
@if (Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Saturday && d.Machine == "Right").IsBooked == true)
{
<div class="booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Saturday && d.Machine == "Right").RoomNumber
</div>
}
else
{
<div class="not-booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Saturday && d.Machine == "Right").Machine
</div>
}
</div>
</td>
</div>
</table>
</td>
<td>
<table class="no-padding col-xs-12">
<div class="inner-table">
<td>
<div class="rid">
<div id="ID" style="display: none;" data-value="@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Sunday && d.Machine == "Left").ID"></div>
@if (Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Sunday && d.Machine == "Left").IsBooked == true)
{
<div class="booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Sunday && d.Machine == "Left").Machine
</div>
}
else
{
<div class="not-booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Sunday && d.Machine == "Left").Machine
</div>
}
</div>
</td>
<td>
<div class="rid">
<div id="ID" style="display: none;" data-value="@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Sunday && d.Machine == "Right").ID"></div>
@if (Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Sunday && d.Machine == "Right").IsBooked == true)
{
<div class="booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Sunday && d.Machine == "Right").Machine
</div>
}
else
{
<div class="not-booked">
@Model.First(d => d.Time.Hour == i && d.Time.DayOfWeek == DayOfWeek.Sunday && d.Machine == "Right").Machine
</div>
}
</div>
</td>
</div>
</table>
</td>
</tr>
}
あなたは、私はかみそりで252のチェックをやっていると私はそれが多くのことを自分のページを遅くする必要があります考えて見ることができるように。
ビューを呼び出すコントローラは次のようになります。
public ActionResult Index()
{
List<WashTime> times = db.WashTimes.Where(x => x.Time.Year == DateTime.Today.Year).ToList();
List<WashTime> thisWeek = times.Where(time => HelperFunctions.GetIso8601WeekOfYear(time.Time) == HelperFunctions.GetIso8601WeekOfYear(DateTime.Today)).ToList();
if (thisWeek.Count<(126*2))
{
FillWeek();
times = db.WashTimes.Where(x => x.Time.Year == DateTime.Today.Year).ToList();
thisWeek = times.Where(time => HelperFunctions.GetIso8601WeekOfYear(time.Time) == HelperFunctions.GetIso8601WeekOfYear(DateTime.Today)).ToList();
}
ViewBag.Weeknumber = HelperFunctions.GetIso8601WeekOfYear(DateTime.Now);
return View(thisWeek.ToList());
}
私はあなたのコメントを楽しみにしています。
からLINQ機能を取りましたか? – Steve