Пример #1
0
        public void Execute()
        {
            if (!viewModel.ValidatableView.Validate())
            {
                return;
            }

            if (!DateCheck())
            {
                notify.ShowInfo(Program.LanguageManager.GetString(StringResources.WrongDate),
                                Program.LanguageManager.GetString(StringResources.Message_ErrorHeader));
                log.Warn("Date limits not valid!");
                return;
            }

            if (viewModel.Joint.LoweringDate == DateTime.MinValue)
            {
                viewModel.Joint.LoweringDate = null;
            }

            var joints = repo.RepoJoint.GetActiveByNumber(viewModel.Joint);

            foreach (var joint in joints)
            {
                repo.RepoJoint.Evict(joint);
            }

            if (joints != null && joints.Count > 0)
            {
                notify.ShowInfo(
                    string.Concat(Program.LanguageManager.GetString(StringResources.Joint_Duplicate), viewModel.Number),
                    Program.LanguageManager.GetString(StringResources.Joint_DuplicateHeader));
                viewModel.Number = string.Empty;
            }
            else
            {
                if (viewModel.Joint.Status == Domain.Entity.Construction.JointStatus.Withdrawn)
                {
                    viewModel.SaveOrUpdateJointCommand.Execute();
                }
                else if (viewModel.MakeTheConnection())
                {
                    viewModel.SaveOrUpdateJointCommand.Execute();
                }
                else
                {
                    notify.ShowInfo(
                        Program.LanguageManager.GetString(StringResources.Joint_IncorrectDiameter),
                        Program.LanguageManager.GetString(StringResources.Joint_IncorrectDiameterHeader));
                }

                viewModel.NewJoint();
            }

            RefreshVisualStateEvent();
        }
Пример #2
0
        public void Execute()
        {
            if (((viewModel.StartJoint != null &&
                  viewModel.EndJoint != null) ||
                 (viewModel.startPK != int.MinValue &&
                  viewModel.endPK != int.MinValue)))
            {
                if (viewModel.startPK <= viewModel.endPK)
                {
                    viewModel.canCreateReport = true;
                    PipelineTracing();

                    if (path != null)
                    {
                        if (viewModel.ReportType == ReportType.TracingReport)
                        {
                            viewModel.ReportDataSource = tracingDataList;
                        }
                        else if (viewModel.ReportType == ReportType.UsedProductReport)
                        {
                            GetUsedProduct();
                            IEnumerable <PartData> sortedList = resultUsedProductList.OrderBy(_ => _.PartType).ThenBy(_ => _.Number);
                            viewModel.ReportDataSource = sortedList;
                        }

                        path = null;
                    }

                    else
                    {
                        viewModel.canCreateReport = false;
                        notify.ShowInfo(Program.LanguageManager.GetString(StringResources.TracingReport_PointNotConnectedMessage),
                                        Program.LanguageManager.GetString(StringResources.TracingReport_PointNotConnectedHeader));
                        log.Warn(viewModel.ReportType.ToString() + " report was empty because start and end point doesn't connected");
                    }
                }
                else
                {
                    viewModel.canCreateReport = false;
                    notify.ShowInfo(Program.LanguageManager.GetString(StringResources.TracingReport_KPSwappedMessage),
                                    Program.LanguageManager.GetString(StringResources.TracingReport_KPSwappedHeader));
                    log.Warn("KP limits not valid!" + "Diapason: start KP= "
                             + viewModel.StartPK.ToString() + " end KP= " + viewModel.EndPK.ToString());
                }
            }
            else
            {
                viewModel.canCreateReport = false;
                notify.ShowInfo(Program.LanguageManager.GetString(StringResources.TracingReport_DiapasonIsEmptyMessage),
                                Program.LanguageManager.GetString(StringResources.TracingReport_DiapasonIsEmptyHeader));
                log.Warn(viewModel.ReportType.ToString() + " diapason for this report was empty");
            }
        }
Пример #3
0
        public void Execute()
        {
            if (CanExecute())
            {
                string sourceFile = Path.Combine(Directories.TargetPath, viewModel.SelectedFile.NewName);
                string tempFile   = Path.Combine(Directories.TargetPathForView, Guid.NewGuid() + viewModel.SelectedFile.FileName.Substring(viewModel.SelectedFile.FileName.LastIndexOf('.')));

                if (!Directory.Exists(Directories.TargetPathForView))
                {
                    Directory.CreateDirectory(Directories.TargetPathForView);
                    DirectoryInfo directoryInfo = new DirectoryInfo(Directories.TargetPathForView);
                    directoryInfo.Attributes |= FileAttributes.Hidden;
                }

                if (File.Exists(sourceFile))
                {
                    File.Copy(sourceFile, tempFile);
                    System.Diagnostics.Process.Start(tempFile);
                }
            }
            else
            {
                notify.ShowInfo(Program.LanguageManager.GetString(StringResources.ExternalFiles_FileViewDownloadFail), Program.LanguageManager.GetString(StringResources.ExternalFiles_FileViewDownloadFailHeader));
            }
        }
Пример #4
0
 public void Execute()
 {
     if (Prizm.Main.Common.DateExtension.CheckDiapason(viewModel.StartDate, viewModel.EndDate))
     {
         try
         {
             data = repo.GetPipesFromInspection(viewModel.StartDate, viewModel.EndDate);
             IncomingReportsXtraReport report = new IncomingReportsXtraReport();
             SetDataSortByColumn("number");
             data.TranslateStatus <PartInspectionStatus>(SQLProvider.TableNameForInspectionReport, SQLProvider.ColumnNameForInspectionStatus, viewModel.localizedInspectionStatus);
             report.DataSource        = data;
             report.FootersVisibility = viewModel.IsFooterVisible;
             report.CreateDocument();
             var tool = new ReportPrintTool(report);
             tool.AutoShowParametersPanel = false;
             tool.ShowPreview();
         }
         catch (RepositoryException ex)
         {
             log.Error(string.Concat(ex.InnerException.Message, ex.Message));
             notify.ShowFailure(ex.InnerException.Message, ex.Message);
         }
     }
     else
     {
         notify.ShowInfo(Program.LanguageManager.GetString(StringResources.Message_FailureReportDate),
                         Program.LanguageManager.GetString(StringResources.Message_FailureReportDateHeader));
         log.Warn("Date limits not valid!" + "Diapason: start date= "
                  + viewModel.StartDate.ToString() + " end date= " + viewModel.EndDate.ToString());
     }
 }
