基本的に、曜日のグリッドを持つタイムシートページ(ASP.NET MVC)のフラットビューモデルを作成しています。 WorkTimeプロパティは、データベースからの既存のWorkTimeであるか、既存のWorkTimeが存在しない場合はnullでなければなりません。C#リファクタリングこの乱雑なコード!
1週間しか表示されません(土曜日から金曜日)。私はそこに個々のプロパティを持っているので、私のビューの構文はもっと簡単になるはずです。
+------+-----+-----+-----+-----+-----+-----+-----+
| Desc | Sat | Sun | Mon | Tue | Wed | Thu | Fri |
+------+-----+-----+-----+-----+-----+-----+-----+
|______|_____|_____|_____|_____|_____|_____|_____|
|______|_____|_____|_____|_____|_____|_____|_____|
|______|_____|_____|_____|_____|_____|_____|_____|
|______|_____|_____|_____|_____|_____|_____|_____|
から来て、データベースに永続化されている日付のすべての時間がない要素(すべて真夜中の時間)を持っていないと土曜日から金曜日までのDateTimeプロパティはすべて、すでに設定されています。
私は、このヘルパーメソッドと
public WorkTime SaturdayWorkTime { get; private set; }
public WorkTime SundayWorkTime { get; private set; }
public WorkTime MondayWorkTime { get; private set; }
public WorkTime TuesdayWorkTime { get; private set; }
public WorkTime WednesdayWorkTime { get; private set; }
public WorkTime ThursdayWorkTime { get; private set; }
public WorkTime FridayWorkTime { get; private set; }
現在の繰り返し...
public DateTime Saturday { get; private set; }
public DateTime Sunday { get; private set; }
public DateTime Monday { get; private set; }
public DateTime Tuesday { get; private set; }
public DateTime Wednesday { get; private set; }
public DateTime Thursday { get; private set; }
public DateTime Friday { get; private set; }
_workTimes = _workTimeRepository.GetByWorkAssignmentID(WorkAssignment.ID, Saturday, Friday);
SaturdayWorkTime = GetWorkTimeForDay(DayOfWeek.Saturday);
SundayWorkTime = GetWorkTimeForDay(DayOfWeek.Sunday);
MondayWorkTime = GetWorkTimeForDay(DayOfWeek.Monday);
TuesdayWorkTime = GetWorkTimeForDay(DayOfWeek.Tuesday);
WednesdayWorkTime = GetWorkTimeForDay(DayOfWeek.Wednesday);
ThursdayWorkTime = GetWorkTimeForDay(DayOfWeek.Thursday);
FridayWorkTime = GetWorkTimeForDay(DayOfWeek.Friday);
を設定していますプロパティ...
private WorkTime GetWorkTimeForDay(DayOfWeek dow)
{
return _workTimes.FirstOrDefault(x => x.Date.DayOfWeek == dow);
}
「土曜日」と「金曜日」は、検索しているアイテムの下限と上限です。なぜ彼らはプロパティになっているのですが、他のすべての日は何のために使われていますか? 0.o – Thorarin
また、私はあなたのSOのトラックの記録と評判を持っている誰かが、今よりもこれを良くするために他の人たちを必要とする理由について幾分困惑しています。犯罪は意図されていない、私はちょうど驚いている。 – Thorarin
haha ...私は、私が必要とする目的のためにそれに満足していると思う。 Sat to Friが設定されているのは、サーバーにポストバックするときに参照する必要があるためです。 –