aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common
diff options
context:
space:
mode:
authorShlomo Hecht <shlomo@twine-s.com>2018-11-25 10:44:37 +0200
committerShlomo Hecht <shlomo@twine-s.com>2018-11-25 10:44:37 +0200
commitbeff6af103bb0ae9b9147a907c6567bdb33abd00 (patch)
tree375eefd654c25f3b68c0cf5b3612df844a140d8e /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common
parent57f20269fbb4c591aa73c9f5e50118310cc4892e (diff)
parentdff24e56a8906b8c9b355cf407f25f4b793beafe (diff)
downloadTango-beff6af103bb0ae9b9147a907c6567bdb33abd00.tar.gz
Tango-beff6af103bb0ae9b9147a907c6567bdb33abd00.zip
merge
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common')
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/JobRunsLogging/DefaultJobRunsLogger.cs113
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/JobRunsLogging/IJobRunsLogger.cs14
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs5
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs5
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj4
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesRequest.cs3
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesResponse.cs3
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadVersionRequest.cs3
8 files changed, 149 insertions, 1 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/JobRunsLogging/DefaultJobRunsLogger.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/JobRunsLogging/DefaultJobRunsLogger.cs
new file mode 100644
index 000000000..b405a6729
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/JobRunsLogging/DefaultJobRunsLogger.cs
@@ -0,0 +1,113 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.BL;
+using Tango.BL.Entities;
+using Tango.BL.Enumerations;
+using Tango.Core;
+using Tango.Core.DI;
+using Tango.Integration.ExternalBridge;
+using Tango.Integration.Operation;
+using Tango.MachineStudio.Common.StudioApplication;
+
+namespace Tango.MachineStudio.Common.JobRunsLogging
+{
+ public class DefaultJobRunsLogger : ExtendedObject, IJobRunsLogger
+ {
+ private ObservablesContext _context;
+ private DateTime _start_date;
+ private Job _job;
+ private IStudioApplicationManager applicationManager;
+
+ public void Init(IStudioApplicationManager appManager)
+ {
+ applicationManager = appManager;
+ _context = ObservablesContext.CreateDefault();
+ applicationManager.ConnectedMachineChanged += ApplicationManager_ConnectedMachineChanged;
+ }
+
+ private void ApplicationManager_ConnectedMachineChanged(object sender, IExternalBridgeClient machine)
+ {
+ if (machine != null)
+ {
+ machine.PrintingStarted -= Machine_PrintingStarted;
+ machine.PrintingStarted += Machine_PrintingStarted;
+ machine.PrintingCompleted -= Machine_PrintingCompleted;
+ machine.PrintingCompleted += Machine_PrintingCompleted;
+ machine.PrintingAborted -= Machine_PrintingAborted;
+ machine.PrintingAborted += Machine_PrintingAborted;
+ machine.PrintingFailed -= Machine_PrintingFailed;
+ machine.PrintingFailed += Machine_PrintingFailed;
+ }
+ }
+
+ private void Machine_PrintingFailed(object sender, PrintingFailedEventArgs e)
+ {
+ if (e.Job.Guid == _job.Guid)
+ {
+ Task.Factory.StartNew(() =>
+ {
+ _context.JobRuns.Add(new JobRun()
+ {
+ StartDate = _start_date,
+ EndDate = DateTime.UtcNow,
+ JobGuid = _job.Guid,
+ JobRunStatus = JobRunStatus.Failed,
+ EndPosition = e.JobHandler.Status.Progress,
+ FailedMessage = e.Exception.Message,
+ });
+
+ _context.SaveChanges();
+ });
+ }
+ }
+
+ private void Machine_PrintingAborted(object sender, PrintingEventArgs e)
+ {
+ if (e.Job.Guid == _job.Guid)
+ {
+ Task.Factory.StartNew(() =>
+ {
+ _context.JobRuns.Add(new JobRun()
+ {
+ StartDate = _start_date,
+ EndDate = DateTime.UtcNow,
+ JobGuid = _job.Guid,
+ EndPosition = e.JobHandler.Status.Progress,
+ JobRunStatus = JobRunStatus.Aborted,
+ });
+
+ _context.SaveChanges();
+ });
+ }
+ }
+
+ private void Machine_PrintingCompleted(object sender, PrintingEventArgs e)
+ {
+ if (e.Job.Guid == _job.Guid)
+ {
+ Task.Factory.StartNew(() =>
+ {
+ _context.JobRuns.Add(new JobRun()
+ {
+ StartDate = _start_date,
+ EndDate = DateTime.UtcNow,
+ JobGuid = _job.Guid,
+ EndPosition = e.JobHandler.Status.Progress,
+ JobRunStatus = JobRunStatus.Completed,
+ });
+
+ _context.SaveChanges();
+ });
+ }
+ }
+
+ private void Machine_PrintingStarted(object sender, PrintingEventArgs e)
+ {
+ _job = e.Job;
+ _start_date = DateTime.UtcNow;
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/JobRunsLogging/IJobRunsLogger.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/JobRunsLogging/IJobRunsLogger.cs
new file mode 100644
index 000000000..c3eca953b
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/JobRunsLogging/IJobRunsLogger.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.MachineStudio.Common.StudioApplication;
+
+namespace Tango.MachineStudio.Common.JobRunsLogging
+{
+ public interface IJobRunsLogger
+ {
+ void Init(IStudioApplicationManager appManager);
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs
index 06d5d44c5..67e052ecc 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs
@@ -44,6 +44,11 @@ namespace Tango.MachineStudio.Common
public String UpdateServiceAddress { get; set; }
/// <summary>
+ /// Gets or sets the allow beta release.
+ /// </summary>
+ public bool AcceptBetaRelease { get; set; }
+
+ /// <summary>
/// Gets or sets the logging categories.
/// </summary>
public List<LogCategory> LoggingCategories { get; set; }
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs
index 1a0499f2c..3e54a327b 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/StudioApplication/IStudioApplicationManager.cs
@@ -16,6 +16,11 @@ namespace Tango.MachineStudio.Common.StudioApplication
public interface IStudioApplicationManager : INotifyPropertyChanged
{
/// <summary>
+ /// Occurs when the application is ready.
+ /// </summary>
+ event EventHandler ApplicationReady;
+
+ /// <summary>
/// Occurs when the connected machine property has changed.
/// </summary>
event EventHandler<IExternalBridgeClient> ConnectedMachineChanged;
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj
index 551ec93c0..4259bbb04 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj
@@ -101,6 +101,8 @@
<Compile Include="Html\IHtmlPresenter.cs" />
<None Include="Helpers\GraphsHelper.cs" />
<Compile Include="IStudioViewModel.cs" />
+ <Compile Include="JobRunsLogging\DefaultJobRunsLogger.cs" />
+ <Compile Include="JobRunsLogging\IJobRunsLogger.cs" />
<Compile Include="MachineStudioSettings.cs" />
<Compile Include="Messages\MachineConnectionChangedMessage.cs" />
<Compile Include="Navigation\INavigationBlocker.cs" />
@@ -301,7 +303,7 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
+ <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesRequest.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesRequest.cs
index f76e714a2..0047e311b 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesRequest.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesRequest.cs
@@ -18,5 +18,8 @@ namespace Tango.MachineStudio.Common.Update
[DataMember]
public String Version { get; set; }
+
+ [DataMember]
+ public bool AcceptBetaRelease { get; set; }
}
}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesResponse.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesResponse.cs
index 8ae921156..f34f12d8f 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesResponse.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesResponse.cs
@@ -14,6 +14,9 @@ namespace Tango.MachineStudio.Common.Update
public bool IsUpdateAvailable { get; set; }
[DataMember]
+ public bool IsStable { get; set; }
+
+ [DataMember]
public String Version { get; set; }
[DataMember]
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadVersionRequest.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadVersionRequest.cs
index 18f29eda2..83739f615 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadVersionRequest.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadVersionRequest.cs
@@ -24,5 +24,8 @@ namespace Tango.MachineStudio.Common.Update
[DataMember]
public bool ForcedUpdate { get; set; }
+
+ [DataMember]
+ public bool IsStable { get; set; }
}
}