Пример #5
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;
            }
        }
        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();
        }
Пример #7
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();
        }
Пример #8
0
 public void Execute()
 {
     if (CanExecute())
     {
         string sourceFile = Path.Combine(Directories.TargetPath, viewModel.SelectedFile.NewName);
         if (File.Exists(sourceFile))
         {
             File.Copy(sourceFile, viewModel.SelectedPath);
             notify.ShowNotify(Program.LanguageManager.GetString(StringResources.ExternalFiles_FileDownloadSuccess), Program.LanguageManager.GetString(StringResources.ExternalFiles_FileDownloadHeader));
         }
     }
     else
     {
         notify.ShowInfo(Program.LanguageManager.GetString(StringResources.ExternalFiles_FileViewDownloadFail), Program.LanguageManager.GetString(StringResources.ExternalFiles_FileViewDownloadFailHeader));
     }
 }
Пример #9
0
        public void Execute()
        {
            if (Prizm.Main.Common.DateExtension.CheckDiapason(viewModel.StartDate, viewModel.EndDate))
            {
                if (viewModel.TracingMode == TracingModeEnum.TracingByNumber)
                {
                    IList <AuditLog> results = new List <AuditLog>();
                    try
                    {
                        results = repo.GetRecordsByNumber(viewModel.Number, viewModel.StartDate, viewModel.EndDate, viewModel.OperationTypes);
                    }
                    catch (RepositoryException ex)
                    {
                        log.Warn("AuditSearchCommandExecute " + ex.ToString());
                        notify.ShowWarning(Program.LanguageManager.GetString(StringResources.Notification_Error_Db_Message),
                                           Program.LanguageManager.GetString(StringResources.Notification_Error_Db_Header));
                    }

                    viewModel.AuditResults = new BindingList <AuditLog>(results);
                }
                else if (viewModel.TracingMode == TracingModeEnum.TracingByUser)
                {
                    IList <AuditLog> results = new List <AuditLog>();
                    try
                    {
                        results = repo.GetRecordsByUser(viewModel.SelectedUser, viewModel.StartDate, viewModel.EndDate, viewModel.OperationTypes);
                    }
                    catch (RepositoryException ex)
                    {
                        log.Warn("AuditSearchCommandExecute " + ex.ToString());
                        notify.ShowWarning(Program.LanguageManager.GetString(StringResources.Notification_Error_Db_Message),
                                           Program.LanguageManager.GetString(StringResources.Notification_Error_Db_Header));
                    }

                    viewModel.AuditResults = new BindingList <AuditLog>(results);
                }
            }
            else
            {
                notify.ShowInfo(Program.LanguageManager.GetString(StringResources.WrongDate),
                                Program.LanguageManager.GetString(StringResources.Message_ErrorHeader));
                log.Warn("Date limits not valid!" + "Diapason: start date= "
                         + viewModel.StartDate.ToString() + " end date= " + viewModel.EndDate.ToString());
            }
        }
Пример #10
0
        public void Execute()
        {
            if (!viewModel.Date.IsValid())
            {
                notify.ShowInfo(Program.LanguageManager.GetString(StringResources.WrongDate),
                                Program.LanguageManager.GetString(StringResources.Message_ErrorHeader));
                log.Warn("Date limits not valid!");
                return;
            }

            if (string.IsNullOrWhiteSpace(viewModel.Order.Number))
            {
                viewModel.IsSaved = false;
                notify.ShowError(
                    Program.LanguageManager.GetString(StringResources.PurchaseOrder_ValueRequired),
                    Program.LanguageManager.GetString(StringResources.PurchaseOrder_ErrorHeader)
                    );
            }
            else
            {
                try
                {
                    viewModel.Order.Number = viewModel.Order.Number.ToUpper();
                    repo.BeginTransaction();
                    repo.SaveOrUpdate(viewModel.Order);
                    repo.Commit();
                    viewModel.IsSaved = true;

                    log.Info(string.Format("The entity #{0}, id:{1} has been saved in DB.",
                                           viewModel.Order.Number,
                                           viewModel.Order.Id));
                }
                catch (RepositoryException ex)
                {
                    log.Error(ex.Message);
                }
            }
        }
Пример #11
0
        public void Execute()
        {
            try
            {
                if (Prizm.Main.Common.DateExtension.CheckDiapason(viewModel.WeldDateFrom, viewModel.WeldDateTo))
                {
                    viewModel.Data = repo.GetPipelineElements(viewModel.WeldDateFrom, viewModel.WeldDateTo);
                    if (viewModel.Data == null || viewModel.Data.Rows.Count <= 0)
                    {
                        log.Warn("Construction report: Data Table for Weld by Date report is NULL or empty");
                    }

                    var report = new WeldDateXtraReport();

                    report.DataSource        = viewModel.WeldDateReportDataList;
                    report.FootersVisibility = viewModel.IsFooterVisible;
                    var tool = new ReportPrintTool(report);
                    tool.AutoShowParametersPanel = false;
                    tool.ShowPreview();

                    RefreshVisualStateEvent();
                }
                else
                {
                    notify.ShowInfo(Program.LanguageManager.GetString(StringResources.Message_FailureReportDate),
                                    Program.LanguageManager.GetString(StringResources.Message_FailureReportDateHeader));
                    log.Warn("Date limits not valid!" + "Diapason: start date= "
                             + viewModel.WeldDateFrom.ToString() + " end date= " + viewModel.WeldDateTo.ToString());
                }
            }
            catch (RepositoryException ex)
            {
                log.Warn(this.GetType().Name + " | " + ex.ToString());
                notify.ShowWarning(Program.LanguageManager.GetString(StringResources.Notification_Error_Db_Message),
                                   Program.LanguageManager.GetString(StringResources.Notification_Error_Db_Header));
            }
        }
