public void SortByName(int direction) { if (direction == (int)SortType.ASC) { WorksInTab = new ObservableCollection <WorkInTab>(WorksInTab.OrderBy(w => w.WorkBlockContext.Work.Task.TaskName)); } else { WorksInTab = new ObservableCollection <WorkInTab>(WorksInTab.OrderByDescending(w => w.WorkBlockContext.Work.Task.TaskName)); } }
private void _doWorkCommand(MessageWorkObject obj) { if ((obj.dt.Year != Date.Year || obj.dt.Month != Date.Month || obj.dt.Day != Date.Day) && obj._commandType != WorkCommandEnum.Update) { return; } dialog = null; WorkCommandEnum command = obj._commandType; Work work = obj._work; if (command == WorkCommandEnum.None) { return; } if (command == WorkCommandEnum.Add && (work.StartDate.Date.Year == Date.Date.Year && work.StartDate.Date.Month == Date.Date.Month && work.StartDate.Date.Day == Date.Date.Day)) { var newWorkID = WorksVM.Add(work); Work newWork = WorksVM.Dictionary[newWorkID].Work; AddWork(new WorkInTab(newWorkID, true)); SumTime += newWork.Minutes; MessengerInstance.Send <long>(SumTime); return; } int index = -1; for (int i = 0; i < WorksInTab.Count; i++) { if (WorksInTab[i].WorkBlockContext.Work.ID == work.ID) { index = i; break; } } if (index == -1) { return; } switch (command) { case WorkCommandEnum.Delete: SumTime -= WorksInTab[index].WorkBlockContext.Work.Minutes; WorksVM.Delete(work.ID); WorksInTab[index].WorkBlockContext.UnRegister(); WorksInTab.Remove(WorksInTab[index]); MessengerInstance.Send <long>(SumTime); // todo а это нельзя сделать в сэттере свойства SumTime ? break; case WorkCommandEnum.Update: int oldWorkMinutes = Context.workWork.Read_WorkByID(work.ID).Minutes; Work newWork = WorksVM.Update(work); //Work newWork = WorksVM.Dictionary[work.ID].Work; SumTime -= oldWorkMinutes; if (newWork.StartDate.Date == Date.Date) { WorksInTab[index].WorkBlockContext = new WorkBlockControlViewModel(newWork.ID, false); MainWindow.IsEnable = true; WorksInTab[index].WorkBlockContext.IsEditing = false; SumTime += newWork.Minutes; } else { WorksInTab[index].WorkBlockContext.UnRegister(); WorksInTab.Remove(WorksInTab[index]); } //if (work.StartDate.Date == Date.Date) //{ // AddWork(new WorkInTab(newWork.ID)); // SumTime += newWork.Minutes; //} MessengerInstance.Send <long>(SumTime); break; } }
public void AddWork(WorkInTab work) { WorksInTab.Add(work); WorksInTab = new ObservableCollection <WorkInTab>(WorksInTab.OrderBy(w => w.WorkBlockContext.Work.ID)); ResetWorksView = true; }