Пример #1
0
        /// <summary>
        /// Creation of child form. Can be used from outside to pass some Guid of entity and number to newly created forms.
        /// </summary>
        /// <param name="formType">exact type of form</param>
        /// <param name="id">Guid of entity</param>
        /// <param name="parameters">input parameters passed to the newly created form</param>
        public ChildForm OpenChildForm(Type formType, List <KeyValuePair <string, object> > parameters, Guid id = default(Guid))
        {
            ChildForm form = null;

            if (typeof(ChildForm).IsAssignableFrom(formType))
            {
                var forms = GetListChildForm(formType);
                //search
                int indexById = GetFormIndex(formType.Name, id);

                if (indexById >= 0 && forms.Count > 0) // is open
                {
                    form = forms[indexById];
                }
                if (form != null)
                {
                    form.Activate();
                }
                else //create new
                {
                    int index = FindOpenForm(formType.Name, true);

                    if (formType == typeof(ReleaseNoteNewEditXtraForm) && index >= 0)// this type form is open in edit mode
                    {
                        if (id == default(Guid))
                        {
                            string text = Program.LanguageManager.GetString(StringResources.MainWindow_CloseEditingReleaseNote);
                            notify.ShowWarning(text, "");
                            form = forms[index];
                            form.Activate();
                        }
                        else
                        {
                            string text = Program.LanguageManager.GetString(StringResources.MainWindow_OpenReleaseNoteReadOnly);
                            if (notify.ShowYesNo(text, ""))
                            {
                                form = ShowChildForm(formType, parameters, false);
                            }
                        }
                    }
                    else
                    {
                        form = ShowChildForm(formType, parameters, true);
                    }
                }
            }
            else
            {
                var e = new ApplicationException(String.Format("Could not create child form {0} because not of child type.", formType.Name));
                log.Error(e.Message);
                throw e;
            }
            return(form);
        }
