public void DoAction(PeriodListVM vm)
        {
            var period = vm.SelectedPeriod;

            if (period == null)
            {
                pmsController.ShowMessage("دوره ای انتخاب نشده است");
                return;
            }
            if (pmsController.ShowConfirmationBox("آیا می خواهید ارزیابی را تمام کنید ؟", "اتمام ارزیابی"))
            {
                periodService.ChangePeriodState(exp => pmsController.BeginInvokeOnDispatcher(() =>
                {
                    if (exp != null)
                    {
                        pmsController.HandleException(exp);
                    }
                    else
                    {
                        pmsController.Publish(new UpdatePeriodListArgs());
                        //pmsController.GetCurrentPeriod();
                        //var action = new ShowPeriodCalculationStateService(periodController, pmsController, calculationService);
                        //action.DoAction(vm);
                    }
                }), period.Id, new PeriodStateDTO {
                    State = (int)PeriodStateEnum.InquiryCompleted
                });
            }
        }
        public void DoAction(PeriodListVM vm)
        {
            var period = vm.SelectedPeriod;

            if (period == null)
            {
                pmsController.ShowMessage("دوره ای انتخاب نشده است");
                return;
            }
            if (pmsController.ShowConfirmationBox("آیا می خواهید دوره انتخاب شده را برای ارزیابی آماده کنید ؟", "آماده سازی برای ارزیابی"))
            {
                periodService.ChangePeriodState(exp => pmsController.BeginInvokeOnDispatcher(() =>
                {
                    if (exp != null)
                    {
                        pmsController.HandleException(exp);
                    }
                    else
                    {
                        pmsController.Publish(new UpdatePeriodListArgs());
                        periodController.ShowPeriodStatusView(period, ActionType.GetPeriodInitializingInquiryStatus);
                    }
                }), period.Id, new PeriodStateDTO {
                    State = (int)PeriodStateEnum.InitializingForInquiry
                });
            }
        }
        public void DoAction(PeriodListVM vm)
        {
            var period = vm.SelectedPeriod;

            if (period == null)
            {
                pmsController.ShowMessage("دوره ای انتخاب نشده است");
                return;
            }
            if (pmsController.ShowConfirmationBox("آيا می خواهید برای محاسبه قطعی در این دوره نمرات کارکنان را آماده تایید کنید  ؟", "آغاز زمان تایید نمرات دوره "))
            {
                periodService.ChangePeriodState(exp => pmsController.BeginInvokeOnDispatcher(() =>
                {
                    if (exp != null)
                    {
                        pmsController.HandleException(exp);
                    }
                    else
                    {
                        pmsController.Publish(new UpdatePeriodListArgs());
                        //pmsController.GetCurrentPeriod();
                        //var action = new ShowPeriodCalculationStateService(periodController, pmsController, calculationService);
                        //action.DoAction(vm);
                    }
                }), period.Id, new PeriodStateDTO {
                    State = (int)PeriodStateEnum.Confirmation
                });
            }
        }