public void UpdateControl(MasterTaskViewModel master) { Dispatcher.BeginInvoke(new Action(() => { container.Children.Clear(); var i = 0; var totalRows = 0; foreach (var child in master.Children) { var isLast = i == master.Children.Count - 1; var height = child.Rows * Config.RowHeight; if (isLast) { if (totalRows + child.Rows < master.Rows) { height = (master.Rows - totalRows) * Config.RowHeight; } } totalRows += child.Rows; container.Children.Add(new SubTaskRow(child) { VerticalAlignment = VerticalAlignment.Top, Height = height, Margin = new Thickness(0, Config.RowHeight * i, 0, 0) }); i++; } })); }
public MasterTaskViewModel ViewGet(int id) { var dbMasterTask = _context.MasterTasks.Find(id); var dbTcList = (from map in _context.TaskCategoryMaps where map.MasterTaskId == id from tc in _context.TaskCategories where tc.Id == map.TaskCategoryId orderby tc.Name select tc).ToList(); MasterTaskViewModel mtViewModel = _mapper.Map <MasterTaskViewModel>(dbMasterTask); mtViewModel.TaskCategoryViewModels.AddRange(_mapper.Map <List <TaskCategoryViewModel> >(dbTcList)); return(mtViewModel); }
public TaskTableRow(MasterTaskViewModel row) : this() { Model = row; Dispatcher.Invoke(UpdateControl); }
private void BuildPageData(List <TaskViewModel> list, Models.Task task, IEnumerable <SubTask> masters) { var taskViewModel = new TaskViewModel { TaskName = task.Name }; list.Add(taskViewModel); var totalRows = 0; foreach (var master in masters.OrderBy(e => e.ID)) { var masterViewModel = new MasterTaskViewModel { ID = master.ID, ScheduleDate = master.ScheduleDate, TaskName = master.Content, Department = master.ToDepartmentName, }; foreach (var child in master.Children) { var childViewModel = new SubTaskViewModel { Name = child.Content, Status = child.Status, Department = child.ToDepartmentName, }; if (totalRows + childViewModel.Rows > Config.MaxRows) { taskViewModel.Children.Add(masterViewModel); masterViewModel = new MasterTaskViewModel { ID = master.ID, ScheduleDate = master.ScheduleDate, TaskName = master.Content, Department = master.ToDepartmentName, }; masterViewModel.Children.Add(childViewModel); totalRows = masterViewModel.Rows; taskViewModel = new TaskViewModel { TaskName = task.Name }; list.Add(taskViewModel); } else { masterViewModel.Children.Add(childViewModel); totalRows += childViewModel.Rows; } } if (masterViewModel.Children.Count > 0) { taskViewModel.Children.Add(masterViewModel); } if (totalRows >= Config.MaxRows) { totalRows = 0; taskViewModel = new TaskViewModel { TaskName = task.Name }; list.Add(taskViewModel); } } }