aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM.cs')
-rw-r--r--Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM.cs287
1 files changed, 0 insertions, 287 deletions
diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM.cs
deleted file mode 100644
index bb503e718..000000000
--- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Dialogs/ThreadLoadingViewVM.cs
+++ /dev/null
@@ -1,287 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Tango.BL;
-using Tango.BL.Builders;
-using Tango.BL.Entities;
-using Tango.Core.Commands;
-using Tango.Core.DI;
-using Tango.Integration.Operation;
-using Tango.PMR.ThreadLoading;
-using Tango.PPC.Common;
-using Tango.PPC.Common.Connection;
-using Tango.PPC.Common.Notifications;
-using Tango.Settings;
-using Tango.SharedUI;
-
-namespace Tango.PPC.UI.Dialogs
-{
- public class ThreadLoadingViewVM : DialogViewVM
- {
- public enum ThreadLoadingStage
- {
- Welcome,
- Preparing,
- ReadyForLoading,
- Finalizing,
- Completed,
- PreparationError,
- FinalizationError,
- }
-
- [TangoInject]
- private IMachineProvider MachineProvider { get; set; }
-
- [TangoInject]
- private INotificationProvider NotificationProvider { get; set; }
-
- private PPCSettings _settings;
-
- private StartThreadLoadingResponse _status;
- public StartThreadLoadingResponse Status
- {
- get { return _status; }
- set { _status = value; RaisePropertyChangedAuto(); }
- }
-
- private List<Rml> _rmls;
- public List<Rml> Rmls
- {
- get { return _rmls; }
- set { _rmls = value; RaisePropertyChangedAuto(); }
- }
-
- private Rml _selectedRml;
- public Rml SelectedRml
- {
- get { return _selectedRml; }
- set { _selectedRml = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); }
- }
-
- private ThreadLoadingStage _stage;
- public ThreadLoadingStage Stage
- {
- get { return _stage; }
- set { _stage = value; RaisePropertyChangedAuto(); InvalidateRelayCommands(); }
- }
-
- private bool _isArcHead;
- public bool IsArcHead
- {
- get { return _isArcHead; }
- set { _isArcHead = value; RaisePropertyChangedAuto(); }
- }
-
- private String _error;
- public String Error
- {
- get { return _error; }
- set { _error = value; RaisePropertyChangedAuto(); }
- }
-
- public RelayCommand ContinueCommand { get; set; }
- public RelayCommand AbortCommand { get; set; }
-
- public ThreadLoadingViewVM(bool userInvoked = false)
- {
- CanClose = false;
-
- TangoIOC.Default.Inject(this);
- _settings = SettingsManager.Default.GetOrCreate<PPCSettings>();
-
- MachineProvider.MachineOperator.ThreadLoadingStatusChanged += MachineOperator_ThreadLoadingStatusChanged;
- MachineProvider.MachineDisconnected += MachineProvider_MachineDisconnected;
-
- IsArcHead = MachineProvider.Machine.MachineHeadType == BL.Enumerations.HeadTypes.Arc;
-
- ContinueCommand = new RelayCommand(Continue, CanContinue);
- AbortCommand = new RelayCommand(Abort);
-
- AdaptToState(userInvoked);
- }
-
- private void MachineProvider_MachineDisconnected(object sender, EventArgs e)
- {
- InvokeUI(() =>
- {
- Cancel();
- });
- }
-
- private void AdaptToState(bool userInvoked = false)
- {
- var status = MachineProvider.MachineOperator.ThreadLoadingStatus;
-
- if (status != null)
- {
- if (status.State == ThreadLoadingState.Preparing)
- {
- Stage = ThreadLoadingStage.Preparing;
- }
- else if (status.State == ThreadLoadingState.ReadyForLoading)
- {
- Stage = ThreadLoadingStage.ReadyForLoading;
- }
- else if (status.State == ThreadLoadingState.Finalizing)
- {
- Stage = ThreadLoadingStage.Finalizing;
- }
- else if (status.State == ThreadLoadingState.PreparationError)
- {
- OnPreparationError(status.ErrorReason);
- }
- else if (status.State == ThreadLoadingState.FinalizationError)
- {
- OnFinalizationError(status.ErrorReason);
- }
- else if (status.State == ThreadLoadingState.Completed)
- {
- if (userInvoked)
- {
- Stage = ThreadLoadingStage.Welcome;
- }
- else
- {
- Stage = ThreadLoadingStage.Completed;
- }
- }
- }
- }
-
- private void MachineOperator_ThreadLoadingStatusChanged(object sender, StartThreadLoadingResponse e)
- {
- Status = e;
- AdaptToState();
- }
-
- private void Continue()
- {
- if (Stage == ThreadLoadingStage.Welcome)
- {
- Stage = ThreadLoadingStage.Preparing;
- StartPreparing();
- }
- else if (Stage == ThreadLoadingStage.ReadyForLoading)
- {
- ContinueThreadLoading();
- }
- else if (Stage == ThreadLoadingStage.Completed)
- {
- Accept();
- }
- else if (Stage == ThreadLoadingStage.PreparationError)
- {
- Stage = ThreadLoadingStage.Preparing;
- StartPreparing();
- }
- else if (Stage == ThreadLoadingStage.FinalizationError)
- {
- ContinueThreadLoading();
- }
- }
-
- private async void StartPreparing()
- {
- try
- {
- await MachineProvider.MachineOperator.StartThreadLoading();
- }
- catch (Exception ex)
- {
- OnPreparationError(ex.Message);
- }
- }
-
- private async void ContinueThreadLoading()
- {
- try
- {
- Stage = ThreadLoadingStage.Finalizing;
- await MachineProvider.MachineOperator.ContinueThreadLoading(SelectedRml.GetActiveProcessGroup().ProcessParametersTables.FirstOrDefault());
- }
- catch (Exception ex)
- {
- OnFinalizationError(ex.Message);
- }
- }
-
- private bool CanContinue()
- {
- bool canContinue = false;
-
- if (Stage != ThreadLoadingStage.Preparing && Stage != ThreadLoadingStage.Finalizing)
- {
- canContinue = true;
- }
-
- if (Stage == ThreadLoadingStage.ReadyForLoading && SelectedRml == null)
- {
- canContinue = false;
- }
-
- return canContinue;
- }
-
- private void OnPreparationError(String error)
- {
- Error = error;
- Stage = ThreadLoadingStage.PreparationError;
- }
-
- private void OnFinalizationError(String error)
- {
- Error = error;
- Stage = ThreadLoadingStage.FinalizationError;
- }
-
- private void Abort()
- {
- Cancel();
- }
-
- public async override void OnShow()
- {
- base.OnShow();
-
- LogManager.Log("Loading site RMLS...");
-
- List<Rml> rmls = new List<Rml>();
-
- using (ObservablesContext db = ObservablesContext.CreateDefault())
- {
- rmls = await new RmlsCollectionBuilder(db).SetAll().ForHeadType(MachineProvider.Machine.MachineHeadType).ForSite(MachineProvider.Machine.SiteGuid).WithActiveParametersGroup().BuildListAsync();
- }
-
- var selectedRml = rmls.SingleOrDefault(x => x.Guid == _settings.LoadedRmlGuid);
-
- Rmls = rmls;
- SelectedRml = selectedRml != null ? selectedRml : rmls.FirstOrDefault();
- }
-
- protected override void Cancel()
- {
- CleanUp();
- base.Cancel();
- }
-
- protected override void Accept()
- {
- CleanUp();
- base.Accept();
- }
-
- private void CleanUp()
- {
- MachineProvider.MachineOperator.ThreadLoadingStatusChanged -= MachineOperator_ThreadLoadingStatusChanged;
- MachineProvider.MachineDisconnected -= MachineProvider_MachineDisconnected;
-
- if (SelectedRml != null)
- {
- _settings.LoadedRmlGuid = SelectedRml.Guid;
- _settings.Save();
- }
- }
- }
-}