Пример #12
0
        public void Execute()
        {
            if (!DateCheck())
            {
                notify.ShowInfo(Program.LanguageManager.GetString(StringResources.WrongDate),
                                Program.LanguageManager.GetString(StringResources.Message_ErrorHeader));
                log.Warn("Date limits not valid!");
                return;
            }

            foreach (JointWeldResult w in viewModel.JointWeldResults)
            {
                if (w.Welders.Count <= 0)
                {
                    numberOfWeldOperationWithoutWelders++;
                }
            }

            foreach (JointTestResult t in viewModel.JointTestResults)
            {
                if (t.Inspectors.Count <= 0)
                {
                    numberOfControlOperationWithoutInspectors++;
                }
            }
            if (viewModel.ValidatableView.Validate())
            {
                if (numberOfWeldOperationWithoutWelders == 0)
                {
                    if (numberOfControlOperationWithoutInspectors == 0)
                    {
                        if (viewModel.Joint.LoweringDate == DateTime.MinValue)
                        {
                            viewModel.Joint.LoweringDate = null;
                        }
                        var joints = repo.RepoJoint.GetActiveByNumber(viewModel.Joint);
                        foreach (var joint in joints)
                        {
                            repo.RepoJoint.Evict(joint);
                        }
                        if (joints != null && joints.Count > 0)
                        {
                            notify.ShowInfo(
                                string.Concat(Program.LanguageManager.GetString(StringResources.Joint_Duplicate), viewModel.Number),
                                Program.LanguageManager.GetString(StringResources.Joint_DuplicateHeader));
                            viewModel.Number = string.Empty;
                        }
                        else
                        {
                            numberOfWeldOperationWithoutWelders       = 0;
                            numberOfControlOperationWithoutInspectors = 0;

                            if (viewModel.Joint.Status == Domain.Entity.Construction.JointStatus.Withdrawn)
                            {
                                viewModel.SaveOrUpdateJointCommand.Execute();
                            }
                            else if (viewModel.MakeTheConnection())
                            {
                                viewModel.SaveOrUpdateJointCommand.Execute();
                            }
                            else
                            {
                                notify.ShowInfo(
                                    Program.LanguageManager.GetString(StringResources.Joint_IncorrectDiameter),
                                    Program.LanguageManager.GetString(StringResources.Joint_IncorrectDiameterHeader));
                            }
                        }
                        RefreshVisualStateEvent();
                    }
                    else
                    {
                        notify.ShowError(
                            Program.LanguageManager.GetString(StringResources.SelectInspectorsForTestResult),
                            Program.LanguageManager.GetString(StringResources.SelectInspectorsForTestResultHeader));
                        numberOfControlOperationWithoutInspectors = 0;
                    }
                }
                else
                {
                    notify.ShowError(
                        Program.LanguageManager.GetString(StringResources.SelectWeldersForOperation),
                        Program.LanguageManager.GetString(StringResources.SelectWeldersForOperationHeader));
                    numberOfWeldOperationWithoutWelders = 0;
                }
            }
        }
Пример #13
0
        public void Execute()
        {
            if (!viewModel.validatableView.Validate())
            {
                return;
            }

            if (!viewModel.Date.IsValid())
            {
                notify.ShowInfo(Program.LanguageManager.GetString(StringResources.WrongDate),
                                Program.LanguageManager.GetString(StringResources.Message_ErrorHeader));
                log.Warn("Date limits not valid!");
                return;
            }

            if (string.IsNullOrWhiteSpace(viewModel.Number))
            {
                notify.ShowError(Program.LanguageManager.GetString(StringResources.ReleaseNoteNewEdit_MissingReleaseNoteNumber),
                                 Program.LanguageManager.GetString(StringResources.Message_ErrorHeader));
                return;
            }


            try
            {
                var emptyRailcars = viewModel.Railcars.Where(x => x.Pipes.Count == 0).ToList <SimpleRailcar>();

                var empty = viewModel.Railcars.Where(x => x.Pipes.Count == 0).ToList <SimpleRailcar>();
                foreach (var item in empty)
                {
                    viewModel.Railcars.Remove(item);
                }

                foreach (var r in viewModel.Railcars)
                {
                    r.ReleaseNote = viewModel.ReleaseNote;
                }

                viewModel.ReleaseNote.Number = viewModel.ReleaseNote.Number.ToUpper();

                foreach (var item in viewModel.Railcars)
                {
                    item.Number = item.Number.ToUpper();
                }

                repos.BeginTransaction();
                repos.SimpleNoteRepo.SaveOrUpdate(viewModel.ReleaseNote);

                var filesViewModel = viewModel.FilesFormViewModel;


                //saving attached existingDocuments
                bool fileCopySuccess = true;
                if (null != filesViewModel)
                {
                    filesViewModel.FileRepo           = repos.FileRepo;
                    viewModel.FilesFormViewModel.Item = viewModel.ReleaseNote.Id;
                    if (!viewModel.FilesFormViewModel.TrySaveFiles(viewModel.ReleaseNote))
                    {
                        fileCopySuccess = false;
                        repos.Rollback();
                    }
                }

                if (fileCopySuccess)
                {
                    repos.Commit();
                }

                repos.SimpleNoteRepo.Evict(viewModel.ReleaseNote);
                viewModel.ModifiableView.IsModified = false;
                viewModel.ModifiableView.Id         = viewModel.ReleaseNote.Id;

                if (fileCopySuccess)
                {
                    if (null != filesViewModel)
                    {
                        filesViewModel.DetachFileEntities();
                    }

                    notify.ShowSuccess(Program.LanguageManager.GetString(StringResources.ReleaseNoteNewEdit_SaveSuccess),
                                       Program.LanguageManager.GetString(StringResources.ReleaseNoteNewEdit_SaveSuccessHeader));

                    log.Info(string.Format("The entity #{0}, id:{1} has been saved in DB.", viewModel.ReleaseNote.Number,
                                           viewModel.ReleaseNote.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.ReleaseNote.Number,
                                           viewModel.ReleaseNote.Id));
                }
            }
            catch (RepositoryException ex)
            {
                log.Error(String.Format("An error occured on saving release note {0},{1}: {2}", viewModel.ReleaseNote.Id, viewModel.ReleaseNote.Number, ex.Message));
                notify.ShowFailure(ex.InnerException.Message, ex.Message);
            }
            RefreshVisualStateEvent();
        }
Пример #14
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();
        }
