Пример #1
0
        public void Execute()
        {
            if (!viewModel.InspectionTestResults.All(x => x.Date.IsValid()))
            {
                notify.ShowInfo(Program.LanguageManager.GetString(StringResources.WrongDate),
                                Program.LanguageManager.GetString(StringResources.Message_ErrorHeader));
                log.Warn("Date limits not valid!");
                return;
            }

            foreach (InspectionTestResult t in viewModel.InspectionTestResults)
            {
                if (t.Status != PartInspectionStatus.Pending && t.Inspectors.Count <= 0)
                {
                    numberOfOperationWithoutInspectors++;
                }
            }
            if (numberOfOperationWithoutInspectors == 0)
            {
                try
                {
                    viewModel.ConvertedPart.InspectionStatus = viewModel.ConvertedPart.GetPartInspectionStatus();
                    repo.BeginTransaction();
                    foreach (InspectionTestResult itr in viewModel.InspectionTestResults)
                    {
                        repo.SaveOrUpdate(itr);
                    }
                    repo.Commit();
                    foreach (InspectionTestResult itr in viewModel.InspectionTestResults)
                    {
                        repo.Evict(itr);
                    }
                    notify.ShowNotify(string.Concat(Program.LanguageManager.GetString(StringResources.PartInspection_InspectionsSaved), viewModel.SelectedElement.Number), Program.LanguageManager.GetString(StringResources.PartInspection_InspectionsSavedHeader));

                    log.Info(string.Format("The Inspection Test Results for entity #{0}, id:{1} has been saved in DB.",
                                           viewModel.SelectedElement.Number,
                                           viewModel.SelectedElement.Id));
                }
                catch (RepositoryException ex)
                {
                    log.Error(ex.Message);
                    notify.ShowFailure(ex.InnerException.Message, ex.Message);
                }
                RefreshVisualStateEvent();
            }
            else
            {
                notify.ShowError(
                    Program.LanguageManager.GetString(StringResources.SelectInspectorsForTestResult),
                    Program.LanguageManager.GetString(StringResources.SelectInspectorsForTestResultHeader));
                numberOfOperationWithoutInspectors = 0;
            }
        }