diff options
| author | Roy <Roy.mail.net@gmail.com> | 2022-10-26 20:46:13 +0300 |
|---|---|---|
| committer | Roy <Roy.mail.net@gmail.com> | 2022-10-26 20:46:13 +0300 |
| commit | eb2d1376f1b8bdc501f85f2d2ee1ffa291838022 (patch) | |
| tree | 2ecfb2dbd0919adc1b2c169384711a03b5a73735 /Software/Visual_Studio | |
| parent | 6e656acd517f5843d647b0c52791a3cf1d530340 (diff) | |
| download | Tango-eb2d1376f1b8bdc501f85f2d2ee1ffa291838022.tar.gz Tango-eb2d1376f1b8bdc501f85f2d2ee1ffa291838022.zip | |
Work on FSE build variants.
Diffstat (limited to 'Software/Visual_Studio')
10 files changed, 184 insertions, 131 deletions
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/MainWindowVM.cs b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/MainWindowVM.cs index 45aabf097..93a93bab5 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/MainWindowVM.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.Publisher.UI/MainWindowVM.cs @@ -25,7 +25,12 @@ namespace Tango.FSE.Publisher.UI { private FSEWebClient _client; private String _buildFolder; + +#if TS + private const String APP_EXE_NAME = "Tango.TwineStudio.UI.exe"; +#else private const String APP_EXE_NAME = "Tango.FSE.UI.exe"; +#endif private List<EnvironmentConfiguration> _environments; public List<EnvironmentConfiguration> Environments @@ -104,6 +109,19 @@ namespace Tango.FSE.Publisher.UI set { _progress = value; RaisePropertyChangedAuto(); } } + public BuildVariants BuildVariant + { + get + { +#if TS + return BuildVariants.TwineStudio; +#else + return BuildVariants.FSE; +#endif + } + } + + public RelayCommand PublishCommand { get; set; } @@ -169,10 +187,10 @@ namespace Tango.FSE.Publisher.UI { UpdateProgress("Searching build path..."); - String path = Path.GetFullPath($@"../../../../Build\FSE\{BuildConfig}"); + String path = Path.GetFullPath($@"../../../../Build\{(BuildVariant == BuildVariants.FSE ? "FSE" : "Twine Studio")}\{BuildConfig}"); if (!Directory.Exists(path)) { - ShowError($"Could not locate FSE build folder at '{path}'."); + ShowError($"Could not locate {BuildVariant} build folder at '{path}'."); } _buildFolder = path; @@ -198,7 +216,7 @@ namespace Tango.FSE.Publisher.UI IsFree = false; UpdateProgress("Getting remote version..."); _client = new FSEWebClient(SelectedEnvironment.MachineServiceAddress); - RemoteVersion = (await _client.GetLatestVersion(new Web.Messages.LatestVersionRequest() { Build = BL.BuildProvider.Build })).Version; + RemoteVersion = (await _client.GetLatestVersion(new Web.Messages.LatestVersionRequest() { Build = BuildVariant })).Version; ProgressReady(); } catch (Exception ex) @@ -217,24 +235,24 @@ namespace Tango.FSE.Publisher.UI try { IsFree = false; - UpdateProgress("Publishing Tango FSE..."); + UpdateProgress($"Publishing {BuildVariant.ToDescription()}..."); var settings = SettingsManager.Default.GetOrCreate<PublisherSettings>(); settings.Email = Email; settings.Password = Password; settings.Save(); - UpdateProgress("Validating Tango FSE installer...."); + UpdateProgress($"Validating {BuildVariant.ToDescription()} installer...."); - String projectPath = Path.GetFullPath(@"../../../../Advanced Installer Projects\FSE Installer.aip"); + String projectPath = Path.GetFullPath($@"../../../../Advanced Installer Projects\{BuildVariant} Installer.aip"); if (!File.Exists(projectPath)) { throw new FileNotFoundException($"Could not locate advanced installer project at '{projectPath}'."); } - String installerName = $"Tango FSE v{System.Version.Parse(LocalVersion).ToString(3)}.exe"; - String installerPath = Path.GetFullPath($@"../../../../Build\Installers\FSE\Release\{installerName}"); + String installerName = $"{BuildVariant.ToDescription()} v{System.Version.Parse(LocalVersion).ToString(3)}.exe"; + String installerPath = Path.GetFullPath($@"../../../../Build\Installers\{BuildVariant}\Release\{installerName}"); if (!Directory.Exists(Path.GetDirectoryName(installerPath))) { @@ -247,7 +265,7 @@ namespace Tango.FSE.Publisher.UI Email = Email, Password = Password, Version = LocalVersion, - Build = BL.BuildProvider.Build + Build = BuildVariant }); UpdateProgress("Requesting version upload..."); @@ -256,10 +274,10 @@ namespace Tango.FSE.Publisher.UI Comments = Comments, InstallerBlobName = installerName, Version = LocalVersion, - Build = BL.BuildProvider.Build + Build = BuildVariant }); - UpdateProgress("Building Tango FSE installer..."); + UpdateProgress($"Building {BuildVariant.ToDescription()} installer..."); InstallerBuilder builder = new InstallerBuilder(projectPath); await builder.Build(LocalVersion, installerPath); @@ -269,13 +287,13 @@ namespace Tango.FSE.Publisher.UI throw new FileNotFoundException($"Installer build was successful but the output installer could not be located at the specified path '{installerPath}'."); } - UpdateProgress("Uploading Tango FSE installer..."); + UpdateProgress($"Uploading {BuildVariant.ToDescription()} installer..."); using (StorageBlobUploader uploader = new StorageBlobUploader(uploadResponse.InstallerBlobAddress, installerPath)) { uploader.Progress += (x, e) => { - UpdateProgress("Uploading Tango FSE installer...", false, e.Current, e.Total); + UpdateProgress($"Uploading {BuildVariant.ToDescription()} installer...", false, e.Current, e.Total); }; await uploader.Upload(); @@ -286,7 +304,7 @@ namespace Tango.FSE.Publisher.UI await _client.NotifyVersionUploadCompleted(new UploadCompletedRequest() { Token = uploadResponse.Token, - Build = BL.BuildProvider.Build + Build = BuildVariant }); UpdateProgress("Validating..."); @@ -303,7 +321,7 @@ namespace Tango.FSE.Publisher.UI { String repoPath = Path.GetFullPath("../../../../../../"); String tagVersion = System.Version.Parse(LocalVersion).ToString(3); - String tagName = $"FSE_v{tagVersion}"; + String tagName = $"{BuildVariant}_v{tagVersion}"; using (GitRepositoryManager git = new GitRepositoryManager(repoPath, Email, ConfigurationManager.AppSettings.Get("PAT"))) { @@ -349,15 +367,15 @@ namespace Tango.FSE.Publisher.UI }); } - Process.Start(SelectedEnvironment.MachineServiceAddress + "/fse"); + Process.Start(SelectedEnvironment.MachineServiceAddress + $"/fse?buildVariant={(int)BuildVariant}"); UpdateProgress("Version published successfully!", false, 100, 100); - ShowInfo("Tango FSE published successfully!"); + ShowInfo($"{BuildVariant.ToDescription()} published successfully!"); IsFree = true; } catch (Exception ex) { - ShowError($"Error while trying to publish Tango FSE\n{ex.FlattenMessage()}"); + ShowError($"Error while trying to publish {BuildVariant.ToDescription()}\n{ex.FlattenMessage()}"); IsFree = true; } } @@ -365,12 +383,12 @@ namespace Tango.FSE.Publisher.UI private void ShowError(String error) { UpdateProgress("Error!", false, 0, 100); - MessageBox.Show(error, "FSE Publisher", MessageBoxButton.OK, MessageBoxImage.Error); + MessageBox.Show(error, $"{BuildVariant} Publisher", MessageBoxButton.OK, MessageBoxImage.Error); } private void ShowInfo(String message) { - MessageBox.Show(message, "FSE Publisher", MessageBoxButton.OK, MessageBoxImage.Information); + MessageBox.Show(message, $"{BuildVariant} Publisher", MessageBoxButton.OK, MessageBoxImage.Information); } private void UpdateProgress(String message, bool isIndeterminate = true, double value = 0, double max = 100) diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Post_Build.bat b/Software/Visual_Studio/FSE/Tango.FSE.UI/Post_Build.bat index dcfbcf208..b67d657e9 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Post_Build.bat +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Post_Build.bat @@ -17,9 +17,9 @@ del WebRtc.NET.pdb rem -------------------- Twine Studio ----------------------------------- -del "Tango.Twine Studio.UI.exe" -del "Tango.Twine Studio.UI.exe.config" -del "Tango.Twine Studio.UI.pdb" +del "Tango.TwineStudio.UI.exe" +del "Tango.TwineStudio.UI.exe.config" +del "Tango.TwineStudio.UI.pdb" if %1==TS ( goto TwineStudioRelease @@ -31,13 +31,14 @@ if %1==TS_Debug ( ) :TwineStudioRelease -ren "Tango.FSE.UI.exe" "Tango.Twine Studio.UI.exe" -ren "Tango.FSE.UI.exe.config" "Tango.Twine Studio.UI.exe.config" -ren "Tango.FSE.UI.pdb" "Tango.Twine Studio.UI.pdb" +echo Modifying Assembly to "Twine Studio" +ren "Tango.FSE.UI.exe" "Tango.TwineStudio.UI.exe" +ren "Tango.FSE.UI.exe.config" "Tango.TwineStudio.UI.exe.config" +ren "Tango.FSE.UI.pdb" "Tango.TwineStudio.UI.pdb" :TwineStudio -echo Modifying Assembly to "Twine Studio" +echo Excluding Assemblies for Twine Studio rem Exclude Modules del Tango.FSE.Diagnostics.* diff --git a/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/BuildVariants.cs b/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/BuildVariants.cs index 0c117541d..dd3428091 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/BuildVariants.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.Web/Messages/BuildVariants.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -8,7 +9,9 @@ namespace Tango.FSE.Web.Messages { public enum BuildVariants { + [Description("Tango FSE")] FSE, + [Description("Twine Studio")] TwineStudio } } diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/Permissions.cs b/Software/Visual_Studio/Tango.BL/Enumerations/Permissions.cs index 9b09e7df0..84af32d43 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/Permissions.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/Permissions.cs @@ -349,5 +349,11 @@ namespace Tango.BL.Enumerations [Description("Allows emulating machine events remotely")] FSE_EmulateMachineEvents = 1032, + /// <summary> + /// (Allows access to Twine Studio) + /// </summary> + [Description("Allows access to Twine Studio")] + TwineStudioAccess = 2000, + } } diff --git a/Software/Visual_Studio/Tango.BL/Enumerations/Roles.cs b/Software/Visual_Studio/Tango.BL/Enumerations/Roles.cs index c1919c3bb..8b1ad1293 100644 --- a/Software/Visual_Studio/Tango.BL/Enumerations/Roles.cs +++ b/Software/Visual_Studio/Tango.BL/Enumerations/Roles.cs @@ -152,6 +152,12 @@ namespace Tango.BL.Enumerations MachineManager = 17, /// <summary> + /// (Standard User) + /// </summary> + [Description("Standard User")] + TwineStudioUser = 2000, + + /// <summary> /// (Twine Procedure Designer) /// </summary> [Description("Twine Procedure Designer")] diff --git a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram index bc0945878..ca346e05e 100644 --- a/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram +++ b/Software/Visual_Studio/Tango.DAL.Remote/DB/RemoteADO.edmx.diagram @@ -5,102 +5,102 @@ <!-- Diagram content (shape and connector positions) --> <edmx:Diagrams> <Diagram DiagramId="f9ae01d708754bbd997add25a4bacc79" Name="Diagram1" ZoomLevel="87"> - <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="8" /> - <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="48.5" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="1.5" PointY="79.125" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="53.125" /> - <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="1.5" PointY="73.25" /> - <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="16.75" PointY="5.75" /> - <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="18" PointY="17.875" /> - <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="31.625" /> - <EntityTypeShape EntityType="RemoteModel.BTSR_YARN_TYPES" Width="1.5" PointX="0.75" PointY="7.75" /> - <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="3" PointY="32.125" /> - <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="5.25" PointY="21.5" /> - <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="28.25" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="9" PointY="35.125" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="13.5" PointY="16.75" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="15.75" PointY="15.5" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="5.25" PointY="25.375" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_PROCESS_INK_UPTAKE" Width="1.5" PointX="16.75" PointY="9.75" /> - <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="28.5" /> - <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="0.75" PointY="58.625" /> - <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="44.625" /> - <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="25.375" /> - <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="5.25" PointY="69.125" /> - <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="0.75" PointY="83.125" /> - <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="3" PointY="82.625" /> - <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="76.25" /> - <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="4.875" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="41.125" /> - <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="22" /> - <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="11.625" /> - <EntityTypeShape EntityType="RemoteModel.GBD" Width="1.5" PointX="0.75" PointY="34.875" /> - <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="17.75" PointY="13.75" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="7.5" PointY="83.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="9.75" PointY="75.25" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="4.5" PointY="77.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="6.75" PointY="75.25" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="8.5" PointY="79.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="10.75" PointY="68.5" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="8.5" PointY="61.5" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="10.75" PointY="58.25" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="5.5" PointY="59.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="7.75" PointY="67.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="3.5" PointY="87.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="5.75" PointY="63.25" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="1.5" PointY="69" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="1.5" PointY="91.625" /> - <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="3.75" PointY="73.375" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="3" PointY="35" /> - <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="5.25" PointY="34.5" /> - <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="19.75" PointY="5.75" /> - <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="17.75" /> - <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="25.375" /> - <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="3" PointY="10.5" /> - <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="8.25" PointY="21.625" /> - <EntityTypeShape EntityType="RemoteModel.LUB" Width="1.5" PointX="0.75" PointY="17.125" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="13.75" PointY="4.75" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="4.375" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="0.75" PointY="65" /> - <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="3" PointY="57" /> - <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="37.25" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="38.25" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="11" /> - <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="14.125" /> - <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="3" PointY="38.25" /> - <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="1" /> - <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="29.125" /> - <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="48.5" /> - <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="51.5" /> - <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="16.75" PointY="2" /> - <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="19" PointY="2.125" /> - <EntityTypeShape EntityType="RemoteModel.RML_EXTENSION_TEST_WASHING_RESULTS" Width="1.5" PointX="5" PointY="6" /> - <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="15.375" /> - <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="8.25" PointY="17.375" /> - <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="0.75" /> - <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="0.875" /> - <EntityTypeShape EntityType="RemoteModel.RUBBING_RESULTS" Width="1.5" PointX="20.75" PointY="14.75" /> - <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="15.75" PointY="21.5" /> - <EntityTypeShape EntityType="RemoteModel.SEGMENTS_GROUPS" Width="1.5" PointX="13.5" PointY="21.75" /> - <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="3" PointY="1.5" /> - <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="14.25" PointY="11.875" /> - <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="5.25" PointY="17.875" /> - <EntityTypeShape EntityType="RemoteModel.SITES_SPOOL_TYPES" Width="1.5" PointX="8.25" PointY="1.75" /> - <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="6" PointY="11.75" /> - <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="8.25" PointY="40" /> - <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="20.75" PointY="18.75" /> - <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="20.75" PointY="21.75" /> - <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="14.25" PointY="37.125" /> - <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="21.75" PointY="1.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="21.75" PointY="5.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="21.75" PointY="8.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="22.75" PointY="11.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="22.75" PointY="16.75" /> - <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="22.75" PointY="21.75" /> - <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="10.375" /> - <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="7.875" /> - <EntityTypeShape EntityType="RemoteModel.WASHING_TEST_MATERIALS" Width="1.5" PointX="2.75" PointY="6.5" /> - <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="32" /> + <EntityTypeShape EntityType="RemoteModel.ACTION_LOGS" Width="1.5" PointX="11.25" PointY="3.75" /> + <EntityTypeShape EntityType="RemoteModel.ADDRESS" Width="1.5" PointX="1.5" PointY="49.875" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_DISPLAY_PANEL_VERSIONS" Width="1.5" PointX="4.5" PointY="66.875" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_FIRMWARE_VERSIONS" Width="1.5" PointX="4.5" PointY="63.875" /> + <EntityTypeShape EntityType="RemoteModel.APPLICATION_OS_VERSIONS" Width="1.5" PointX="4.5" PointY="74" /> + <EntityTypeShape EntityType="RemoteModel.BIT_TYPES" Width="1.5" PointX="5.75" PointY="2.125" /> + <EntityTypeShape EntityType="RemoteModel.BRUSH_STOPS" Width="1.5" PointX="18" PointY="18.25" /> + <EntityTypeShape EntityType="RemoteModel.BTSR_APPLICATION_TYPES" Width="1.5" PointX="0.75" PointY="11" /> + <EntityTypeShape EntityType="RemoteModel.BTSR_YARN_TYPES" Width="1.5" PointX="0.75" PointY="35.625" /> + <EntityTypeShape EntityType="RemoteModel.CARTRIDGE_TYPES" Width="1.5" PointX="7.75" PointY="55.25" /> + <EntityTypeShape EntityType="RemoteModel.CAT" Width="1.5" PointX="5.25" PointY="25.75" /> + <EntityTypeShape EntityType="RemoteModel.CCT" Width="1.5" PointX="0.75" PointY="42.125" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS" Width="1.5" PointX="1.5" PointY="61.625" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_GROUPS" Width="1.5" PointX="0.75" PointY="56.125" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS" Width="1.5" PointX="3" PointY="54.875" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_CATALOGS_ITEMS_RECIPES" Width="1.5" PointX="5.25" PointY="21.75" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_PROCESS_INK_UPTAKE" Width="1.5" PointX="2.75" PointY="10.125" /> + <EntityTypeShape EntityType="RemoteModel.COLOR_SPACES" Width="1.5" PointX="9" PointY="29.5" /> + <EntityTypeShape EntityType="RemoteModel.CONFIGURATION" Width="1.5" PointX="6.75" PointY="66.5" /> + <EntityTypeShape EntityType="RemoteModel.CONTACT" Width="1.5" PointX="1.5" PointY="45.875" /> + <EntityTypeShape EntityType="RemoteModel.CUSTOMER" Width="1.5" PointX="9" PointY="26.375" /> + <EntityTypeShape EntityType="RemoteModel.DATA_STORE_ITEMS" Width="1.5" PointX="11.25" PointY="77" /> + <EntityTypeShape EntityType="RemoteModel.DISPENSER_TYPES" Width="1.5" PointX="5.5" PointY="36.75" /> + <EntityTypeShape EntityType="RemoteModel.DISPENSER" Width="1.5" PointX="7.75" PointY="36.25" /> + <EntityTypeShape EntityType="RemoteModel.EMBEDDED_FIRMWARE_VERSIONS" Width="1.5" PointX="4.5" PointY="61" /> + <EntityTypeShape EntityType="RemoteModel.EVENT_TYPES" Width="1.5" PointX="9" PointY="0.75" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SHAPES" Width="1.5" PointX="0.75" PointY="17.25" /> + <EntityTypeShape EntityType="RemoteModel.FIBER_SYNTHS" Width="1.5" PointX="0.75" PointY="22.25" /> + <EntityTypeShape EntityType="RemoteModel.FSE_VERSIONS" Width="1.5" PointX="11.25" PointY="9.625" /> + <EntityTypeShape EntityType="RemoteModel.GBD" Width="1.5" PointX="0.75" PointY="26.125" /> + <EntityTypeShape EntityType="RemoteModel.GLOBAL_DATA_STORE_ITEMS" Width="1.5" PointX="13.75" PointY="16.125" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWER_TYPES" Width="1.5" PointX="9.5" PointY="61.375" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BLOWERS" Width="1.5" PointX="11.75" PointY="64.875" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSOR_TYPES" Width="1.5" PointX="11.5" PointY="88.375" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_BREAK_SENSORS" Width="1.5" PointX="13.75" PointY="77" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCER_TYPES" Width="1.5" PointX="9.5" PointY="84.375" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_DANCERS" Width="1.5" PointX="11.75" PointY="69.25" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTOR_TYPES" Width="1.5" PointX="12.5" PointY="81.25" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_MOTORS" Width="1.5" PointX="14.75" PointY="67" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROL_TYPES" Width="1.5" PointX="4.5" PointY="77.375" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_PID_CONTROLS" Width="1.5" PointX="6.75" PointY="59.375" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSOR_TYPES" Width="1.5" PointX="12.5" PointY="61.375" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_SPEED_SENSORS" Width="1.5" PointX="14.75" PointY="63" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_VERSIONS" Width="1.5" PointX="4.5" PointY="69.75" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDER_TYPES" Width="1.5" PointX="4.5" PointY="81.375" /> + <EntityTypeShape EntityType="RemoteModel.HARDWARE_WINDERS" Width="1.5" PointX="6.75" PointY="72.125" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACK_FORMULAS" Width="1.5" PointX="7.75" PointY="80.5" /> + <EntityTypeShape EntityType="RemoteModel.IDS_PACKS" Width="1.5" PointX="10" PointY="48.375" /> + <EntityTypeShape EntityType="RemoteModel.JOB_RUNS" Width="1.5" PointX="16.75" PointY="2.125" /> + <EntityTypeShape EntityType="RemoteModel.JOB" Width="1.5" PointX="11.25" PointY="18.125" /> + <EntityTypeShape EntityType="RemoteModel.LINEAR_MASS_DENSITY_UNITS" Width="1.5" PointX="0.75" PointY="32.75" /> + <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES" Width="1.5" PointX="6" PointY="30.375" /> + <EntityTypeShape EntityType="RemoteModel.LIQUID_TYPES_RMLS" Width="1.5" PointX="8.25" PointY="22" /> + <EntityTypeShape EntityType="RemoteModel.LUB" Width="1.5" PointX="0.75" PointY="29.5" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_PROTOTYPES" Width="1.5" PointX="18.75" PointY="2.125" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_STUDIO_VERSIONS" Width="1.5" PointX="11.25" PointY="14.125" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE_VERSIONS" Width="1.5" PointX="6.75" PointY="76.875" /> + <EntityTypeShape EntityType="RemoteModel.MACHINE" Width="1.5" PointX="9" PointY="64.875" /> + <EntityTypeShape EntityType="RemoteModel.MACHINES_EVENTS" Width="1.5" PointX="11.25" PointY="39.125" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_CONDITIONS" Width="1.5" PointX="0.75" PointY="14.25" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_MATERIALS" Width="1.5" PointX="0.75" PointY="39" /> + <EntityTypeShape EntityType="RemoteModel.MEDIA_PURPOSES" Width="1.5" PointX="0.75" PointY="8.125" /> + <EntityTypeShape EntityType="RemoteModel.MID_TANK_TYPES" Width="1.5" PointX="7.75" PointY="41" /> + <EntityTypeShape EntityType="RemoteModel.ORGANIZATION" Width="1.5" PointX="0.75" PointY="1.375" /> + <EntityTypeShape EntityType="RemoteModel.PERMISSION" Width="1.5" PointX="12" PointY="53.625" /> + <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES" Width="1.5" PointX="7.5" PointY="45" /> + <EntityTypeShape EntityType="RemoteModel.PROCESS_PARAMETERS_TABLES_GROUPS" Width="1.5" PointX="5.25" PointY="48" /> + <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS" Width="1.5" PointX="13.75" PointY="12.25" /> + <EntityTypeShape EntityType="RemoteModel.PUBLISHED_PROCEDURE_PROJECTS_VERSIONS" Width="1.5" PointX="16" PointY="12.5" /> + <EntityTypeShape EntityType="RemoteModel.RML_EXTENSION_TEST_WASHING_RESULTS" Width="1.5" PointX="5" PointY="6.25" /> + <EntityTypeShape EntityType="RemoteModel.RML" Width="1.5" PointX="3" PointY="15.75" /> + <EntityTypeShape EntityType="RemoteModel.RMLS_SPOOLS" Width="1.5" PointX="8.25" PointY="17.75" /> + <EntityTypeShape EntityType="RemoteModel.ROLE" Width="1.5" PointX="12" PointY="29.625" /> + <EntityTypeShape EntityType="RemoteModel.ROLES_PERMISSIONS" Width="1.5" PointX="14.25" PointY="29.625" /> + <EntityTypeShape EntityType="RemoteModel.RUBBING_RESULTS" Width="1.5" PointX="18.75" PointY="5.125" /> + <EntityTypeShape EntityType="RemoteModel.SEGMENT" Width="1.5" PointX="15.75" PointY="21.75" /> + <EntityTypeShape EntityType="RemoteModel.SEGMENTS_GROUPS" Width="1.5" PointX="13.5" PointY="22.125" /> + <EntityTypeShape EntityType="RemoteModel.SITE" Width="1.5" PointX="3" PointY="1.875" /> + <EntityTypeShape EntityType="RemoteModel.SITES_CATALOGS" Width="1.5" PointX="10.25" PointY="33.375" /> + <EntityTypeShape EntityType="RemoteModel.SITES_RMLS" Width="1.5" PointX="5.25" PointY="18.125" /> + <EntityTypeShape EntityType="RemoteModel.SITES_SPOOL_TYPES" Width="1.5" PointX="14.25" PointY="8.125" /> + <EntityTypeShape EntityType="RemoteModel.SPOOL_TYPES" Width="1.5" PointX="6" PointY="12" /> + <EntityTypeShape EntityType="RemoteModel.SPOOL" Width="1.5" PointX="11.25" PointY="44.125" /> + <EntityTypeShape EntityType="RemoteModel.sysdiagram" Width="1.5" PointX="18.75" PointY="9.125" /> + <EntityTypeShape EntityType="RemoteModel.TANGO_UPDATES" Width="1.5" PointX="18.75" PointY="12.125" /> + <EntityTypeShape EntityType="RemoteModel.TANGO_VERSIONS" Width="1.5" PointX="14.25" PointY="41" /> + <EntityTypeShape EntityType="RemoteModel.TECH_CONTROLLERS" Width="1.5" PointX="20.75" PointY="2.125" /> + <EntityTypeShape EntityType="RemoteModel.TECH_DISPENSERS" Width="1.5" PointX="20.75" PointY="6.125" /> + <EntityTypeShape EntityType="RemoteModel.TECH_HEATERS" Width="1.5" PointX="20.75" PointY="9.125" /> + <EntityTypeShape EntityType="RemoteModel.TECH_IOS" Width="1.5" PointX="20.75" PointY="12.125" /> + <EntityTypeShape EntityType="RemoteModel.TECH_MONITORS" Width="1.5" PointX="20.75" PointY="17.125" /> + <EntityTypeShape EntityType="RemoteModel.TECH_VALVES" Width="1.5" PointX="20.75" PointY="22.125" /> + <EntityTypeShape EntityType="RemoteModel.USER" Width="1.5" PointX="9" PointY="6.25" /> + <EntityTypeShape EntityType="RemoteModel.USERS_ROLES" Width="1.5" PointX="14.25" PointY="4.625" /> + <EntityTypeShape EntityType="RemoteModel.WASHING_TEST_MATERIALS" Width="1.5" PointX="2.75" PointY="6.75" /> + <EntityTypeShape EntityType="RemoteModel.WINDING_METHODS" Width="1.5" PointX="9" PointY="12.25" /> <AssociationConnector Association="RemoteModel.FK_ACTION_LOGS_USERS" /> <AssociationConnector Association="RemoteModel.FK_ORGANIZATIONS_ADDRESSES" /> <AssociationConnector Association="RemoteModel.FK_USERS_ADDRESSES" /> diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs index b9dacfcf9..38c75934a 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs +++ b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEController.cs @@ -84,6 +84,16 @@ namespace Tango.MachineService.Controllers throw new AuthenticationException("Your account has been disabled. Please contact your administrator."); } + if (request.Build == BuildVariants.FSE && !user.HasPermission(Permissions.FSE_RunFSE)) + { + throw new AuthenticationException("You do not have permission to access Tango FSE. Please contact your administrator."); + } + + if (request.Build == BuildVariants.TwineStudio && !user.HasPermission(Permissions.TwineStudioAccess)) + { + throw new AuthenticationException("You do not have permission to access Twine Studio. Please contact your administrator."); + } + user.LastLogin = DateTime.UtcNow; db.SaveChanges(); } @@ -190,7 +200,7 @@ namespace Tango.MachineService.Controllers using (ObservablesContext db = ObservablesContextHelper.CreateContext()) { - var versions = db.FseVersions.ToList(); + var versions = db.FseVersions.ToList().Where(x => x.BuildVariant == request.Build.ToInt32()).ToList(); FseVersion latestVersion = null; @@ -336,7 +346,7 @@ namespace Tango.MachineService.Controllers { using (ObservablesContext db = ObservablesContextHelper.CreateContext()) { - var version = db.FseVersions.ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault(); + var version = db.FseVersions.ToList().Where(x => x.BuildVariant == request.Build.ToInt32()).OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault(); return new LatestVersionResponse() { Version = version != null ? version.Version : "0.0.0.0" }; } } @@ -356,7 +366,7 @@ namespace Tango.MachineService.Controllers if (user != null && user.HasPermission(Permissions.PublishMachineStudioVersions)) { - var latestVersion = db.FseVersions.ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault(); + var latestVersion = db.FseVersions.ToList().Where(x => x.BuildVariant == request.Build.ToInt32()).ToList().OrderByDescending(x => Version.Parse(x.Version)).FirstOrDefault(); Version local_version = Version.Parse(request.Version); if (latestVersion == null || local_version > Version.Parse(latestVersion.Version)) @@ -375,7 +385,8 @@ namespace Tango.MachineService.Controllers Token = response.Token, Version = request.Version, BlobName = "BLOB", - InstallerBlobName = installerBlob.Name + InstallerBlobName = installerBlob.Name, + BuildVariant = request.Build.ToInt32() }; _pendingUploads.Add(pending_upload); @@ -413,6 +424,7 @@ namespace Tango.MachineService.Controllers InstallerBlobName = upload.InstallerBlobName, UserGuid = upload.UserGuid, Version = upload.Version, + BuildVariant = upload.BuildVariant }); db.SaveChanges(); diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEDownloadsController.cs b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEDownloadsController.cs index 52eb2bbb5..6c28d93ef 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEDownloadsController.cs +++ b/Software/Visual_Studio/Web/Tango.MachineService/Controllers/FSEDownloadsController.cs @@ -16,29 +16,34 @@ using System.Net; using System.Net.Http.Headers; using System.Net.Mime; using Tango.MachineService.Views.FSEDownloads; +using Tango.BL.Enumerations; namespace Tango.MachineService.Controllers { public class FSEDownloadsController : Controller { - public ActionResult Index() + public ActionResult Index(int? buildVariant = 0) { IndexViewModel model = new IndexViewModel(); using (var db = ObservablesContextHelper.CreateContext()) { - var versions = db.FseVersions.ToList().OrderByDescending(x => Version.Parse(x.Version)).Take(6).ToList(); + int build = buildVariant.Value; + + var versions = db.FseVersions.Where(x => x.BuildVariant == build).ToList().OrderByDescending(x => Version.Parse(x.Version)).Take(6).ToList(); var manager = new BlobStorageManager(); var container = manager.GetContainer(MachineServiceConfig.FSE_VERSIONS_CONTAINER); + String appName = ((FSEBuildVariants)build) == FSEBuildVariants.FSE ? "Tango FSE" : "Twine Studio"; + foreach (var item in versions) { var installerBlob = container.GetBlockBlobReference(item.InstallerBlobName); model.Downloads.Add(new FSEDownload() { - Name = $"Tango FSE v{Version.Parse(item.Version).ToString(3)}", + Name = $"{appName} v{Version.Parse(item.Version).ToString(3)}", Version = Version.Parse(item.Version).ToString(3), Comments = item.Comments, Date = item.LastUpdated.ToString("dddd, dd MMMM yyyy"), diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Models/FSEPendingUpload.cs b/Software/Visual_Studio/Web/Tango.MachineService/Models/FSEPendingUpload.cs index 7bb74d045..a33ccfaae 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Models/FSEPendingUpload.cs +++ b/Software/Visual_Studio/Web/Tango.MachineService/Models/FSEPendingUpload.cs @@ -18,5 +18,7 @@ namespace Tango.MachineService.Models public String BlobName { get; set; } public String InstallerBlobName { get; set; } + + public int BuildVariant { get; set; } } }
\ No newline at end of file diff --git a/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs b/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs index 3045818b0..0353e2df2 100644 --- a/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/Web/Tango.MachineService/Properties/AssemblyInfo.cs @@ -24,4 +24,4 @@ using System.Runtime.InteropServices; // // You can specify all the values or you can default the Revision and Build Numbers // by using the '*' as shown below: -[assembly: AssemblyVersion("3.0.13.0")] +[assembly: AssemblyVersion("3.0.14.0")] |