Пример #15
0
        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();
        }
Пример #16
0
        public void Execute()
        {
            try
            {
                if (Prizm.Main.Common.DateExtension.CheckDiapason(viewModel.FromDate, viewModel.ToDate))
                {
                    repo.Clear();
                    if (viewModel.Statuses.Count > 0)
                    {
                        bool?status;
                        switch (viewModel.Activity)
                        {
                        case ActivityCriteria.StatusActive:
                            status = true;
                            break;

                        case ActivityCriteria.StatusUnactive:
                            status = false;
                            break;

                        default:
                            status = null;
                            break;
                        }

                        IList <Construction.Joint> list = repo.SearchJoint
                                                          (
                            viewModel.Number,
                            viewModel.Statuses,
                            viewModel.FromDate,
                            viewModel.ToDate,
                            viewModel.PegNumber,
                            status,
                            Program.ThisWorkstationType
                                                          );

                        list.OrderBy(n => n.Number).ToList();

                        viewModel.Joints.Clear();
                        foreach (var item in list)
                        {
                            viewModel.Joints.Add(item);
                        }

                        viewModel.Amount = list.Count();
                        RefreshVisualStateEvent();
                    }
                }
                else
                {
                    notify.ShowInfo(Program.LanguageManager.GetString(StringResources.WrongDate),
                                    Program.LanguageManager.GetString(StringResources.Message_ErrorHeader));
                    log.Warn("Date limits not valid!" + "Diapason: start date= "
                             + viewModel.FromDate.ToString() + " end date= " + viewModel.ToDate.ToString());
                }
            }
            catch (RepositoryException ex)
            {
                log.Warn(this.GetType().Name + " | " + ex.ToString());
                notify.ShowWarning(Program.LanguageManager.GetString(StringResources.Notification_Error_Db_Message),
                                   Program.LanguageManager.GetString(StringResources.Notification_Error_Db_Header));
            }
        }
Пример #17
0
        public void Execute()
        {
            if (!viewModel.validatableView.Validate())
            {
                notify.ShowError(
                    Program.LanguageManager.GetString(StringResources.Settings_CheckValues),
                    Program.LanguageManager.GetString(StringResources.Settings_ErrorHeader));

                return;
            }

            if (!DateCheck())
            {
                notify.ShowInfo(Program.LanguageManager.GetString(StringResources.WrongDate),
                                Program.LanguageManager.GetString(StringResources.Message_ErrorHeader));
                log.Warn("Date limits not valid!");
                return;
            }

            StringBuilder types             = new StringBuilder();
            List <string> typesList         = new List <string>();
            bool          controlValidation = true;

            foreach (PipeMillSizeType s in viewModel.PipeMillSizeType)
            {
                if (s.Thickness == 0 || s.SeamType == null || s.Length == 0 || s.Diameter == 0)
                {
                    typesList.Add(s.Type);
                    controlValidation = false;
                }
                foreach (PipeTest t in s.PipeTests)
                {
                    if (t.Code == string.Empty || t.Name == string.Empty || t.Category == null)
                    {
                        typesList.Add(s.Type);
                        controlValidation = false;
                    }
                }
            }

            if (controlValidation)
            {
                try
                {
                    repos.BeginTransaction();
                    SaveWelders();
                    SaveInspectors();
                    SaveMillSizeTypes();
                    SavePlateManufacturers();
                    repos.ProjectRepo.SaveOrUpdate(viewModel.CurrentProjectSettings);
                    SaveRoles();
                    SaveUsers();
                    SaveCategories();
                    SaveJointOperations();
                    SaveComponentryType();
                    SaveInspectorCertificateType();
                    SaveSeamType();
                    repos.Commit();
                    EvictMillSizeTypes();
                    EvictWelders();
                    EvictInspectors();
                    EvictPlateManufacturers();
                    EvictRoles();
                    EvictUsers();
                    EvictJointOperations();
                    repos.ProjectRepo.Evict(viewModel.CurrentProjectSettings);
                    EvictCategories();
                    EvictComponentryType();
                    EvictInspectorCertificateType();
                    EvictSeamType();
                    viewModel.ModifiableView.IsModified = false;

                    notify.ShowNotify(
                        Program.LanguageManager.GetString(StringResources.Settings_SetupSaves),
                        Program.LanguageManager.GetString(StringResources.Settings_SetupSavedHeader));
                }
                catch (RepositoryException ex)
                {
                    log.Error(ex.Message);
                    notify.ShowFailure(ex.InnerException.Message, ex.Message);
                }

                RefreshVisualStateEvent();
            }
            else
            {
                foreach (string s in typesList.Distinct())
                {
                    types.Append(s + " ");
                }
                notify.ShowError
                    (Program.LanguageManager.GetString(StringResources.Settings_PipeControlOperationValidation) + types.ToString(),
                    Program.LanguageManager.GetString(StringResources.Settings_PipeControlOperationValidationHeader));
            }
        }
