aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-11-15 16:21:13 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-11-15 16:21:13 +0200
commitdcdee2479e0dc709835e97853bb9db0349210336 (patch)
treeceafc1d3679931f0798236434e284d9a7ed644de /Software/Visual_Studio/MachineStudio
parentb0909a133eaba5223ca397c8186ba6b96fdaa647 (diff)
downloadTango-dcdee2479e0dc709835e97853bb9db0349210336.tar.gz
Tango-dcdee2479e0dc709835e97853bb9db0349210336.zip
Machine Studio v3.5.70 Stable.
Added stable/beta release modes. Handle corrupted log file names.
Diffstat (limited to 'Software/Visual_Studio/MachineStudio')
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Parsing/ApplicationLogFileParser.cs13
-rw-r--r--Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Parsing/EmbeddedLogFileParser.cs13
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/MachineStudioSettings.cs5
-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
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindow.xaml5
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindowVM.cs10
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs2
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs1
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs5
-rw-r--r--Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/MachineStudioUpdateService.svc.cs39
12 files changed, 84 insertions, 18 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Parsing/ApplicationLogFileParser.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Parsing/ApplicationLogFileParser.cs
index 4717196df..d3b33c436 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Parsing/ApplicationLogFileParser.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Parsing/ApplicationLogFileParser.cs
@@ -22,9 +22,16 @@ namespace Tango.MachineStudio.Logging.Parsing
foreach (var file in Directory.GetFiles(FileLogger.DefaultLogsFolder, "*.log").Where(x => Path.GetFileName(x).StartsWith("Tango.MachineStudio.UI") && x != logger.LogFile))
{
- String dateString = Path.GetFileNameWithoutExtension(file).Replace("Tango.MachineStudio.UI-", "");
- DateTime date = DateTime.ParseExact(dateString, "dd-MM-yyyy_HH-mm-ss", CultureInfo.InvariantCulture);
- logFiles.Add(new LogFile() { DateTime = date, File = file });
+ try
+ {
+ String dateString = Path.GetFileNameWithoutExtension(file).Replace("Tango.MachineStudio.UI-", "");
+ DateTime date = DateTime.ParseExact(dateString, "dd-MM-yyyy_HH-mm-ss", CultureInfo.InvariantCulture);
+ logFiles.Add(new LogFile() { DateTime = date, File = file });
+ }
+ catch (Exception ex)
+ {
+ LogManager.Default.Log(ex, $"Could not load application log file {Path.GetFileName(file)}");
+ }
}
return logFiles;
diff --git a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Parsing/EmbeddedLogFileParser.cs b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Parsing/EmbeddedLogFileParser.cs
index ca68334bf..50c9d7532 100644
--- a/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Parsing/EmbeddedLogFileParser.cs
+++ b/Software/Visual_Studio/MachineStudio/Modules/Tango.MachineStudio.Logging/Parsing/EmbeddedLogFileParser.cs
@@ -26,9 +26,16 @@ namespace Tango.MachineStudio.Logging.Parsing
{
foreach (var file in Directory.GetFiles(MachineOperator.EmbeddedLogsFolder, "*.log").Where(x => x != logFile))
{
- String dateString = Path.GetFileNameWithoutExtension(file).Replace(MachineOperator.EmbeddedLogsTag + "-", "");
- DateTime date = DateTime.ParseExact(dateString, "dd-MM-yyyy_HH-mm-ss", CultureInfo.InvariantCulture);
- logFiles.Add(new LogFile() { DateTime = date, File = file });
+ try
+ {
+ String dateString = Path.GetFileNameWithoutExtension(file).Replace(MachineOperator.EmbeddedLogsTag + "-", "");
+ DateTime date = DateTime.ParseExact(dateString, "dd-MM-yyyy_HH-mm-ss", CultureInfo.InvariantCulture);
+ logFiles.Add(new LogFile() { DateTime = date, File = file });
+ }
+ catch (Exception ex)
+ {
+ LogManager.Default.Log(ex, $"Could not load embedded log file {Path.GetFileName(file)}");
+ }
}
}
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/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; }
}
}
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindow.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindow.xaml
index 404faf4ab..28f0c1e80 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindow.xaml
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindow.xaml
@@ -49,7 +49,10 @@
<TextBlock FontSize="16" Margin="0 20 0 0">Comments</TextBlock>
<TextBox Height="70" Margin="0 5 0 0" Width="500" AcceptsReturn="True" TextWrapping="Wrap" Text="{Binding Comments,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"></TextBox>
- <CheckBox Margin="0 10 0 0" IsChecked="{Binding ForcedUpdate}">Forced Update</CheckBox>
+ <StackPanel Orientation="Horizontal" Margin="0 10 0 0">
+ <CheckBox IsChecked="{Binding ForcedUpdate}">Forced Update</CheckBox>
+ <CheckBox Margin="10 0 0 0" IsChecked="{Binding IsStable}">Stable Release</CheckBox>
+ </StackPanel>
</StackPanel>
<Grid DockPanel.Dock="Bottom">
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindowVM.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindowVM.cs
index 702343c72..ffeefb820 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindowVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Publisher/MainWindowVM.cs
@@ -61,6 +61,15 @@ namespace Tango.MachineStudio.Publisher
set { _forcesUpdate = value; RaisePropertyChangedAuto(); }
}
+ private bool _isStable;
+
+ public bool IsStable
+ {
+ get { return _isStable; }
+ set { _isStable = value; RaisePropertyChangedAuto(); }
+ }
+
+
private String _currentVersion;
public String CurrentVersion
@@ -154,6 +163,7 @@ namespace Tango.MachineStudio.Publisher
Version = CurrentVersion.ToString(),
Comments = Comments,
ForcedUpdate = ForcedUpdate,
+ IsStable = IsStable,
});
tempFile = Path.Combine(Path.GetTempPath(), response.FileName);
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs
index 1caa12577..1591de4ac 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/Properties/AssemblyInfo.cs
@@ -4,5 +4,5 @@ using System.Runtime.InteropServices;
[assembly: System.Windows.ThemeInfo(System.Windows.ResourceDictionaryLocation.None, System.Windows.ResourceDictionaryLocation.SourceAssembly)]
[assembly: AssemblyTitle("Tango - Machine Studio")]
-[assembly: AssemblyVersion("3.5.69.18305")]
+[assembly: AssemblyVersion("3.5.70.18305")]
[assembly: ComVisible(false)] \ No newline at end of file
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 31e297cd1..58dfc17c2 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/MainViewVM.cs
@@ -367,6 +367,7 @@ namespace Tango.MachineStudio.UI.ViewModels
Email = _authenticationProvider.CurrentUser.Email,
Password = _authenticationProvider.CurrentUser.Password,
Version = _applicationManager.Version.ToString(),
+ AcceptBetaRelease = _settings.AcceptBetaRelease,
});
IsUpdateAvailable = response.IsUpdateAvailable;
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 55f585626..a9624da2d 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UI/ViewModels/UpdateViewVM.cs
@@ -22,6 +22,8 @@ using Tango.MachineStudio.Common.StudioApplication;
using Tango.MachineStudio.Common.Update;
using Tango.SharedUI;
using Tango.MachineStudio.UI.Messages;
+using Tango.Settings;
+using Tango.MachineStudio.Common;
namespace Tango.MachineStudio.UI.ViewModels
{
@@ -181,6 +183,8 @@ namespace Tango.MachineStudio.UI.ViewModels
{
Status = UpdateStatus.CheckingForUpdate;
+ var settings = SettingsManager.Default.GetOrCreate<MachineStudioSettings>();
+
ChannelFactory<IMachineStudioUpdateService> service = null;
Task.Factory.StartNew(() =>
@@ -197,6 +201,7 @@ namespace Tango.MachineStudio.UI.ViewModels
Email = _authentication.CurrentUser.Email,
Password = _authentication.CurrentUser.Password,
Version = _application.Version.ToString(),
+ AcceptBetaRelease = settings.AcceptBetaRelease,
});
if (response.IsUpdateAvailable)
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/MachineStudioUpdateService.svc.cs b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/MachineStudioUpdateService.svc.cs
index 7dff2f203..ce9f7bd93 100644
--- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/MachineStudioUpdateService.svc.cs
+++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.UpdateService/MachineStudioUpdateService.svc.cs
@@ -33,6 +33,8 @@ namespace Tango.MachineStudio.UpdateService
public bool ForcedUpdate { get; set; }
public String FilePath { get; set; }
+
+ public bool IsStable { get; set; }
}
private static List<PendingUpload> _pendingUploads;
@@ -64,22 +66,37 @@ namespace Tango.MachineStudio.UpdateService
if (user != null && user.HasPermission(Permissions.RunMachineStudio) || (request.Email == "ForceUpdate"))
{
- var latestVersion = db.MachineStudioVersions.ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault();
+ var versions = db.MachineStudioVersions.ToList();
+
+ var latestVersion = versions.OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault();
Version currentVersion = Version.Parse(request.Version);
- bool isForcedUpdate = db.MachineStudioVersions.ToList().Exists(x => x.ForceUpdate && Version.Parse(x.Version) > currentVersion);
+ bool isForcedUpdate = versions.Exists(x => x.ForceUpdate && Version.Parse(x.Version) > currentVersion);
+
+ bool stable_condition = true;
+
+ if (!request.AcceptBetaRelease && !latestVersion.Stable)
+ {
+ stable_condition = false;
+ }
+
+ String comments = String.Join(Environment.NewLine, versions.OrderBy(x => Version.Parse(x.Version)).Where(x => Version.Parse(x.Version) > currentVersion).Select(x => x.Comments));
if (latestVersion != null && Version.Parse(latestVersion.Version) > currentVersion)
{
- response.IsUpdateAvailable = true;
+ if (stable_condition)
+ {
+ response.IsUpdateAvailable = true;
- response.FtpHost = ConfigurationManager.AppSettings["FtpHost"].ToString();
- response.UserName = ConfigurationManager.AppSettings["UserName"].ToString();
- response.Password = ConfigurationManager.AppSettings["Password"].ToString();
- response.FilePath = latestVersion.FtpFilePath;
- response.Version = latestVersion.Version;
- response.Comments = latestVersion.Comments;
- response.ForcedUpdate = isForcedUpdate;
+ response.FtpHost = ConfigurationManager.AppSettings["FtpHost"].ToString();
+ response.UserName = ConfigurationManager.AppSettings["UserName"].ToString();
+ response.Password = ConfigurationManager.AppSettings["Password"].ToString();
+ response.FilePath = latestVersion.FtpFilePath;
+ response.Version = latestVersion.Version;
+ response.Comments = latestVersion.Comments;
+ response.ForcedUpdate = isForcedUpdate;
+ response.IsStable = latestVersion.Stable;
+ }
}
}
else
@@ -141,6 +158,7 @@ namespace Tango.MachineStudio.UpdateService
Token = response.Token,
Version = request.Version,
FilePath = response.FilePath,
+ IsStable = request.IsStable,
});
}
else
@@ -184,6 +202,7 @@ namespace Tango.MachineStudio.UpdateService
UserGuid = upload.UserGuid,
Version = upload.Version,
ForceUpdate = upload.ForcedUpdate,
+ Stable = upload.IsStable,
});
db.SaveChanges();