private void SelectBlock(MouseEventArgs e, TimetableBlock block) { if (!e.CtrlKey && !e.ShiftKey) { SelectedBlocks.Clear(); } if (e.ShiftKey) { var lastBlock = SelectedBlocks.LastOrDefault(); int difference = block.Number - lastBlock.Number; var emptyBlocks = Timetable.Blocks.Where(t => t.Number > lastBlock.Number && t.Number <= block.Number); if (lastBlock != null) { foreach (var item in emptyBlocks) { SelectUnselectedBlock(item); } } } else { SelectUnselectedBlock(block); } SelectedBlocksChanged.InvokeAsync(SelectedBlocks); TimetableChanged.InvokeAsync(Timetable); }
internal void SetWorkItem(WorkItem workItem) { foreach (var item in SelectedBlocks) { item.WorkItem = workItem; } TimetableChanged.InvokeAsync(Timetable); StateHasChanged(); }