示例#1
0
 public MessageWorkObject(WorkCommandEnum type_, Work work_, DateTime dt_)
 {
     _commandType = type_;
     _work        = work_;
     dt           = dt_;
 }
示例#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;
            }
        }