aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-12-19 14:52:54 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-12-19 14:52:54 +0200
commitc3ed01b6c75c44cfeca650b43deb058b1551a9bb (patch)
tree87f8c8391373c3fa50eb7248798ce8fd99fde8c6 /Software/Visual_Studio/MachineStudio
parentde762e7e5b346af5a12eff04cbaa0696eec15b8c (diff)
downloadTango-c3ed01b6c75c44cfeca650b43deb058b1551a9bb.tar.gz
Tango-c3ed01b6c75c44cfeca650b43deb058b1551a9bb.zip
Moved machine studio update azure !!!
Diffstat (limited to 'Software/Visual_Studio/MachineStudio')
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs3
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Tango.MachineStudio.Common.csproj6
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesRequest.cs8
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesResponse.cs23
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/IMachineStudioUpdateService.cs14
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/LatestVersionRequest.cs15
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/LatestVersionResponse.cs15
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/MachineStudioUpdateService.cs42
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadCompletedRequest.cs5
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadCompletedResponse.cs14
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadVersionRequest.cs10
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadVersionResponse.cs22
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindowVM.cs40
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/Tango.MachineStudio.Publisher.csproj7
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj3
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs6
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs5
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs35
18 files changed, 155 insertions, 118 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs
index 67e052ecc..cab3d2bfc 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs
@@ -43,6 +43,8 @@ namespace Tango.MachineStudio.Common
/// </summary>
public String UpdateServiceAddress { get; set; }
+ public String MachineServiceAddress { get; set; }
+
/// <summary>
/// Gets or sets the allow beta release.
/// </summary>
@@ -96,6 +98,7 @@ namespace Tango.MachineStudio.Common
LastBounds = new Rect();
LoggingCategories = new List<LogCategory>();
UpdateServiceAddress = "http://twine01/MachineStudioUpdateService/MachineStudioUpdateService.svc";
+ MachineServiceAddress = "http://machineservice.twine-srv.com/";
DefaultIssueReportTags = new List<string>();
StudioModulesBounds = new List<StudioModuleBounds>();
}
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 8cf65a13d..31d28def8 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
@@ -122,8 +122,12 @@
<Compile Include="Update\CheckForUpdatesResponse.cs" />
<Compile Include="Update\CheckForUpdatesRequest.cs" />
<Compile Include="Update\IMachineStudioUpdateService.cs" />
+ <Compile Include="Update\LatestVersionRequest.cs" />
+ <Compile Include="Update\LatestVersionResponse.cs" />
+ <Compile Include="Update\MachineStudioUpdateService.cs" />
<Compile Include="Update\UpdateServiceHelper.cs" />
<Compile Include="Update\UploadCompletedRequest.cs" />
+ <Compile Include="Update\UploadCompletedResponse.cs" />
<Compile Include="Update\UploadVersionRequest.cs" />
<Compile Include="Update\UploadVersionResponse.cs" />
<Compile Include="ValidationRules\Required.cs" />
@@ -304,7 +308,7 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
+ <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
</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 0047e311b..11911dd7e 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesRequest.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesRequest.cs
@@ -4,22 +4,18 @@ using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
+using Tango.Transport.Web;
namespace Tango.MachineStudio.Common.Update
{
- [DataContract]
- public class CheckForUpdatesRequest
+ public class CheckForUpdatesRequest : WebRequestMessage
{
- [DataMember]
public String Email { get; set; }
- [DataMember]
public String Password { get; set; }
- [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 f34f12d8f..b0577f40b 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesResponse.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/CheckForUpdatesResponse.cs
@@ -4,37 +4,22 @@ using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
+using Tango.Transport.Web;
namespace Tango.MachineStudio.Common.Update
{
- [DataContract]
- public class CheckForUpdatesResponse
+ public class CheckForUpdatesResponse : WebResponseMessage
{
- [DataMember]
public bool IsUpdateAvailable { get; set; }
- [DataMember]
public bool IsStable { get; set; }
- [DataMember]
public String Version { get; set; }
- [DataMember]
public String Comments { get; set; }
- [DataMember]
- public String FtpHost { get; set; }
-
- [DataMember]
- public String FilePath { get; set; }
-
- [DataMember]
- public String UserName { get; set; }
-
- [DataMember]
- public String Password { get; set; }
-
- [DataMember]
public bool ForcedUpdate { get; set; }
+
+ public String BlobAddress { get; set; }
}
}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/IMachineStudioUpdateService.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/IMachineStudioUpdateService.cs
index 53e49e52c..4a7df7caa 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/IMachineStudioUpdateService.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/IMachineStudioUpdateService.cs
@@ -4,23 +4,19 @@ using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
+using System.Threading.Tasks;
using Tango.MachineStudio.Common.Update;
namespace Tango.MachineStudio.Common.Update
{
- [ServiceContract]
public interface IMachineStudioUpdateService
{
- [OperationContract]
- CheckForUpdatesResponse CheckForUpdates(CheckForUpdatesRequest request);
+ Task<CheckForUpdatesResponse> CheckForUpdates(CheckForUpdatesRequest request);
- [OperationContract]
- UploadVersionResponse UploadVersion(UploadVersionRequest request);
+ Task<UploadVersionResponse> UploadVersion(UploadVersionRequest request);
- [OperationContract]
- void NotifyUploadCompleted(UploadCompletedRequest request);
+ Task<UploadCompletedResponse> NotifyUploadCompleted(UploadCompletedRequest request);
- [OperationContract]
- String GetLatestVersion();
+ Task<LatestVersionResponse> GetLatestVersion(LatestVersionRequest request);
}
}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/LatestVersionRequest.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/LatestVersionRequest.cs
new file mode 100644
index 000000000..b4e7bd975
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/LatestVersionRequest.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.Transport.Web;
+
+namespace Tango.MachineStudio.Common.Update
+{
+ public class LatestVersionRequest : WebRequestMessage
+ {
+
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/LatestVersionResponse.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/LatestVersionResponse.cs
new file mode 100644
index 000000000..b90cbf370
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/LatestVersionResponse.cs
@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.Transport.Web;
+
+namespace Tango.MachineStudio.Common.Update
+{
+ public class LatestVersionResponse : WebResponseMessage
+ {
+ public String Version { get; set; }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/MachineStudioUpdateService.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/MachineStudioUpdateService.cs
new file mode 100644
index 000000000..aae1fe70d
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/MachineStudioUpdateService.cs
@@ -0,0 +1,42 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.Settings;
+using Tango.Transport.Web;
+
+namespace Tango.MachineStudio.Common.Update
+{
+ public class MachineStudioUpdateService : IMachineStudioUpdateService
+ {
+ private string address;
+ private WebTransportClient _client;
+
+ public MachineStudioUpdateService()
+ {
+ address = SettingsManager.Default.GetOrCreate<MachineStudioSettings>().MachineServiceAddress + "/api/MachineStudio/";
+ _client = new WebTransportClient();
+ }
+
+ public Task<CheckForUpdatesResponse> CheckForUpdates(CheckForUpdatesRequest request)
+ {
+ return _client.PostJson<CheckForUpdatesRequest, CheckForUpdatesResponse>(address + "CheckForUpdates", request);
+ }
+
+ public Task<UploadVersionResponse> UploadVersion(UploadVersionRequest request)
+ {
+ return _client.PostJson<UploadVersionRequest, UploadVersionResponse>(address + "UploadVersion", request);
+ }
+
+ public Task<UploadCompletedResponse> NotifyUploadCompleted(UploadCompletedRequest request)
+ {
+ return _client.PostJson<UploadCompletedRequest, UploadCompletedResponse>(address + "NotifyUploadCompleted", request);
+ }
+
+ public Task<LatestVersionResponse> GetLatestVersion(LatestVersionRequest request)
+ {
+ return _client.PostJson<LatestVersionRequest, LatestVersionResponse>(address + "GetLatestVersion", request);
+ }
+ }
+}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadCompletedRequest.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadCompletedRequest.cs
index ce6096792..fc478db50 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadCompletedRequest.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadCompletedRequest.cs
@@ -4,13 +4,12 @@ using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
+using Tango.Transport.Web;
namespace Tango.MachineStudio.Common.Update
{
- [DataContract]
- public class UploadCompletedRequest
+ public class UploadCompletedRequest : WebRequestMessage
{
- [DataMember]
public String Token { get; set; }
}
}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadCompletedResponse.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadCompletedResponse.cs
new file mode 100644
index 000000000..89850e3e5
--- /dev/null
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadCompletedResponse.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.Transport.Web;
+
+namespace Tango.MachineStudio.Common.Update
+{
+ public class UploadCompletedResponse : WebResponseMessage
+ {
+
+ }
+}
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 83739f615..c55cb9a22 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadVersionRequest.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadVersionRequest.cs
@@ -4,28 +4,22 @@ using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
+using Tango.Transport.Web;
namespace Tango.MachineStudio.Common.Update
{
- [DataContract]
- public class UploadVersionRequest
+ public class UploadVersionRequest : WebRequestMessage
{
- [DataMember]
public String Email { get; set; }
- [DataMember]
public String Password { get; set; }
- [DataMember]
public String Version { get; set; }
- [DataMember]
public String Comments { get; set; }
- [DataMember]
public bool ForcedUpdate { get; set; }
- [DataMember]
public bool IsStable { get; set; }
}
}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadVersionResponse.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadVersionResponse.cs
index 36dc3df30..4d13fc6ad 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadVersionResponse.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Update/UploadVersionResponse.cs
@@ -4,28 +4,14 @@ using System.Linq;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
+using Tango.Transport.Web;
namespace Tango.MachineStudio.Common.Update
{
- [DataContract]
- public class UploadVersionResponse
+ public class UploadVersionResponse : WebResponseMessage
{
- [DataMember]
- public String FtpHost { get; set; }
-
- [DataMember]
- public String FilePath { get; set; }
-
- [DataMember]
- public String FileName { get; set; }
-
- [DataMember]
- public String UserName { get; set; }
-
- [DataMember]
- public String Password { get; set; }
-
- [DataMember]
public String Token { get; set; }
+
+ public String BlobAddress { get; set; }
}
}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindowVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindowVM.cs
index ffeefb820..73f3f5bed 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindowVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindowVM.cs
@@ -19,6 +19,7 @@ using Tango.MachineStudio.Common;
using Tango.MachineStudio.Common.Update;
using Tango.Settings;
using Tango.SharedUI;
+using Tango.Transport.Web;
namespace Tango.MachineStudio.Publisher
{
@@ -26,7 +27,6 @@ namespace Tango.MachineStudio.Publisher
{
private BasicHashGenerator _hashGenerator;
private String _appPath = AppDomain.CurrentDomain.BaseDirectory + "..\\Release";
- private ChannelFactory<IMachineStudioUpdateService> _service;
private IMachineStudioUpdateService _client;
private String _email;
@@ -114,14 +114,15 @@ namespace Tango.MachineStudio.Publisher
public MainWindowVM()
{
+ _client = new MachineStudioUpdateService();
+
MaxProgress = 100;
_hashGenerator = new BasicHashGenerator();
PublishCommand = new RelayCommand(Publish, () => Email != null && Password != null && Comments != null && CurrentVersion != null && LatestVersion != null && !IsUpdating && Version.Parse(CurrentVersion) > Version.Parse(LatestVersion));
- _service = UpdateServiceHelper.GetUpdateServiceChannel();
- _client = _service.CreateChannel();
+ var client = new MachineStudioUpdateService();
UpdateVersions();
@@ -136,7 +137,7 @@ namespace Tango.MachineStudio.Publisher
private void UpdateVersions()
{
CurrentVersion = FileVersionInfo.GetVersionInfo(_appPath + "\\Tango.MachineStudio.UI.exe").ProductVersion;
- LatestVersion = _client.GetLatestVersion();
+ LatestVersion = _client.GetLatestVersion(new LatestVersionRequest()).Result.Version;
}
private void Publish()
@@ -152,7 +153,7 @@ namespace Tango.MachineStudio.Publisher
Task.Factory.StartNew(() =>
{
IsUpdating = true;
- String tempFile = String.Empty;
+ String tempFile = TemporaryManager.CreateFile();
try
{
@@ -164,9 +165,7 @@ namespace Tango.MachineStudio.Publisher
Comments = Comments,
ForcedUpdate = ForcedUpdate,
IsStable = IsStable,
- });
-
- tempFile = Path.Combine(Path.GetTempPath(), response.FileName);
+ }).Result;
using (ZipFile zip = new ZipFile())
{
@@ -190,28 +189,23 @@ namespace Tango.MachineStudio.Publisher
Progress = 0;
MaxProgress = 100;
- FileStreamWrapper fs = null;
-
- using (fs = new FileStreamWrapper(tempFile, FileMode.Open, (current) =>
- {
- InvokeUINow(() =>
- {
- Thread.Sleep(10);
- Progress = ((double)current / (double)fs.Length) * 100d;
- });
- }))
+ using (StorageBlobUploader uploader = new StorageBlobUploader(response.BlobAddress,tempFile))
{
- using (FtpClient ftp = new FtpClient(response.FtpHost, response.UserName, response.Password))
+ uploader.Progress += (x, e) =>
{
- ftp.ConnectAsync().Wait();
- ftp.UploadAsync(fs, response.FilePath, FtpExists.Overwrite, true).Wait();
- }
+ InvokeUINow(() =>
+ {
+ Progress = ((double)e.Current / (double)e.Total) * 100d;
+ });
+ };
+
+ uploader.Upload().Wait();
}
_client.NotifyUploadCompleted(new UploadCompletedRequest()
{
Token = response.Token,
- });
+ }).Wait();
Progress = 0;
UpdateVersions();
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/Tango.MachineStudio.Publisher.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/Tango.MachineStudio.Publisher.csproj
index c462c21f4..a7e3e045b 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/Tango.MachineStudio.Publisher.csproj
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/Tango.MachineStudio.Publisher.csproj
@@ -55,6 +55,7 @@
<Reference Include="Ionic.Zip, Version=1.9.1.8, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c, processorArchitecture=MSIL">
<HintPath>..\..\packages\Ionic.Zip.1.9.1.8\lib\Ionic.Zip.dll</HintPath>
</Reference>
+ <Reference Include="Microsoft.WindowsAzure.Storage, Version=4.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
@@ -145,6 +146,10 @@
<Project>{8491d07b-c1f6-4b62-a412-41b9fd2d6538}</Project>
<Name>Tango.SharedUI</Name>
</ProjectReference>
+ <ProjectReference Include="..\..\Tango.Transport\Tango.Transport.csproj">
+ <Project>{74e700b0-1156-4126-be40-ee450d3c3026}</Project>
+ <Name>Tango.Transport</Name>
+ </ProjectReference>
<ProjectReference Include="..\Tango.MachineStudio.Common\Tango.MachineStudio.Common.csproj">
<Project>{cb0b0aa2-bb24-4bca-a720-45e397684e12}</Project>
<Name>Tango.MachineStudio.Common</Name>
@@ -165,7 +170,7 @@
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UseGlobalSettings="False" BuildVersion_StartDate="2000/1/1" />
+ <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildVersioningStyle="None.None.Increment.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj
index b3926190f..d3c22341d 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Tango.MachineStudio.UI.csproj
@@ -69,6 +69,7 @@
<Reference Include="MaterialDesignThemes.Wpf, Version=2.3.1.953, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\MaterialDesignThemes.2.3.1.953\lib\net45\MaterialDesignThemes.Wpf.dll</HintPath>
</Reference>
+ <Reference Include="Microsoft.WindowsAzure.Storage, Version=4.3.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<Reference Include="SimpleValidator, Version=0.6.1.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\packages\SimpleValidator.0.6.1.0\lib\net40\SimpleValidator.dll</HintPath>
</Reference>
@@ -609,7 +610,7 @@ copy /Y "$(SolutionDir)Referenced Assemblies\Microsoft.WITDataStore32.dll" "$(Ta
</Target>
<ProjectExtensions>
<VisualStudio>
- <UserProperties BuildVersion_UseGlobalSettings="False" BuildVersion_DetectChanges="True" BuildVersion_UpdateFileVersion="True" BuildVersion_BuildVersioningStyle="None.None.Increment.DeltaBaseYearDayOfYear" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_StartDate="2000/1/1" />
+ <UserProperties BuildVersion_StartDate="2000/1/1" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_AssemblyInfoFilename="Properties\AssemblyInfo.cs" BuildVersion_BuildVersioningStyle="None.None.Increment.DeltaBaseYearDayOfYear" BuildVersion_UpdateFileVersion="True" BuildVersion_DetectChanges="True" BuildVersion_UseGlobalSettings="False" />
</VisualStudio>
</ProjectExtensions>
</Project> \ No newline at end of file
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs
index cafd0328a..545d51ef2 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/LoadingViewVM.cs
@@ -94,15 +94,15 @@ namespace Tango.MachineStudio.UI.ViewModels
Status = "Checking for critical updates...";
LogManager.Log("Checking for forced update...");
- var service = UpdateServiceHelper.GetUpdateServiceChannel();
- var client = service.CreateChannel();
+
+ var client = new MachineStudioUpdateService();
CheckForUpdatesResponse response = client.CheckForUpdates(new CheckForUpdatesRequest()
{
Email = "ForceUpdate",
Password = "ForceUpdate",
Version = ApplicationManager.Version.ToString(),
- });
+ }).Result;
if (response.IsUpdateAvailable && response.ForcedUpdate)
{
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
index c9cd3276f..befad162c 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
@@ -359,8 +359,7 @@ namespace Tango.MachineStudio.UI.ViewModels
{
if (_authenticationProvider.CurrentUser != null)
{
- var service = UpdateServiceHelper.GetUpdateServiceChannel();
- var client = service.CreateChannel();
+ var client = new MachineStudioUpdateService();
CheckForUpdatesResponse response = client.CheckForUpdates(new CheckForUpdatesRequest()
{
@@ -368,7 +367,7 @@ namespace Tango.MachineStudio.UI.ViewModels
Password = _authenticationProvider.CurrentUser.Password,
Version = _applicationManager.Version.ToString(),
AcceptBetaRelease = _settings.AcceptBetaRelease,
- });
+ }).Result;
IsUpdateAvailable = response.IsUpdateAvailable;
LatestVersion = response.Version;
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs
index a9624da2d..af197ca3b 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs
@@ -24,6 +24,7 @@ using Tango.SharedUI;
using Tango.MachineStudio.UI.Messages;
using Tango.Settings;
using Tango.MachineStudio.Common;
+using Tango.Transport.Web;
namespace Tango.MachineStudio.UI.ViewModels
{
@@ -193,8 +194,7 @@ namespace Tango.MachineStudio.UI.ViewModels
{
Thread.Sleep(2000);
- service = UpdateServiceHelper.GetUpdateServiceChannel();
- var client = service.CreateChannel();
+ var client = new MachineStudioUpdateService();
CheckForUpdatesResponse response = client.CheckForUpdates(new CheckForUpdatesRequest()
{
@@ -202,7 +202,7 @@ namespace Tango.MachineStudio.UI.ViewModels
Password = _authentication.CurrentUser.Password,
Version = _application.Version.ToString(),
AcceptBetaRelease = settings.AcceptBetaRelease,
- });
+ }).Result;
if (response.IsUpdateAvailable)
{
@@ -260,29 +260,18 @@ namespace Tango.MachineStudio.UI.ViewModels
{
logManager.Log("Creating temporary file " + tempFile);
- int fileSize = 0;
-
- using (FileStreamWrapper fs = new FileStreamWrapper(tempFile.Path, FileMode.Create, (current) =>
- {
- InvokeUINow(() =>
- {
- Thread.Sleep(10);
- DownloadProgress = ((double)current / (double)fileSize) * 100d;
- });
- }))
+ using (StorageBlobDownloader downloader = new StorageBlobDownloader(_updateInfo.BlobAddress, tempFile.Path))
{
- using (FtpClient ftp = new FtpClient(_updateInfo.FtpHost, _updateInfo.UserName, _updateInfo.Password))
+ downloader.Progress += (x, e) =>
{
- logManager.Log("Connecting to FTP site: " + _updateInfo.FtpHost);
- ftp.ConnectAsync().Wait();
- logManager.Log("Retrieving download size...");
- fileSize = (int)ftp.GetFileSize(_updateInfo.FilePath);
- logManager.Log("Download size: " + fileSize + " bytes.");
- logManager.Log("Starting download...");
- ftp.DownloadAsync(fs, _updateInfo.FilePath).Wait();
- }
- }
+ InvokeUINow(() =>
+ {
+ DownloadProgress = ((double)e.Current / (double)e.Total) * 100d;
+ });
+ };
+ downloader.Download().Wait();
+ }
Status = UpdateStatus.Updating;