Пример #18
0
        public void Execute()
        {
            if (!viewModel.ValidatableView.Validate())
            {
                return;
            }

            foreach (var result in viewModel.InspectionTestResults)
            {
                if (!result.Date.IsValid())
                {
                    notify.ShowInfo(Program.LanguageManager.GetString(StringResources.WrongDate),
                                    Program.LanguageManager.GetString(StringResources.Message_ErrorHeader));
                    log.Warn("Date limits not valid!");
                    return;
                }
            }

            var c = repos.ComponentRepo.GetActiveByNumber(viewModel.Component);

            foreach (var component in c)
            {
                repos.ComponentRepo.Evict(component);
            }
            var    duplicateNumber = repo.GetAllActiveDuplicateEntityByNumber(viewModel.Number, viewModel.Component.Id).Distinct(new DuplicateNumberEntityComparer()).ToList();
            String resultString    = 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);
                    resultString = resultString + viewModel.localizedAllType[(int)((object)translate) - 1] + (i < duplicateNumber.Count - 1 ? ", " : "");;
                }

                notify.ShowInfo(
                    string.Concat(Program.LanguageManager.GetString(StringResources.DuplicateEntity_Message) + resultString),
                    Program.LanguageManager.GetString(StringResources.DuplicateEntity_MessageHeader));
                viewModel.Number = string.Empty;
            }
            else
            {
                foreach (InspectionTestResult t in viewModel.InspectionTestResults)
                {
                    if (t.Status != PartInspectionStatus.Pending && t.Inspectors.Count <= 0)
                    {
                        numberOfOperationWithoutInspectors++;
                    }
                }
                if (numberOfOperationWithoutInspectors == 0)
                {
                    try
                    {
                        viewModel.Component.InspectionStatus = viewModel.Component.GetPartInspectionStatus();
                        viewModel.Component.ToExport         = true;
                        repos.BeginTransaction();
                        viewModel.Component.Number = viewModel.Component.Number.ToUpper();
                        repos.ComponentRepo.SaveOrUpdate(viewModel.Component);

                        var filesViewModel = viewModel.FilesFormViewModel;

                        //saving attached documents
                        bool fileCopySuccess = true;
                        if (null != filesViewModel)
                        {
                            filesViewModel.FileRepo           = repos.FileRepo;
                            viewModel.FilesFormViewModel.Item = viewModel.Component.Id;
                            if (!viewModel.FilesFormViewModel.TrySaveFiles(viewModel.Component))
                            {
                                fileCopySuccess = false;
                                repos.Rollback();
                            }
                        }

                        if (fileCopySuccess)
                        {
                            repos.Commit();
                        }

                        repos.ComponentRepo.Evict(viewModel.Component);
                        viewModel.ModifiableView.IsModified = false;
                        viewModel.ModifiableView.Id         = viewModel.Component.Id;
                        viewModel.ModifiableView.UpdateState();

                        if (fileCopySuccess)
                        {
                            if (null != filesViewModel)
                            {
                                filesViewModel.DetachFileEntities();
                            }

                            notify.ShowSuccess(
                                string.Concat(Program.LanguageManager.GetString(StringResources.ComponentNewEdit_Saved), viewModel.Number),
                                Program.LanguageManager.GetString(StringResources.ComponentNewEdit_SavedHeader));

                            log.Info(string.Format("The entity #{0}, id:{1} has been saved in DB.",
                                                   viewModel.Component.Number, viewModel.Component.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.Component.Number, viewModel.Component.Id));
                        }
                    }
                    catch (RepositoryException ex)
                    {
                        log.Error(ex.Message);
                        notify.ShowFailure(ex.InnerException.Message, ex.Message);
                    }
                }
                else
                {
                    notify.ShowError(
                        Program.LanguageManager.GetString(StringResources.SelectInspectorsForTestResult),
                        Program.LanguageManager.GetString(StringResources.SelectInspectorsForTestResultHeader));
                    numberOfOperationWithoutInspectors = 0;
                }
            }
            RefreshVisualStateEvent();
        }
Пример #19
0
        public void Execute()
        {
            bool hasPipeCreteria    = false;
            bool hasRailCarCreteria = false;

            hasPipeCreteria    = viewModel.PipeNumber != string.Empty;
            hasRailCarCreteria = viewModel.RailcarNumber != string.Empty ||
                                 viewModel.Certificate != string.Empty ||
                                 viewModel.Receiver != string.Empty;

            if (Prizm.Main.Common.DateExtension.CheckDiapason(viewModel.StartDate, viewModel.EndDate))
            {
                try
                {
                    var projList = viewModel.Projection;
                    projList.Clear();
                    List <Prizm.Domain.Entity.Mill.ReleaseNote> note = new List <Domain.Entity.Mill.ReleaseNote>();;

                    if (!hasPipeCreteria && !hasRailCarCreteria)
                    {
                        note = repo.SearchReleases(viewModel.ReleaseNoteNumber,
                                                   viewModel.StartDate,
                                                   viewModel.EndDate);
                    }

                    else if (!hasPipeCreteria && hasRailCarCreteria)
                    {
                        note = repo.SearchReleasesByRailcar(viewModel.ReleaseNoteNumber,
                                                            viewModel.StartDate,
                                                            viewModel.EndDate,
                                                            viewModel.RailcarNumber,
                                                            viewModel.Certificate,
                                                            viewModel.Receiver);
                    }
                    else
                    {
                        note = repo.SearchReleasesAllCreteria(viewModel.ReleaseNoteNumber,
                                                              viewModel.StartDate,
                                                              viewModel.EndDate,
                                                              viewModel.PipeNumber,
                                                              viewModel.RailcarNumber,
                                                              viewModel.Certificate,
                                                              viewModel.Receiver);
                    }

                    foreach (var release in note)
                    {
                        projList.Add(new ReleaseNoteProjection
                        {
                            Id         = release.Id,
                            NoteNumber = release.Number,
                            NoteDate   = release.Date.ToShortDateString(),
                            Status     = release.Shipped
                        });
                    }

                    viewModel.Projection = new BindingList <ReleaseNoteProjection>(projList);
                    viewModel.Amount     = viewModel.Projection.Count();
                    RefreshVisualStateEvent();
                }
                catch (RepositoryException ex)
                {
                    log.Error(ex.Message);
                    notify.ShowFailure(ex.InnerException.Message, ex.Message);
                }
            }
            else
            {
                notify.ShowInfo(Program.LanguageManager.GetString(StringResources.WrongDate),
                                Program.LanguageManager.GetString(StringResources.Message_ErrorHeader));
                log.Warn("Date limits not valid!" + "Diapason: start date= "
                         + viewModel.StartDate.ToString() + " end date= " + viewModel.EndDate.ToString());
            }
        }