Пример #2
0
        public void Execute()
        {
            if (notify.ShowYesNo(
                    Program.LanguageManager.GetString(StringResources.Joint_WithdrawQuestion),
                    Program.LanguageManager.GetString(StringResources.Joint_WithdrawQuestionHeader)))
            {
                try
                {
                    viewModel.JointDisconnection();

                    viewModel.FirstElement  = null;
                    viewModel.SecondElement = null;

                    viewModel.Joint.FirstElement  = null;
                    viewModel.Joint.SecondElement = null;

                    viewModel.JointConstructionStatus = Domain.Entity.Construction.JointStatus.Withdrawn;

                    repo.BeginTransaction();
                    repo.RepoJoint.SaveOrUpdate(viewModel.Joint);
                    repo.Commit();
                    repo.RepoJoint.Evict(viewModel.Joint);

                    viewModel.ModifiableView.IsModified = false;
                }
                catch (RepositoryException ex)
                {
                    log.Error(ex.Message);
                    notify.ShowFailure(ex.InnerException.Message, ex.Message);
                }
            }
        }
        public void Execute()
        {
            if (viewModel.Spool.IsAvailableToJoint && viewModel.Spool.ConstructionStatus != PartConstructionStatus.Welded)
            {
                if (notify.ShowYesNo(
                        Program.LanguageManager.GetString(StringResources.Spool_DeactivationQuestion),
                        Program.LanguageManager.GetString(StringResources.Spool_DeactivationQuestionHeader)))
                {
                    try
                    {
                        viewModel.PipeLength = viewModel.PipeLength + viewModel.SpoolLength;

                        viewModel.Spool.IsActive = false;

                        viewModel.ModifiableView.IsModified = true;
                        viewModel.ModifiableView.UpdateState();

                        notify.ShowSuccess(
                            string.Concat(Program.LanguageManager.GetString(
                                              StringResources.Spool_Deactivated), viewModel.SpoolNumber),
                            Program.LanguageManager.GetString(
                                StringResources.Spool_DeactivatedHeader));

                        log.Info(string.Format("The Spool #{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.SpoolIsActive = false;
                    viewModel.SpoolIsActive = true;
                }
            }
            else
            {
                notify.ShowInfo(
                    Program.LanguageManager.GetString(StringResources.Message_DeactivationConnectedSpool),
                    Program.LanguageManager.GetString(StringResources.Message_DeactivationConnectedSpoolHeader));

                //Refresh property so that binded control become unchecked
                viewModel.SpoolIsActive = false;
                viewModel.SpoolIsActive = true;
            }
            RefreshVisualStateEvent();
        }
Пример #4
0
        public void Execute()
        {
            if (!IsComponentsConnected(viewModel.Component))
            {
                if (notify.ShowYesNo(
                        Program.LanguageManager.GetString(StringResources.Message_ComponentDeactivationQuestion),
                        Program.LanguageManager.GetString(StringResources.Message_ComponentDeactivationQuestionHeader)))
                {
                    try
                    {
                        viewModel.ComponentIsActive = false;

                        viewModel.ModifiableView.IsModified = true;
                        viewModel.ModifiableView.UpdateState();

                        notify.ShowSuccess(
                            string.Concat(Program.LanguageManager.GetString(
                                              StringResources.ComponentNewEdit_DeactivatedAction), viewModel.Number),
                            Program.LanguageManager.GetString(
                                StringResources.ComponentNewEdit_DeactivatedActionHeader));

                        log.Info(string.Format("The entity #{0}, id:{1} has been deactivated.",
                                               viewModel.Component.Number, viewModel.Component.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.ComponentIsActive = false;
                    viewModel.ComponentIsActive = true;
                }
            }
            else
            {
                notify.ShowInfo(
                    Program.LanguageManager.GetString(StringResources.Message_DeactivationConnectedComponent),
                    Program.LanguageManager.GetString(StringResources.Message_DeactivationConnectedComponentHeader));

                //Refresh property so that binded control become unchecked
                viewModel.ComponentIsActive = false;
                viewModel.ComponentIsActive = true;
            }
            RefreshVisualStateEvent();
        }
Пример #5
0
        public void Execute()
        {
            if (notify.ShowYesNo(
                    Program.LanguageManager.GetString(StringResources.Spool_DeactivationQuestion),
                    Program.LanguageManager.GetString(StringResources.Spool_DeactivationQuestionHeader)))
            {
                try
                {
                    viewModel.PipeLength = viewModel.PipeLength + viewModel.SpoolLength;

                    viewModel.Spool.IsActive = false;

                    repo.BeginTransaction();
                    repo.PipeRepo.SaveOrUpdate(viewModel.Pipe);
                    repo.SpoolRepo.SaveOrUpdate(viewModel.Spool);

                    repo.Commit();

                    repo.PipeRepo.Evict(viewModel.Pipe);
                    repo.SpoolRepo.Evict(viewModel.Spool);

                    viewModel.ModifiableView.IsEditMode = false;
                    viewModel.ModifiableView.IsModified = false;
                    viewModel.ModifiableView.UpdateState();

                    notify.ShowSuccess(
                        string.Concat(Program.LanguageManager.GetString(
                                          StringResources.Spool_Deactivated), viewModel.SpoolNumber),
                        Program.LanguageManager.GetString(
                            StringResources.Spool_DeactivatedHeader));

                    log.Info(string.Format("The Spool #{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.SpoolIsActive = false;
                viewModel.SpoolIsActive = true;
            }
            RefreshVisualStateEvent();
        }
Пример #6
0
        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();
        }
Пример #7
0
        /// <summary>
        /// helper method to determine the possibility to open/create document.
        /// Can show questions to user.
        /// </summary>
        /// <param name="type">type of document</param>
        /// <param name="isNew">is entity supposed to be new</param>
        /// <param name="flags">flags pack</param>
        /// <param name="editMode">can/should this document to be opened in edit mode.</param>
        /// <returns></returns>
        private bool CanOpen(DocumentTypes type, bool isNew, FormFlags flags, out bool editMode)
        {
            editMode = !flags.HasFlag(FormFlags.EditAccessDenied) && flags.HasFlag(FormFlags.CanEditAtThisWorkstation);
            bool canOpen = true;

            if (flags.HasFlag(FormFlags.EditConflict))
            {
                if (type == DocumentTypes.Settings)
                {
                    canOpen &= notify.ShowYesNo(Program.LanguageManager.GetString(StringResources.Message_OpenSettingsForViewing),
                                                Program.LanguageManager.GetString(StringResources.Message_OpenSettingsForViewingHeader));
                }
                else
                {
                    canOpen &= notify.ShowYesNo(Program.LanguageManager.GetString(StringResources.Message_OpenFormForViewing),
                                                Program.LanguageManager.GetString(StringResources.Message_OpenFormForViewingHeader));
                }
                editMode = false;
            }
            if (flags.HasFlag(FormFlags.SingleEditAlreadyOpened))
            {
                string text = string.Empty;

                if (isNew)
                {
                    switch (type)
                    {
                    case DocumentTypes.MillReleaseNote:
                        text = Program.LanguageManager.GetString(StringResources.MainWindow_CloseEditingReleaseNote);
                        break;

                    case DocumentTypes.ConstructionJoint:
                        text = Program.LanguageManager.GetString(StringResources.MainWindow_ConstructionJoint);
                        break;

                    default:
                        break;
                    }
                    notify.ShowWarning(text, "");
                    canOpen = false;
                }
                else
                {
                    switch (type)
                    {
                    case DocumentTypes.MillReleaseNote:
                        text = Program.LanguageManager.GetString(StringResources.MainWindow_OpenReleaseNoteReadOnly);
                        break;

                    case DocumentTypes.ConstructionJoint:
                        text = Program.LanguageManager.GetString(StringResources.MainWindow_OpenConstructionJointReadOnly);
                        break;

                    default:
                        break;
                    }
                    canOpen &= notify.ShowYesNo(text, "");
                    editMode = false;
                }
            }
            return(canOpen);
        }