2017-11-05 5 views
1

私は単純なタスクスケジューリングアプリケーションを書いています。現在、いくつかのUIで立ち往生しています。私は、当日のユーザに割り当てられたタスクはほとんどありません。タスクは午前10時から午後1時、午後2時から午後4時に割り当てられます。私が達成したい何C#データを繰り返し、一定の時間間隔で要素を挿入する

私は現在、その時間帯とに行くための新しいタスクのために使用可能なタイムスロットのためのdiv内のすべてのタスクを表示することができ

され、タスクを繰り返し処理に基づいてブロックを追加開始時刻と終了時刻。

** DOMを編集して、私が何をしたかを示しました。SAMPLE TIME DISPLAYED。以上を踏まえ

The blocks should append at their respective start times and have empty blocks between them.

@helper Tasks(int _UserId, DateTime _CurrentDay) 
{ 
//Get all Tasks assigned to the user for _CurrentDay 
var _Tasks = Model.Tasks 
    .Where(t => t.UserId == _UserId 
    && Convert.ToDateTime(t.dtTaskEnd).Date == _CurrentDay.Date); 

//Total assigned task hours 
int _TotalTaskHrs = 0; 

//Loop through all the tasks 
foreach (var _Task in _Tasks) 
{ 
    //Current Task Hours 
    int _TaskHrs = (Convert.ToDateTime(_Task.dtTaskEnd).Hour - Convert.ToDateTime(_Task.dtTaskStart).Hour); 

     <div class="job-task" data-hours="@_TaskHrs"> 

      <h2>@_Task.TaskName</h2> 
      <p>@_Task.TaskCode</p> 
      <div class="clearfix"></div> 
      <p>@_Task.Notes</p> 

      <!--edit btn--> 
      <span class="job-task-edit" onclick="_ism.tasks.edit(@_Task.TaskId)"> 
       <i class="fa fa-edit"></i> 
      </span> 

     </div> 

    _TotalTaskHrs += _TaskHrs; 
} 

//Unassigned Hours 
int _EmptyHrs = 8 - _TotalTaskHrs; 
if (_EmptyHrs > 0) 
{ 
     <div class="job-task job-task-empty" data-hours="@_EmptyHrs"> 
      <!--Add btn--> 
      <span class="job-task-edit" onclick="_ism.tasks.add(this,@_UserId)"> 
       <i class="fa fa-plus-square"></i> 
      </span> 
     </div> 
} 

} 

、これは私が現在持っているものです。 This is what I currently have

第一ブロックは10:00に開始し、だから、午後1時00分

で終了する必要があり、ブロックは次のようになります。

[空09:00 - 10:00] [TST2 10:00 - 01:00] [空01:00 - 02:00] [TST124 02:00 - 04:00] [空04:00 - 0500]

すべてのポインタが役立ちます。

よろしく

答えて

0

あなたが最初の日にすべてのタスクを追加し、空のスロットで、残りを充填しています。 私はビューに送信しているモデルを再考するか、すでに空のタスクが含まれているはずです。それが不可能な場合はif文をfor-eachに移動してください。このための擬似コード:

int currentHour = 9 
foreach (var task in tasks.OrderBy(t=>t.dtTaskStart)) 
{ 
    if (task.dsTaskStart > currentHour) 
    //fill with empty slot 

    //empty slot filled we can now fill the task slot 

    currentHour = task.dtTaskEnd; 
} 
+0

ありがとう。モデルは割り当てられたタスクしか持っていないので、それに基づいて空のものを見つけなければなりません。私はいくつかのことを試してから、if文を外に移動しました。ヒントをお寄せいただきありがとうございます。毎時間繰り返して、タスクが割り当てられているかどうかを確認します。 – amyth91

関連する問題