Пример #20
0
        public void Execute()
        {
            try
            {
                var duplicateNumber = duplicateNumberRepo.GetAllActiveDuplicateEntityByNumber(viewModel.Number, viewModel.Joint.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.ValidatableView.Validate())
                    {
                        return;
                    }

                    if (!DateCheck())
                    {
                        notify.ShowInfo(Program.LanguageManager.GetString(StringResources.WrongDate),
                                        Program.LanguageManager.GetString(StringResources.Message_ErrorHeader));
                        log.Warn("Date limits not valid!");
                        return;
                    }

                    if (viewModel.Joint.LoweringDate == DateTime.MinValue)
                    {
                        viewModel.Joint.LoweringDate = null;
                    }

                    numberOfWeldOperationWithoutWelders = 0;
                    foreach (JointWeldResult w in viewModel.JointWeldResults)
                    {
                        if (w.Welders.Count <= 0 &&
                            w.Operation.Type == Prizm.Domain.Entity.Setup.JointOperationType.Weld)
                        {
                            numberOfWeldOperationWithoutWelders++;
                        }
                    }

                    numberOfControlOperationWithoutInspectors = 0;
                    foreach (JointTestResult t in viewModel.JointTestResults)
                    {
                        if (t.Inspectors.Count <= 0)
                        {
                            numberOfControlOperationWithoutInspectors++;
                        }
                    }

                    if (numberOfWeldOperationWithoutWelders == 0)
                    {
                        if (numberOfControlOperationWithoutInspectors == 0)
                        {
                            var joints = repo.RepoJoint.GetActiveByNumber(viewModel.Joint);

                            foreach (var joint in joints)
                            {
                                repo.RepoJoint.Evict(joint);
                            }

                            if (joints != null && joints.Count > 0)
                            {
                                notify.ShowInfo(
                                    string.Concat(Program.LanguageManager.GetString(StringResources.Joint_Duplicate), viewModel.Number),
                                    Program.LanguageManager.GetString(StringResources.Joint_DuplicateHeader));
                                viewModel.Number = string.Empty;
                            }
                            else
                            {
                                if (viewModel.Joint.Status == Domain.Entity.Construction.JointStatus.Withdrawn)
                                {
                                    viewModel.SaveOrUpdateJointCommand.Execute();

                                    viewModel.RemovePartDataFromList(viewModel.Joint.FirstElement);
                                    viewModel.RemovePartDataFromList(viewModel.Joint.SecondElement);
                                }
                                else if (viewModel.MakeTheConnection())
                                {
                                    viewModel.SaveOrUpdateJointCommand.Execute();

                                    viewModel.RemovePartDataFromList(viewModel.Joint.FirstElement);
                                    viewModel.RemovePartDataFromList(viewModel.Joint.SecondElement);
                                }
                                else
                                {
                                    notify.ShowInfo(
                                        Program.LanguageManager.GetString(StringResources.Joint_IncorrectDiameter),
                                        Program.LanguageManager.GetString(StringResources.Joint_IncorrectDiameterHeader));

                                    log.Info(string.Format("There are no suitable diameters or wall thicknesses for the joint #{0}, id:{1} formation",
                                                           viewModel.Joint.Number,
                                                           viewModel.Joint.Id));
                                }

                                viewModel.NewJoint();
                                viewModel.ModifiableView.Id         = viewModel.Joint.Id;
                                viewModel.ModifiableView.IsModified = false;
                            }

                            RefreshVisualStateEvent();
                        }
                        else
                        {
                            notify.ShowError(
                                Program.LanguageManager.GetString(StringResources.SelectInspectorsForTestResult),
                                Program.LanguageManager.GetString(StringResources.SelectInspectorsForTestResultHeader));
                            numberOfControlOperationWithoutInspectors = 0;

                            log.Warn(string.Format("There are no inspectors for appropriate control operations for the joint #{0}, id:{1} formation",
                                                   viewModel.Joint.Number,
                                                   viewModel.Joint.Id));
                        }
                    }
                    else
                    {
                        notify.ShowError(
                            Program.LanguageManager.GetString(StringResources.SelectWeldersForOperation),
                            Program.LanguageManager.GetString(StringResources.SelectWeldersForOperationHeader));
                        numberOfWeldOperationWithoutWelders = 0;

                        log.Warn(string.Format("There are no welders for appropriate weld operations for the joint #{0}, id:{1} formation",
                                               viewModel.Joint.Number,
                                               viewModel.Joint.Id));
                    }
                }
            }
            catch (RepositoryException ex)
            {
                log.Warn(this.GetType().Name + " | " + ex.ToString());
                notify.ShowWarning(Program.LanguageManager.GetString(StringResources.Notification_Error_Db_Message),
                                   Program.LanguageManager.GetString(StringResources.Notification_Error_Db_Header));
            }
        }
Пример #21
0
        public void Execute()
        {
            try
            {
                foreach (JointTestResult t in viewModel.JointTestResults)
                {
                    if (t.Inspectors.Count <= 0)
                    {
                        numberOfOperationWithoutInspectors++;
                    }
                }
                if (numberOfOperationWithoutInspectors == 0)
                {
                    try
                    {
                        var    duplicateNumber = duplicateNumberRepo.GetAllActiveDuplicateEntityByNumber(viewModel.Number, viewModel.Joint.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];
                            }

                            notify.ShowInfo(
                                string.Concat(Program.LanguageManager.GetString(StringResources.DuplicateEntity_Message) + result),
                                Program.LanguageManager.GetString(StringResources.DuplicateEntity_MessageHeader));
                            viewModel.Number = string.Empty;
                        }
                        else
                        {
                            viewModel.Joint.Number   = viewModel.Joint.Number.ToUpper();
                            viewModel.Joint.ToExport = true;
                            repo.BeginTransaction();
                            repo.RepoJoint.SaveOrUpdate(viewModel.Joint);

                            var filesViewModel = viewModel.FilesFormViewModel;


                            bool fileCopySuccess = true;
                            if (null != filesViewModel)
                            {
                                filesViewModel.FileRepo           = repo.FileRepo;
                                viewModel.FilesFormViewModel.Item = viewModel.Joint.Id;
                                if (!viewModel.FilesFormViewModel.TrySaveFiles(viewModel.Joint))
                                {
                                    fileCopySuccess = false;
                                    repo.Rollback();
                                }
                            }

                            if (fileCopySuccess)
                            {
                                repo.Commit();
                            }
                            repo.RepoJoint.Evict(viewModel.Joint);

                            if (fileCopySuccess)
                            {
                                if (null != filesViewModel)
                                {
                                    filesViewModel.DetachFileEntities();
                                }

                                notify.ShowSuccess(
                                    string.Concat(Program.LanguageManager.GetString(StringResources.Joint_Saved), viewModel.Number),
                                    Program.LanguageManager.GetString(StringResources.Joint_SavedHeader));

                                log.Info(string.Format("The entity #{0}, id:{1} has been saved in DB.",
                                                       viewModel.Joint.Number,
                                                       viewModel.Joint.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.Joint.Number,
                                                       viewModel.Joint.Id));
                            }

                            viewModel.ModifiableView.IsModified = false;
                            viewModel.ModifiableView.Id         = viewModel.Joint.Id;
                            viewModel.ModifiableView.UpdateState();
                        }
                    }
                    catch (RepositoryException ex)
                    {
                        log.Error(ex.Message);
                        notify.ShowFailure(ex.InnerException.Message, ex.Message);
                    }
                }
                else
                {
                    notify.ShowError(
                        Program.LanguageManager.GetString(StringResources.SelectInspectorsForTestResult),
                        Program.LanguageManager.GetString(StringResources.SelectInspectorsForTestResultHeader));
                }
            }
            catch (RepositoryException ex)
            {
                log.Warn(this.GetType().Name + " | " + ex.ToString());
                notify.ShowWarning(Program.LanguageManager.GetString(StringResources.Notification_Error_Db_Message),
                                   Program.LanguageManager.GetString(StringResources.Notification_Error_Db_Header));
            }
        }
