public void Execute() { if (viewModel.Pipe.Railcar == null) { if (notify.ShowYesNo( Program.LanguageManager.GetString(StringResources.MillPipe_DeactivatePipeQuestion), Program.LanguageManager.GetString(StringResources.MillPipe_DeactivatePipeQuestionHeader))) { try { viewModel.Pipe.IsActive = false; viewModel.CheckStatus(); viewModel.UpdatePipeSubStatus(); viewModel.Pipe.PipeTestResult = viewModel.PipeTestResults; repo.BeginTransaction(); repo.RepoPipe.SaveOrUpdate(viewModel.Pipe); repo.Commit(); repo.RepoPipe.Evict(viewModel.Pipe); viewModel.ModifiableView.IsEditMode = false; viewModel.ModifiableView.IsModified = false; viewModel.ModifiableView.UpdateState(); notify.ShowSuccess( string.Concat(Program.LanguageManager.GetString( StringResources.Pipe_Deactivated), viewModel.Number), Program.LanguageManager.GetString( StringResources.Pipe_DeactivatedHeader)); log.Info(string.Format("The Pipe #{0}, id:{1} has been deactivated.", viewModel.Pipe.Number, viewModel.Pipe.Id)); } catch (RepositoryException ex) { log.Error(ex.Message); notify.ShowFailure(ex.InnerException.Message, ex.Message); } } else { //Refresh property so that binded control become unchecked viewModel.PipeIsActive = false; viewModel.PipeIsActive = true; } } else if (viewModel.PipeStatus == PipeMillStatus.Shipped) { notify.ShowInfo( Program.LanguageManager.GetString(StringResources.MillPipe_DeactivatePipeShippedError), Program.LanguageManager.GetString(StringResources.MillPipe_DeactivatePipeShippedErrorHeader)); } else { notify.ShowInfo( Program.LanguageManager.GetString(StringResources.MillPipe_DeactivatePipeInRailcarError), Program.LanguageManager.GetString(StringResources.MillPipe_DeactivatePipeInRailcarErrorHeader)); } RefreshVisualStateEvent(); }
public void Execute() { if (!viewModel.ValidatableView.Validate()) { return; } if (!DateValidate()) { notify.ShowInfo(Program.LanguageManager.GetString(StringResources.WrongDate), Program.LanguageManager.GetString(StringResources.Message_ErrorHeader)); log.Warn("Date limits not valid!"); return; } //Uppercase for db viewModel.Pipe.Plate.Number = viewModel.Pipe.Plate.Number.ToUpper(); viewModel.Pipe.Number = viewModel.Pipe.Number.ToUpper(); var p = repo.RepoPipe.GetActiveByNumber(viewModel.Pipe); foreach (var pipe in p) { repo.RepoPipe.Evict(pipe); } var duplicateNumber = duplicateNumberRepo.GetAllActiveDuplicateEntityByNumber(viewModel.Number, viewModel.Pipe.Id).Distinct(new DuplicateNumberEntityComparer()).ToList(); String result = string.Empty; if (duplicateNumber != null && duplicateNumber.Count > 0) { for (int i = 0; i <= duplicateNumber.Count - 1; i++) { DuplicateNumberEntityType translate = (DuplicateNumberEntityType)Enum.Parse(typeof(DuplicateNumberEntityType), duplicateNumber[i].EntityType); result = result + viewModel.localizedAllType[(int)((object)translate) - 1] + (i < duplicateNumber.Count - 1 ? ", " : ""); } notify.ShowInfo( string.Concat(Program.LanguageManager.GetString(StringResources.DuplicateEntity_Message) + result), Program.LanguageManager.GetString(StringResources.DuplicateEntity_MessageHeader)); viewModel.Number = string.Empty; } else { if (viewModel.CheckStatus()) { try { viewModel.UpdatePipeSubStatus(); viewModel.Pipe.PipeTestResult = viewModel.PipeTestResults; repo.BeginTransaction(); repo.RepoPipe.SaveOrUpdate(viewModel.Pipe); var filesViewModel = viewModel.FilesFormViewModel; //saving attached existingDocuments bool fileCopySuccess = true; if (null != filesViewModel) { filesViewModel.FileRepo = repo.FileRepo; viewModel.FilesFormViewModel.Item = viewModel.Pipe.Id; if (!viewModel.FilesFormViewModel.TrySaveFiles(viewModel.Pipe)) { fileCopySuccess = false; repo.Rollback(); } } if (fileCopySuccess) { repo.Commit(); viewModel.PipeNotifier.UpdateNotifications(viewModel.Pipe); viewModel.SelectiveOperationPipeNotifier.UpdateNotifications(viewModel.Pipe); } repo.RepoPipe.Evict(viewModel.Pipe); if (fileCopySuccess) { if (null != filesViewModel) { filesViewModel.DetachFileEntities(); } notify.ShowSuccess( string.Concat(Program.LanguageManager.GetString(StringResources.MillPipe_PipeSaved), viewModel.Number), Program.LanguageManager.GetString(StringResources.MillPipe_PipeSavedHeader)); log.Info(string.Format("The entity #{0}, id:{1} has been saved in DB.", viewModel.Pipe.Number, viewModel.Pipe.Id)); } else { notify.ShowError(Program.LanguageManager.GetString(StringResources.ExternalFiles_NotCopied), Program.LanguageManager.GetString(StringResources.ExternalFiles_NotCopied_Header)); log.Info(string.Format("File for entity #{0}, id:{1} hasn't been saved", viewModel.Pipe.Number, viewModel.Pipe.Id)); } viewModel.ModifiableView.IsModified = false; viewModel.ModifiableView.IsEditMode = viewModel.PipeIsActive; viewModel.ModifiableView.Id = viewModel.Pipe.Id; viewModel.ModifiableView.UpdateState(); } catch (RepositoryException ex) { log.Error(ex.Message); notify.ShowFailure(ex.InnerException.Message, ex.Message); } } else { notify.ShowInfo( Program.LanguageManager.GetString(StringResources.MillPipe_ErrorEditingInspectionOperationPipeInRailcar), Program.LanguageManager.GetString(StringResources.MillPipe_PipeSavedHeader)); } } RefreshVisualStateEvent(); }
public void Execute() { if (!viewModel.ValidatableView.Validate()) { return; } if (!DateValidate()) { notify.ShowInfo(Program.LanguageManager.GetString(StringResources.WrongDate), Program.LanguageManager.GetString(StringResources.Message_ErrorHeader)); log.Warn("Date limits not valid!"); return; } //Uppercase for db viewModel.Pipe.Plate.Number = viewModel.Pipe.Plate.Number.ToUpper(); viewModel.Pipe.Number = viewModel.Pipe.Number.ToUpper(); var p = repo.RepoPipe.GetActiveByNumber(viewModel.Pipe); foreach (var pipe in p) { repo.RepoPipe.Evict(pipe); } if (p != null && p.Count > 0) { notify.ShowInfo( string.Concat(Program.LanguageManager.GetString(StringResources.MillPipe_ExistingNumberError), viewModel.Number), Program.LanguageManager.GetString(StringResources.MillPipe_ExistingNumberErrorHeader)); viewModel.Number = string.Empty; } else { if (viewModel.CheckStatus()) { try { viewModel.UpdatePipeSubStatus(); viewModel.Pipe.PipeTestResult = viewModel.PipeTestResults; repo.BeginTransaction(); repo.RepoPipe.SaveOrUpdate(viewModel.Pipe); var filesViewModel = viewModel.FilesFormViewModel; //saving attached documents bool fileCopySuccess = true; if (null != filesViewModel) { filesViewModel.FileRepo = repo.FileRepo; viewModel.FilesFormViewModel.Item = viewModel.Pipe.Id; if (!viewModel.FilesFormViewModel.TrySaveFiles(viewModel.Pipe)) { fileCopySuccess = false; repo.Rollback(); } } repo.Commit(); repo.RepoPipe.Evict(viewModel.Pipe); if (fileCopySuccess) { if (null != filesViewModel) { filesViewModel.DetachFileEntities(); } notify.ShowSuccess( string.Concat(Program.LanguageManager.GetString(StringResources.MillPipe_PipeSaved), viewModel.Number), Program.LanguageManager.GetString(StringResources.MillPipe_PipeSavedHeader)); } else { notify.ShowError(Program.LanguageManager.GetString(StringResources.ExternalFiles_NotCopied), Program.LanguageManager.GetString(StringResources.ExternalFiles_NotCopied_Header)); } viewModel.ModifiableView.IsModified = false; viewModel.ModifiableView.UpdateState(); notify.ShowNotify( string.Concat(Program.LanguageManager.GetString(StringResources.MillPipe_PipeSaved), viewModel.Number), Program.LanguageManager.GetString(StringResources.MillPipe_PipeSavedHeader)); log.Info(string.Format("The entity #{0}, id:{1} has been saved in DB.", viewModel.Pipe.Number, viewModel.Pipe.Id)); } catch (RepositoryException ex) { log.Error(ex.Message); notify.ShowFailure(ex.InnerException.Message, ex.Message); } } else { notify.ShowInfo( Program.LanguageManager.GetString(StringResources.MillPipe_ErrorEditingInspectionOperationPipeInRailcar), Program.LanguageManager.GetString(StringResources.MillPipe_PipeSavedHeader)); } } RefreshVisualStateEvent(); }