Beispiel #1
0
 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));
     }
 }
Beispiel #2
0
        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;
            }
        }
Beispiel #3
0
 public void AddWork(WorkInTab work)
 {
     WorksInTab.Add(work);
     WorksInTab     = new ObservableCollection <WorkInTab>(WorksInTab.OrderBy(w => w.WorkBlockContext.Work.ID));
     ResetWorksView = true;
 }