Пример #22
0
        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();
        }
Пример #23
0
        public void Execute()
        {
            if (!viewModel.ValidatableView.Validate())
            {
                return;
            }

            foreach (var result in viewModel.InspectionTestResults)
            {
                if (!result.Date.IsValid())
                {
                    notify.ShowInfo(Program.LanguageManager.GetString(StringResources.WrongDate),
                                    Program.LanguageManager.GetString(StringResources.Message_ErrorHeader));
                    log.Warn("Date limits not valid!");
                    return;
                }
            }

            var c = repos.ComponentRepo.GetActiveByNumber(viewModel.Component);

            foreach (var component in c)
            {
                repos.ComponentRepo.Evict(component);
            }

            if (c != null && c.Count > 0)
            {
                notify.ShowInfo(
                    string.Concat(Program.LanguageManager.GetString(StringResources.ComponentNewEdit_Duplicate), " ", viewModel.Number),
                    Program.LanguageManager.GetString(StringResources.ComponentNewEdit_DuplicateHeader));
                viewModel.Number = string.Empty;
            }
            else
            {
                foreach (InspectionTestResult t in viewModel.InspectionTestResults)
                {
                    if (t.Status != PartInspectionStatus.Pending && t.Inspectors.Count <= 0)
                    {
                        numberOfOperationWithoutInspectors++;
                    }
                }
                if (numberOfOperationWithoutInspectors == 0)
                {
                    try
                    {
                        viewModel.Component.InspectionStatus = viewModel.Component.GetPartInspectionStatus();
                        repos.BeginTransaction();
                        viewModel.Component.Number = viewModel.Component.Number.ToUpper();
                        repos.ComponentRepo.SaveOrUpdate(viewModel.Component);

                        var filesViewModel = viewModel.FilesFormViewModel;

                        //saving attached documents
                        bool fileCopySuccess = true;
                        if (null != filesViewModel)
                        {
                            filesViewModel.FileRepo           = repos.FileRepo;
                            viewModel.FilesFormViewModel.Item = viewModel.Component.Id;
                            if (!viewModel.FilesFormViewModel.TrySaveFiles(viewModel.Component))
                            {
                                fileCopySuccess = false;
                                repos.Rollback();
                            }
                        }

                        repos.Commit();
                        repos.ComponentRepo.Evict(viewModel.Component);
                        viewModel.ModifiableView.IsModified = false;
                        viewModel.ModifiableView.UpdateState();

                        if (fileCopySuccess)
                        {
                            if (null != filesViewModel)
                            {
                                filesViewModel.DetachFileEntities();
                            }

                            notify.ShowSuccess(
                                string.Concat(Program.LanguageManager.GetString(StringResources.ComponentNewEdit_Saved), viewModel.Number),
                                Program.LanguageManager.GetString(StringResources.ComponentNewEdit_SavedHeader));
                        }
                        else
                        {
                            notify.ShowError(Program.LanguageManager.GetString(StringResources.ExternalFiles_NotCopied),
                                             Program.LanguageManager.GetString(StringResources.ExternalFiles_NotCopied_Header));
                        }

                        log.Info(string.Format("The entity #{0}, id:{1} has been saved in DB.",
                                               viewModel.Component.Number, viewModel.Component.Id));
                    }
                    catch (RepositoryException ex)
                    {
                        log.Error(ex.Message);
                        notify.ShowFailure(ex.InnerException.Message, ex.Message);
                    }
                }
                else
                {
                    notify.ShowError(
                        Program.LanguageManager.GetString(StringResources.SelectInspectorsForTestResult),
                        Program.LanguageManager.GetString(StringResources.SelectInspectorsForTestResultHeader));
                    numberOfOperationWithoutInspectors = 0;
                }
            }
            RefreshVisualStateEvent();
        }
Пример #24
0
 public void Execute()
 {
     if (Prizm.Main.Common.DateExtension.CheckDiapason(viewModel.StartDate, viewModel.EndDate))
     {
         try
         {
             if (viewModel.SelectedReportType == MillReportType.ByProducing)
             {
                 data = repo.GetPipes(viewModel.StartDate, viewModel.EndDate);
                 AdditionToTheReport   report = new AdditionToTheReport();
                 BindingList <decimal> counts = repo.CountPipe(viewModel.StartDate, viewModel.EndDate);
                 report.PipesCount  = counts[0];
                 report.PipesLength = counts[1];
                 report.PipesWeight = counts[2];
                 SetDataSortByColumn("number");
                 report.DataSource        = data;
                 report.FootersVisibility = viewModel.IsFooterVisible;
                 report.CreateDocument();
                 var tool = new ReportPrintTool(report);
                 tool.AutoShowParametersPanel = false;
                 tool.ShowPreview();
             }
             else if (viewModel.SelectedReportType == MillReportType.General)
             {
                 data = repo.CountWeldInf(viewModel.StartDate, viewModel.EndDate);
                 SetDataSortByColumn("productionDate");
                 GeneralInformationXtraReport report = new GeneralInformationXtraReport();
                 report.DataSource        = data;
                 report.FootersVisibility = viewModel.IsFooterVisible;
                 var tool = new ReportPrintTool(report);
                 tool.AutoShowParametersPanel = false;
                 tool.ShowPreview();
             }
             else if (viewModel.SelectedReportType == MillReportType.ByShipped)
             {
                 data = repo.GetReleaseNotes(viewModel.StartDate, viewModel.EndDate);
                 LoadingXtraReport report = new LoadingXtraReport();
                 SetDataSortByColumn("releaseNote");
                 report.DataSource        = data;
                 report.FootersVisibility = viewModel.IsFooterVisible;
                 var tool = new ReportPrintTool(report);
                 tool.AutoShowParametersPanel = false;
                 tool.ShowPreview();
             }
             else
             {
                 data = repo.GetPipesByStatus(viewModel.StartDate, viewModel.EndDate, viewModel.SearchIds, viewModel.SelectedReportType, viewModel.SearchStatuses);
                 MillReportsXtraReport report = new MillReportsXtraReport();
                 SetDataSortByColumn("number");
                 data.TranslateStatus <PipeMillStatus>(SQLProvider.TableNameForMillReport, SQLProvider.ColumnNameForMillReport, viewModel.localizedPipeStatus);
                 report.DataSource        = data;
                 report.FootersVisibility = viewModel.IsFooterVisible;
                 report.CreateDocument();
                 var tool = new ReportPrintTool(report);
                 tool.AutoShowParametersPanel = false;
                 tool.ShowPreview();
             }
         }
         catch (RepositoryException ex)
         {
             log.Error(string.Concat(ex.InnerException.Message, ex.Message));
             notify.ShowFailure(ex.InnerException.Message, ex.Message);
         }
     }
     else
     {
         notify.ShowInfo(Program.LanguageManager.GetString(StringResources.Message_FailureReportDate),
                         Program.LanguageManager.GetString(StringResources.Message_FailureReportDateHeader));
         log.Warn("Date limits not valid!" + "Diapason: start date= "
                  + viewModel.StartDate.ToString() + " end date= " + viewModel.EndDate.ToString());
     }
 }
Пример #25
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;
            }

            if (viewModel.Spool.Length != 0)
            {
                if (viewModel.CanCut)
                {
                    foreach (InspectionTestResult t in viewModel.InspectionTestResults)
                    {
                        if (t.Status != PartInspectionStatus.Pending && t.Inspectors.Count <= 0)
                        {
                            numberOfOperationWithoutInspectors++;
                        }
                    }

                    if (numberOfOperationWithoutInspectors == 0)
                    {
                        try
                        {
                            viewModel.Pipe.ToExport          = true;
                            viewModel.Pipe.IsCutOnSpool      = true;
                            viewModel.Spool.Number           = viewModel.Spool.Number.ToUpper();
                            viewModel.Spool.InspectionStatus = viewModel.Spool.GetPartInspectionStatus();
                            repos.BeginTransaction();
                            repos.PipeRepo.SaveOrUpdate(viewModel.Pipe);
                            repos.SpoolRepo.SaveOrUpdate(viewModel.Spool);

                            var filesViewModel = viewModel.FilesFormViewModel;

                            //saving attached documents
                            bool fileCopySuccess = true;
                            if (null != filesViewModel)
                            {
                                filesViewModel.FileRepo           = repos.FileRepo;
                                viewModel.FilesFormViewModel.Item = viewModel.Pipe.Id;
                                if (!viewModel.FilesFormViewModel.TrySaveFiles(viewModel.Pipe))
                                {
                                    fileCopySuccess = false;
                                    repos.Rollback();
                                }
                            }

                            repos.Commit();
                            repos.PipeRepo.Evict(viewModel.Pipe);
                            repos.SpoolRepo.Evict(viewModel.Spool);

                            if (fileCopySuccess)
                            {
                                if (null != filesViewModel)
                                {
                                    filesViewModel.DetachFileEntities();
                                }

                                notify.ShowSuccess(
                                    string.Concat(Program.LanguageManager.GetString(StringResources.Spool_CutSpoolFromPipe), viewModel.Spool.Id),
                                    Program.LanguageManager.GetString(StringResources.Spool_CutSpoolFromPipeHeader));
                            }
                            else
                            {
                                notify.ShowError(Program.LanguageManager.GetString(StringResources.ExternalFiles_NotCopied),
                                                 Program.LanguageManager.GetString(StringResources.ExternalFiles_NotCopied_Header));
                            }

                            viewModel.ModifiableView.IsModified = false;

                            notify.ShowNotify(
                                Program.LanguageManager.GetString(StringResources.Spool_CutSpoolFromPipe),
                                Program.LanguageManager.GetString(StringResources.Spool_CutSpoolFromPipeHeader));

                            log.Info(string.Format("The entity #{0}, id:{1} has been saved in DB.",
                                                   viewModel.Spool.Number,
                                                   viewModel.Spool.Id));

                            string oldPipeNumber = viewModel.Pipe.Number;
                            viewModel.NewSpool();
                            viewModel.PipeNumber = oldPipeNumber;
                            RefreshVisualStateEvent();
                        }
                        catch (RepositoryException ex)
                        {
                            log.Error(ex.Message);
                            notify.ShowFailure(ex.InnerException.Message, ex.Message);
                        }
                    }
                    else
                    {
                        notify.ShowError(
                            Program.LanguageManager.GetString(StringResources.SelectInspectorsForTestResult),
                            Program.LanguageManager.GetString(StringResources.SelectInspectorsForTestResultHeader));
                        viewModel.ModifiableView.IsEditMode = true;
                    }
                }
                else
                {
                    notify.ShowError(
                        Program.LanguageManager.GetString(StringResources.Spool_SpoolLengtBigerThenPipeLength),
                        Program.LanguageManager.GetString(StringResources.Spool_CutSpoolFromPipeHeader));
                    viewModel.ModifiableView.IsEditMode = true;
                    numberOfOperationWithoutInspectors  = 0;
                }
            }
            else
            {
                notify.ShowError(
                    Program.LanguageManager.GetString(StringResources.Spool_NullSpoolLength),
                    Program.LanguageManager.GetString(StringResources.Spool_CutSpoolFromPipeHeader));
                viewModel.ModifiableView.IsEditMode = true;
            }
        }