diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2019-12-04 15:23:43 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2019-12-04 15:23:43 +0200 |
| commit | e8c9c0b649f31bf5170be409cdf6925aa9fc11b6 (patch) | |
| tree | 14e9e27618a74ac7619e935c9e2dfbd2aaf1e649 /Software | |
| parent | 4fb7e23ead019e9c2b573eb4ccc89444fb5a7a6f (diff) | |
| download | Tango-e8c9c0b649f31bf5170be409cdf6925aa9fc11b6.tar.gz Tango-e8c9c0b649f31bf5170be409cdf6925aa9fc11b6.zip | |
Working on PPC packages
Diffstat (limited to 'Software')
25 files changed, 423 insertions, 147 deletions
diff --git a/Software/Visual_Studio/PPC/Packages/Tango.PPC.Packages.SamplePostPackage/SamplePostPackage.cs b/Software/Visual_Studio/PPC/Packages/Tango.PPC.Packages.SamplePostPackage/SamplePostPackage.cs deleted file mode 100644 index cb4b57cfd..000000000 --- a/Software/Visual_Studio/PPC/Packages/Tango.PPC.Packages.SamplePostPackage/SamplePostPackage.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Tango.PPC.Common.Packages; - -namespace Tango.PPC.Packages.SamplePostPackage -{ - [PPCPackage(PackageType.Post, "Sample Post Package")] - public class SamplePostPackage : IPPCPackage - { - public Task Run() - { - throw new NotImplementedException(); - } - } -} diff --git a/Software/Visual_Studio/PPC/Packages/Tango.PPC.Packages.SamplePrePackage/SamplePrePackage.cs b/Software/Visual_Studio/PPC/Packages/Tango.PPC.Packages.SamplePrePackage/SamplePrePackage.cs deleted file mode 100644 index fa61c7073..000000000 --- a/Software/Visual_Studio/PPC/Packages/Tango.PPC.Packages.SamplePrePackage/SamplePrePackage.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Tango.PPC.Common.Packages; - -namespace Tango.PPC.Packages.SamplePrePackage -{ - [PPCPackage(PackageType.Pre, "Sample Pre Package")] - public class SamplePrePackage : IPPCPackage - { - public Task Run() - { - throw new NotImplementedException(); - } - } -} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs index dacd1b69a..ae3e093be 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/MachineUpdate/MachineUpdateManager.cs @@ -19,6 +19,7 @@ using Tango.Integration.Upgrade; using Tango.PMR.Synchronization; using Tango.PPC.Common.Application; using Tango.PPC.Common.Connection; +using Tango.PPC.Common.UpdatePackages; using Tango.PPC.Common.Web; using Tango.Settings; using Tango.SharedUI.Helpers; @@ -31,6 +32,7 @@ namespace Tango.PPC.Common.MachineUpdate { private IPPCApplicationManager _app_manager; private IMachineProvider _machineProvider; + private IPackageRunner _packageRunner; private PPCWebClient _client; #region Events @@ -64,11 +66,22 @@ namespace Tango.PPC.Common.MachineUpdate /// Initializes a new instance of the <see cref="MachineUpdateManager"/> class. /// </summary> /// <param name="applicationManager">The application manager.</param> - public MachineUpdateManager(PPCWebClient ppcWebClient, IPPCApplicationManager applicationManager, IMachineProvider machineProvider) + public MachineUpdateManager(PPCWebClient ppcWebClient, IPPCApplicationManager applicationManager, IMachineProvider machineProvider, IPackageRunner packageRunner) { _client = ppcWebClient; _machineProvider = machineProvider; _app_manager = applicationManager; + _packageRunner = packageRunner; + _packageRunner.PackageStateChanged += _packageRunner_PackageStateChanged; + } + + #endregion + + #region Event Handlers + + private void _packageRunner_PackageStateChanged(object sender, PackageStateChangedEventArgs e) + { + UpdateProgress("Preparing", e.PackageName); } #endregion @@ -281,7 +294,7 @@ namespace Tango.PPC.Common.MachineUpdate { throw LogManager.Log(new InvalidOperationException("Could not perform an update while the machine is not connected.")); } - if (op.IsPrinting) + if (op.Status != MachineStatuses.ReadyToDye) { throw LogManager.Log(new InvalidOperationException($"Could not perform an update while the machine is in {op.Status} status.")); } @@ -343,6 +356,18 @@ namespace Tango.PPC.Common.MachineUpdate //Copy new updater utility to app path. File.Copy(Path.Combine(_newPackageTempFolder, "Tango.PPC.Updater.exe"), Path.Combine(PathHelper.GetStartupPath(), "Tango.PPC.Updater.exe"), true); + //Run pre-update packages. + try + { + UpdateProgress("Preparing", "Running update packages..."); + LogManager.Log("Running pre-update packages..."); + var packagesFolder = Path.Combine(_newPackageTempFolder, "Packages"); + await _packageRunner.Run(PackageType.Pre, packagesFolder); + } + catch (Exception ex) + { + LogManager.Log(ex, "Error running pre-update packages..."); + } //Synchronize database UpdateProgress("Updating Database", "Initializing..."); diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Packages/DefaultPackageRunner.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Packages/DefaultPackageRunner.cs deleted file mode 100644 index a14a17af6..000000000 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Packages/DefaultPackageRunner.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Tango.PPC.Common.Packages -{ - public class DefaultPackageRunner : IPackageRunner - { - public event EventHandler<PackageRunnerProgressEventArgs> Progress; - - public Task<PackagesFile> GetPackagesFile() - { - throw new NotImplementedException(); - } - - public Task Run(PackageType type) - { - return null; - } - } -} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Publish/PPCPublisher.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/Publish/PPCPublisher.cs index 526d4465a..7118912f2 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Publish/PPCPublisher.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Publish/PPCPublisher.cs @@ -185,6 +185,7 @@ namespace Tango.PPC.Common.Publish FirmwareVersion = GetVersionInfoFromTFP(Options.TfpPath).FileDescriptors.SingleOrDefault(x => x.Destination == VersionFileDestination.Mcu).Version, }).Result; + CreateTupPackage(tempFile).Wait(); if (!String.IsNullOrWhiteSpace(Options.InstallerProject)) { @@ -210,8 +211,6 @@ namespace Tango.PPC.Common.Publish } } - CreateTupPackage(tempFile).Wait(); - OnPublishProgress(0, 100, $"Starting version upload..."); using (StorageBlobUploader uploader = new StorageBlobUploader(response.BlobAddress, tempFile)) @@ -289,7 +288,10 @@ namespace Tango.PPC.Common.Publish using (ZipFile zip = new ZipFile()) { - zip.AddFile(Options.TfpPath, "/").FileName = "firmware_package.tfp"; + if (Options.BuildConfig != "Debug") + { + zip.AddFile(Options.TfpPath, "/").FileName = "firmware_package.tfp"; + } PublishInfo versionInfo = new PublishInfo(); versionInfo.ApplicationVersion = GetLocalVersion(); @@ -362,6 +364,8 @@ namespace Tango.PPC.Common.Publish var cuf = zip.AddFile(update_config_file, update_dir); cuf.FileName = update_dir + "\\config.xml"; + zip.AddDirectory(folder + "\\" + "Packages", "/Packages"); + foreach (var file in Directory.GetFiles(folder, "*.*", SearchOption.TopDirectoryOnly)) { zip.AddFile(file, "/"); diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj b/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj index d14a2cb91..892269c03 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/Tango.PPC.Common.csproj @@ -156,15 +156,16 @@ <Compile Include="MachineSetup\MachineSetupManager.cs" /> <Compile Include="MachineSetup\MachineSetupProgress.cs" /> <Compile Include="MachineSetup\MachineSetupResult.cs" /> - <Compile Include="Packages\DefaultPackageRunner.cs" /> - <Compile Include="Packages\IPackageRunner.cs" /> - <Compile Include="Packages\IPPCPackage.cs" /> - <Compile Include="Packages\PackageInstallation.cs" /> - <Compile Include="Packages\PackageInstallationState.cs" /> - <Compile Include="Packages\PackageRunnerProgressEventArgs.cs" /> - <Compile Include="Packages\PackagesFile.cs" /> - <Compile Include="Packages\PackageType.cs" /> - <Compile Include="Packages\PPCPackageAttribute.cs" /> + <Compile Include="UpdatePackages\DefaultPackageRunner.cs" /> + <Compile Include="UpdatePackages\IPackageRunner.cs" /> + <Compile Include="UpdatePackages\IPPCPackage.cs" /> + <Compile Include="UpdatePackages\PackageContext.cs" /> + <Compile Include="UpdatePackages\PackageInstallation.cs" /> + <Compile Include="UpdatePackages\PackageInstallationState.cs" /> + <Compile Include="UpdatePackages\PackageStateChangedEventArgs.cs" /> + <Compile Include="UpdatePackages\PackagesFile.cs" /> + <Compile Include="UpdatePackages\PackageType.cs" /> + <Compile Include="UpdatePackages\PPCPackageAttribute.cs" /> <Compile Include="Publish\PPCPublisher.cs" /> <Compile Include="Publish\PublishInfo.cs" /> <Compile Include="Publish\PublishOptions.cs" /> @@ -404,7 +405,7 @@ </Target> <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/PPC/Tango.PPC.Common/UpdatePackages/DefaultPackageRunner.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/DefaultPackageRunner.cs new file mode 100644 index 000000000..882896f04 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/DefaultPackageRunner.cs @@ -0,0 +1,225 @@ +using Newtonsoft.Json; +using Newtonsoft.Json.Converters; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using Tango.Core; +using Tango.Core.Helpers; + +namespace Tango.PPC.Common.UpdatePackages +{ + public class DefaultPackageRunner : ExtendedObject, IPackageRunner + { + private JsonSerializerSettings _jsonSettings; + private String _configFile; + private PackagesFile _packagesFile; + + public event EventHandler<PackageStateChangedEventArgs> PackageStateChanged; + + public DefaultPackageRunner() + { + _jsonSettings = new JsonSerializerSettings + { + Formatting = Formatting.Indented, + Error = (sender, args) => + { + args.ErrorContext.Handled = true; + LogManager.Log(args.ErrorContext.Error.Message); + } + }; + + _jsonSettings.Converters.Add(new StringEnumConverter(false)); + + _configFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Twine", "Tango", "Packages", "packages.json"); + } + + public Task<PackagesFile> GetPackagesFile() + { + return Task.Factory.StartNew<PackagesFile>(() => + { + if (_packagesFile != null) + { + return _packagesFile; + } + else + { + Directory.CreateDirectory(Path.GetDirectoryName(_configFile)); + + _packagesFile = new PackagesFile(); + + try + { + if (File.Exists(_configFile)) + { + LogManager.Log("Loading packages config from " + _configFile + "..."); + _packagesFile = JsonConvert.DeserializeObject<PackagesFile>(File.ReadAllText(_configFile), _jsonSettings); + } + } + catch (Exception ex) + { + LogManager.Log(ex, "Error loading packages file."); + } + + return _packagesFile; + } + }); + } + + private void SavePackagesConfig() + { + Directory.CreateDirectory(Path.GetDirectoryName(_configFile)); + + String json = String.Empty; + + if (_packagesFile != null) + { + json = JsonConvert.SerializeObject(_packagesFile, _jsonSettings); + } + else + { + json = JsonConvert.SerializeObject(new PackagesFile(), _jsonSettings); + } + + File.WriteAllText(_configFile, json); + } + + public Task Run(PackageType type, String packagesFolder) + { + return Task.Factory.StartNew(() => + { + PackageContext context = new PackageContext(); + + LogManager.Log($"Running {type}-update packages..."); + + //Get installed packages. + _packagesFile = GetPackagesFile().Result; + + LogManager.Log($"Installed packages file:\n{_packagesFile}"); + + LogManager.Log($"Scanning for packages on '{packagesFolder}'..."); + + //Get all packages in folder. + foreach (var packageFile in Directory.GetFiles(packagesFolder, "*.dll")) + { + LogManager.Log($"Loading assembly '{Path.GetFileName(packageFile)}'..."); + + Assembly asm; + + //Load assembly and investigate for types based on package type. + try + { + asm = Assembly.LoadFile(packageFile); + } + catch (Exception ex) + { + LogManager.Log(ex, "Error loading assembly!"); + continue; + } + + try + { + foreach (var packageType in asm.GetTypes().Where( + x => typeof(IPPCPackage).IsAssignableFrom(x) && + x.GetCustomAttribute<PPCPackageAttribute>() != null && + x.GetCustomAttribute<PPCPackageAttribute>().Type == type)) + { + LogManager.Log($"Checking package '{packageType.FullName}'..."); + + try + { + //Getting installed package from file. + var installedPackage = _packagesFile.PackageInstallations.SingleOrDefault(x => x.PackageName == packageType.FullName); + + //Check if requires installation. + if (installedPackage == null || installedPackage.State != PackageInstallationState.Installed) + { + if (installedPackage == null) + { + LogManager.Log("Package was never installed."); + + installedPackage = new PackageInstallation(); + installedPackage.State = PackageInstallationState.NotInstalled; + installedPackage.PackageName = packageType.FullName; + installedPackage.Type = type; + _packagesFile.PackageInstallations.Add(installedPackage); + } + else + { + LogManager.Log($"Package installation state is '{installedPackage.State}' due to {installedPackage.FailedReason}"); + } + + LogManager.Log("Installing package..."); + + //Install package... + var att = packageType.GetCustomAttribute<PPCPackageAttribute>(); + + var packageInstance = Activator.CreateInstance(packageType) as IPPCPackage; + + if (packageInstance != null) + { + try + { + OnPackageRuns(att.Name, installedPackage.State); + packageInstance.Run(context).GetAwaiter().GetResult(); + installedPackage.State = PackageInstallationState.Installed; + installedPackage.FailedReason = null; + OnPackageRuns(att.Name, installedPackage.State); + LogManager.Log("Package installed successfully."); + } + catch (Exception ex) + { + LogManager.Log(ex, "Package installation failed."); + installedPackage.State = PackageInstallationState.Failed; + installedPackage.FailedReason = ex.FlattenMessage(); + OnPackageRuns(att.Name, installedPackage.State); + continue; + } + } + } + else + { + LogManager.Log("Package is already installed."); + } + } + catch (Exception ex) + { + LogManager.Log(ex, "Error in handling the package!"); + continue; + } + } + } + catch (Exception ex) + { + LogManager.Log(ex, "Error investigating assembly!"); + continue; + } + } + + //Save package file. + LogManager.Log("Running packages has completed. Saving packages config file."); + + try + { + SavePackagesConfig(); + } + catch (Exception ex) + { + LogManager.Log(ex, "Error saving packages file!"); + } + }); + } + + protected virtual void OnPackageRuns(String packageName, PackageInstallationState state) + { + PackageStateChanged?.Invoke(this, new PackageStateChangedEventArgs() + { + PackageName = packageName, + State = state, + }); + } + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Packages/IPPCPackage.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/IPPCPackage.cs index e90dc166f..d9dc70135 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Packages/IPPCPackage.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/IPPCPackage.cs @@ -4,10 +4,10 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Tango.PPC.Common.Packages +namespace Tango.PPC.Common.UpdatePackages { public interface IPPCPackage { - Task Run(); + Task Run(PackageContext context); } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Packages/IPackageRunner.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/IPackageRunner.cs index e9eaf8791..03c583dca 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Packages/IPackageRunner.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/IPackageRunner.cs @@ -4,12 +4,12 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Tango.PPC.Common.Packages +namespace Tango.PPC.Common.UpdatePackages { public interface IPackageRunner { - event EventHandler<PackageRunnerProgressEventArgs> Progress; + event EventHandler<PackageStateChangedEventArgs> PackageStateChanged; Task<PackagesFile> GetPackagesFile(); - Task Run(PackageType type); + Task Run(PackageType type, String packagesFolder); } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Packages/PPCPackageAttribute.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PPCPackageAttribute.cs index 41f706272..7ae4ea52d 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Packages/PPCPackageAttribute.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PPCPackageAttribute.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Tango.PPC.Common.Packages +namespace Tango.PPC.Common.UpdatePackages { [AttributeUsage(AttributeTargets.Class)] public class PPCPackageAttribute : Attribute diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageContext.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageContext.cs new file mode 100644 index 000000000..cf96ff026 --- /dev/null +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageContext.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.PPC.Common.UpdatePackages +{ + public class PackageContext + { + + } +} diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Packages/PackageInstallation.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageInstallation.cs index 490db5234..bcffb1b6e 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Packages/PackageInstallation.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageInstallation.cs @@ -4,11 +4,11 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Tango.PPC.Common.Packages +namespace Tango.PPC.Common.UpdatePackages { public class PackageInstallation { - public String AssemblyName { get; set; } + public String PackageName { get; set; } public PackageType Type { get; set; } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Packages/PackageInstallationState.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageInstallationState.cs index 728b74836..1300352fb 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Packages/PackageInstallationState.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageInstallationState.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Tango.PPC.Common.Packages +namespace Tango.PPC.Common.UpdatePackages { public enum PackageInstallationState { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Packages/PackageRunnerProgressEventArgs.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageStateChangedEventArgs.cs index 4cb785537..62eb00e5e 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Packages/PackageRunnerProgressEventArgs.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageStateChangedEventArgs.cs @@ -4,10 +4,11 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Tango.PPC.Common.Packages +namespace Tango.PPC.Common.UpdatePackages { - public class PackageRunnerProgressEventArgs : EventArgs + public class PackageStateChangedEventArgs : EventArgs { + public PackageInstallationState State { get; set; } public String PackageName { get; set; } } } diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Packages/PackageType.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageType.cs index b54542ab2..48a2140b1 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Packages/PackageType.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackageType.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Tango.PPC.Common.Packages +namespace Tango.PPC.Common.UpdatePackages { public enum PackageType { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.Common/Packages/PackagesFile.cs b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackagesFile.cs index ac3d72678..2fbd30d9f 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.Common/Packages/PackagesFile.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.Common/UpdatePackages/PackagesFile.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Tango.PPC.Common.Packages +namespace Tango.PPC.Common.UpdatePackages { public class PackagesFile { diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs index cb448bb0e..ed56f8a08 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/ViewModelLocator.cs @@ -22,6 +22,7 @@ using Tango.PPC.Common.Printing; using Tango.PPC.Common.RemoteAssistance; using Tango.PPC.Common.Storage; using Tango.PPC.Common.Threading; +using Tango.PPC.Common.UpdatePackages; using Tango.PPC.Common.UWF; using Tango.PPC.Common.Web; using Tango.PPC.UI.Authentication; @@ -87,6 +88,7 @@ namespace Tango.PPC.UI TangoIOC.Default.Register<IDiagnosticsFrameProvider, DefaultDiagnosticsFrameProvider>(); TangoIOC.Default.Register<IPPCExternalBridgeService, PPCExternalBridgeService>(); TangoIOC.Default.Register<IRemoteAssistanceProvider, DefaultRemoteAssistanceProvider>(); + TangoIOC.Default.Register<IPackageRunner, DefaultPackageRunner>(); TangoIOC.Default.Register<IMachineSetupManager, MachineSetupManager>(); TangoIOC.Default.Register<IMachineUpdateManager, MachineUpdateManager>(); TangoIOC.Default.Register<IPrintingManager, DefaultPrintingManager>(); diff --git a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainView.xaml b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainView.xaml index 443ca4f7a..d139ad5ed 100644 --- a/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainView.xaml +++ b/Software/Visual_Studio/PPC/Tango.PPC.UI/Views/MainView.xaml @@ -78,30 +78,30 @@ <Image Margin="10 0 0 0" Width="18" Height="18" VerticalAlignment="Center" RenderOptions.BitmapScalingMode="Fant"> <Image.Style> <Style TargetType="Image"> - <Setter Property="Source" Value="/Images/GlobalStatus/standby.png"></Setter> + <Setter Property="Source" Value="/Images/GlobalStatus/machine-off.png"></Setter> <Style.Triggers> - <DataTrigger Binding="{Binding Status}" Value="{x:Static operations:MachineStatuses.Disconnected}"> + <DataTrigger Binding="{Binding MachineProvider.MachineOperator.Status}" Value="{x:Static operations:MachineStatuses.Disconnected}"> <Setter Property="Source" Value="/Images/GlobalStatus/machine-off.png"></Setter> </DataTrigger> - <DataTrigger Binding="{Binding Status}" Value="{x:Static operations:MachineStatuses.Standby}"> + <DataTrigger Binding="{Binding MachineProvider.MachineOperator.Status}" Value="{x:Static operations:MachineStatuses.Standby}"> <Setter Property="Source" Value="/Images/GlobalStatus/standby.png"></Setter> </DataTrigger> - <DataTrigger Binding="{Binding Status}" Value="{x:Static operations:MachineStatuses.ReadyToDye}"> + <DataTrigger Binding="{Binding MachineProvider.MachineOperator.Status}" Value="{x:Static operations:MachineStatuses.ReadyToDye}"> <Setter Property="Source" Value="/Images/GlobalStatus/ready-to-dye.png"></Setter> </DataTrigger> - <DataTrigger Binding="{Binding Status}" Value="{x:Static operations:MachineStatuses.GettingReady}"> + <DataTrigger Binding="{Binding MachineProvider.MachineOperator.Status}" Value="{x:Static operations:MachineStatuses.GettingReady}"> <Setter Property="Source" Value="/Images/GlobalStatus/getting-ready.png"></Setter> </DataTrigger> - <DataTrigger Binding="{Binding Status}" Value="{x:Static operations:MachineStatuses.Printing}"> + <DataTrigger Binding="{Binding MachineProvider.MachineOperator.Status}" Value="{x:Static operations:MachineStatuses.Printing}"> <Setter Property="Source" Value="/Images/GlobalStatus/dyeing.png"></Setter> </DataTrigger> - <DataTrigger Binding="{Binding Status}" Value="{x:Static operations:MachineStatuses.ShuttingDown}"> + <DataTrigger Binding="{Binding MachineProvider.MachineOperator.Status}" Value="{x:Static operations:MachineStatuses.ShuttingDown}"> <Setter Property="Source" Value="/Images/GlobalStatus/shutting-down.png"></Setter> </DataTrigger> - <DataTrigger Binding="{Binding Status}" Value="{x:Static operations:MachineStatuses.Error}"> + <DataTrigger Binding="{Binding MachineProvider.MachineOperator.Status}" Value="{x:Static operations:MachineStatuses.Error}"> <Setter Property="Source" Value="/Images/GlobalStatus/error.png"></Setter> </DataTrigger> - <DataTrigger Binding="{Binding Status}" Value="{x:Static operations:MachineStatuses.Service}"> + <DataTrigger Binding="{Binding MachineProvider.MachineOperator.Status}" Value="{x:Static operations:MachineStatuses.Service}"> <Setter Property="Source" Value="/Images/GlobalStatus/service.png"></Setter> </DataTrigger> </Style.Triggers> diff --git a/Software/Visual_Studio/PPC/Packages/Tango.PPC.Packages.SamplePostPackage/Properties/AssemblyInfo.cs b/Software/Visual_Studio/PPC/UpdatePackages/Tango.PPC.Packages.SamplePostPackage/Properties/AssemblyInfo.cs index ce0d97e8c..ce0d97e8c 100644 --- a/Software/Visual_Studio/PPC/Packages/Tango.PPC.Packages.SamplePostPackage/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/PPC/UpdatePackages/Tango.PPC.Packages.SamplePostPackage/Properties/AssemblyInfo.cs diff --git a/Software/Visual_Studio/PPC/UpdatePackages/Tango.PPC.Packages.SamplePostPackage/SamplePostPackage.cs b/Software/Visual_Studio/PPC/UpdatePackages/Tango.PPC.Packages.SamplePostPackage/SamplePostPackage.cs new file mode 100644 index 000000000..0d5e117da --- /dev/null +++ b/Software/Visual_Studio/PPC/UpdatePackages/Tango.PPC.Packages.SamplePostPackage/SamplePostPackage.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core; +using Tango.PPC.Common.UpdatePackages; + +namespace Tango.PPC.Packages.SamplePostPackage +{ + [PPCPackage(PackageType.Post, "Sample Post Package")] + public class SamplePostPackage : ExtendedObject, IPPCPackage + { + public Task Run(PackageContext context) + { + return Task.Factory.StartNew(() => + { + LogManager.Log("Hi from 'Sample Post Package'.. !!! ____________"); + }); + } + } +} diff --git a/Software/Visual_Studio/PPC/Packages/Tango.PPC.Packages.SamplePostPackage/Tango.PPC.Packages.SamplePostPackage.csproj b/Software/Visual_Studio/PPC/UpdatePackages/Tango.PPC.Packages.SamplePostPackage/Tango.PPC.Packages.SamplePostPackage.csproj index 493d4fbec..f06fdd5cf 100644 --- a/Software/Visual_Studio/PPC/Packages/Tango.PPC.Packages.SamplePostPackage/Tango.PPC.Packages.SamplePostPackage.csproj +++ b/Software/Visual_Studio/PPC/UpdatePackages/Tango.PPC.Packages.SamplePostPackage/Tango.PPC.Packages.SamplePostPackage.csproj @@ -45,6 +45,16 @@ <Compile Include="Properties\AssemblyInfo.cs" /> </ItemGroup> <ItemGroup> + <ProjectReference Include="..\..\..\Tango.Core\Tango.Core.csproj"> + <Project>{a34ee0f0-649d-41c8-8489-b6f1cc6924ee}</Project> + <Name>Tango.Core</Name> + <Private>False</Private> + </ProjectReference> + <ProjectReference Include="..\..\..\Tango.Logging\Tango.Logging.csproj"> + <Project>{bc932dbd-7cdb-488c-99e4-f02cf441f55e}</Project> + <Name>Tango.Logging</Name> + <Private>False</Private> + </ProjectReference> <ProjectReference Include="..\..\Tango.PPC.Common\Tango.PPC.Common.csproj"> <Project>{0be74eee-22cb-4dba-b896-793b9e1a3ac0}</Project> <Name>Tango.PPC.Common</Name> diff --git a/Software/Visual_Studio/PPC/Packages/Tango.PPC.Packages.SamplePrePackage/Properties/AssemblyInfo.cs b/Software/Visual_Studio/PPC/UpdatePackages/Tango.PPC.Packages.SamplePrePackage/Properties/AssemblyInfo.cs index 24117be29..24117be29 100644 --- a/Software/Visual_Studio/PPC/Packages/Tango.PPC.Packages.SamplePrePackage/Properties/AssemblyInfo.cs +++ b/Software/Visual_Studio/PPC/UpdatePackages/Tango.PPC.Packages.SamplePrePackage/Properties/AssemblyInfo.cs diff --git a/Software/Visual_Studio/PPC/UpdatePackages/Tango.PPC.Packages.SamplePrePackage/SamplePrePackage.cs b/Software/Visual_Studio/PPC/UpdatePackages/Tango.PPC.Packages.SamplePrePackage/SamplePrePackage.cs new file mode 100644 index 000000000..1e51e9c94 --- /dev/null +++ b/Software/Visual_Studio/PPC/UpdatePackages/Tango.PPC.Packages.SamplePrePackage/SamplePrePackage.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Tango.Core; +using Tango.PPC.Common.UpdatePackages; + +namespace Tango.PPC.Packages.SamplePrePackage +{ + [PPCPackage(PackageType.Pre, "Sample Pre Package")] + public class SamplePrePackage : ExtendedObject, IPPCPackage + { + public Task Run(PackageContext context) + { + return Task.Factory.StartNew(() => + { + LogManager.Log("Hi from 'Sample Pre Package'.. !!! ____________"); + }); + } + } +} diff --git a/Software/Visual_Studio/PPC/Packages/Tango.PPC.Packages.SamplePrePackage/Tango.PPC.Packages.SamplePrePackage.csproj b/Software/Visual_Studio/PPC/UpdatePackages/Tango.PPC.Packages.SamplePrePackage/Tango.PPC.Packages.SamplePrePackage.csproj index 8576a7bed..b4397d253 100644 --- a/Software/Visual_Studio/PPC/Packages/Tango.PPC.Packages.SamplePrePackage/Tango.PPC.Packages.SamplePrePackage.csproj +++ b/Software/Visual_Studio/PPC/UpdatePackages/Tango.PPC.Packages.SamplePrePackage/Tango.PPC.Packages.SamplePrePackage.csproj @@ -45,6 +45,16 @@ <Compile Include="Properties\AssemblyInfo.cs" /> </ItemGroup> <ItemGroup> + <ProjectReference Include="..\..\..\Tango.Core\Tango.Core.csproj"> + <Project>{A34EE0F0-649D-41C8-8489-B6F1CC6924EE}</Project> + <Name>Tango.Core</Name> + <Private>False</Private> + </ProjectReference> + <ProjectReference Include="..\..\..\Tango.Logging\Tango.Logging.csproj"> + <Project>{bc932dbd-7cdb-488c-99e4-f02cf441f55e}</Project> + <Name>Tango.Logging</Name> + <Private>False</Private> + </ProjectReference> <ProjectReference Include="..\..\Tango.PPC.Common\Tango.PPC.Common.csproj"> <Project>{0be74eee-22cb-4dba-b896-793b9e1a3ac0}</Project> <Name>Tango.PPC.Common</Name> diff --git a/Software/Visual_Studio/Tango.sln b/Software/Visual_Studio/Tango.sln index 939e217c2..5d601ae52 100644 --- a/Software/Visual_Studio/Tango.sln +++ b/Software/Visual_Studio/Tango.sln @@ -317,13 +317,13 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.PPC.Maintenance", "PP EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.PPC.BackupRestore", "PPC\Modules\Tango.PPC.BackupRestore\Tango.PPC.BackupRestore.csproj", "{BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Packages", "Packages", "{E728CBD9-1AF4-4814-A218-E4BD26E7EDEA}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UpdatePackages", "UpdatePackages", "{E728CBD9-1AF4-4814-A218-E4BD26E7EDEA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.PPC.Packages.SamplePrePackage", "PPC\Packages\Tango.PPC.Packages.SamplePrePackage\Tango.PPC.Packages.SamplePrePackage.csproj", "{2CD12594-3522-4658-A65F-190EE58B6AFA}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.DispenserAnalyzer.UI", "Utilities\Tango.DispenserAnalyzer.UI\Tango.DispenserAnalyzer.UI.csproj", "{D74893F2-9E39-4C72-BDD4-937404E1FC37}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.PPC.Packages.SamplePostPackage", "PPC\Packages\Tango.PPC.Packages.SamplePostPackage\Tango.PPC.Packages.SamplePostPackage.csproj", "{DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.PPC.Packages.SamplePrePackage", "PPC\UpdatePackages\Tango.PPC.Packages.SamplePrePackage\Tango.PPC.Packages.SamplePrePackage.csproj", "{2CD12594-3522-4658-A65F-190EE58B6AFA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.DispenserAnalyzer.UI", "Utilities\Tango.DispenserAnalyzer.UI\Tango.DispenserAnalyzer.UI.csproj", "{D74893F2-9E39-4C72-BDD4-937404E1FC37}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tango.PPC.Packages.SamplePostPackage", "PPC\UpdatePackages\Tango.PPC.Packages.SamplePostPackage\Tango.PPC.Packages.SamplePostPackage.csproj", "{DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -5656,6 +5656,46 @@ Global {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Release|x64.Build.0 = Release|Any CPU {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Release|x86.ActiveCfg = Release|Any CPU {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7}.Release|x86.Build.0 = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|Any CPU.ActiveCfg = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|Any CPU.Build.0 = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|ARM.ActiveCfg = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|ARM.Build.0 = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|ARM64.ActiveCfg = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|ARM64.Build.0 = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|x64.ActiveCfg = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|x64.Build.0 = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|x86.ActiveCfg = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|x86.Build.0 = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|ARM.ActiveCfg = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|ARM.Build.0 = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|ARM64.Build.0 = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|x64.ActiveCfg = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|x64.Build.0 = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|x86.ActiveCfg = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|x86.Build.0 = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|ARM.Build.0 = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|x64.Build.0 = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|x86.Build.0 = Debug|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|Any CPU.Build.0 = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|ARM.ActiveCfg = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|ARM.Build.0 = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|ARM64.ActiveCfg = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|ARM64.Build.0 = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|x64.ActiveCfg = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|x64.Build.0 = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|x86.ActiveCfg = Release|Any CPU + {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|x86.Build.0 = Release|Any CPU {2CD12594-3522-4658-A65F-190EE58B6AFA}.AppVeyor|Any CPU.ActiveCfg = Release|Any CPU {2CD12594-3522-4658-A65F-190EE58B6AFA}.AppVeyor|Any CPU.Build.0 = Release|Any CPU {2CD12594-3522-4658-A65F-190EE58B6AFA}.AppVeyor|ARM.ActiveCfg = Release|Any CPU @@ -5736,46 +5776,6 @@ Global {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Release|x64.Build.0 = Release|Any CPU {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Release|x86.ActiveCfg = Release|Any CPU {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA}.Release|x86.Build.0 = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|Any CPU.ActiveCfg = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|Any CPU.Build.0 = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|ARM.ActiveCfg = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|ARM.Build.0 = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|ARM64.ActiveCfg = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|ARM64.Build.0 = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|x64.ActiveCfg = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|x64.Build.0 = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|x86.ActiveCfg = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.AppVeyor|x86.Build.0 = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|ARM.ActiveCfg = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|ARM.Build.0 = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|ARM64.ActiveCfg = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|ARM64.Build.0 = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|x64.ActiveCfg = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|x64.Build.0 = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|x86.ActiveCfg = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Debug|x86.Build.0 = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|Any CPU.ActiveCfg = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|Any CPU.Build.0 = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|ARM.ActiveCfg = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|ARM.Build.0 = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|ARM64.ActiveCfg = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|ARM64.Build.0 = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|x64.ActiveCfg = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|x64.Build.0 = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|x86.ActiveCfg = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.DefaultBuild|x86.Build.0 = Debug|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|Any CPU.Build.0 = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|ARM.ActiveCfg = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|ARM.Build.0 = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|ARM64.ActiveCfg = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|ARM64.Build.0 = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|x64.ActiveCfg = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|x64.Build.0 = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|x86.ActiveCfg = Release|Any CPU - {D74893F2-9E39-4C72-BDD4-937404E1FC37}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -5880,17 +5880,17 @@ Global {011470AC-6BD6-4366-B5F2-C82C065D4A84} = {0048447D-1D94-4E60-9DAD-7349C777CB4E} {BC2753F8-C0F7-48F5-A85C-149EC7A2F8C7} = {0048447D-1D94-4E60-9DAD-7349C777CB4E} {E728CBD9-1AF4-4814-A218-E4BD26E7EDEA} = {C81ED1A3-D18C-4D80-A8F5-061994A14A60} + {D74893F2-9E39-4C72-BDD4-937404E1FC37} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} {2CD12594-3522-4658-A65F-190EE58B6AFA} = {E728CBD9-1AF4-4814-A218-E4BD26E7EDEA} {DA391B02-AE28-4EA1-A80F-D0F4C8029FFA} = {E728CBD9-1AF4-4814-A218-E4BD26E7EDEA} - {D74893F2-9E39-4C72-BDD4-937404E1FC37} = {5F6BBAA8-EAD0-4B18-97E5-55B4F56DD760} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution - BuildVersion_UseGlobalSettings = False - BuildVersion_AssemblyInfoFilename = Properties\AssemblyInfo.cs - BuildVersion_StartDate = 2000/1/1 - BuildVersion_UpdateFileVersion = False - BuildVersion_UpdateAssemblyVersion = True - BuildVersion_BuildVersioningStyle = None.None.Increment.DeltaBaseYearDayOfYear SolutionGuid = {7986F7F4-A86A-4994-B1B6-0988D7F057B6} + BuildVersion_BuildVersioningStyle = None.None.Increment.DeltaBaseYearDayOfYear + BuildVersion_UpdateAssemblyVersion = True + BuildVersion_UpdateFileVersion = False + BuildVersion_StartDate = 2000/1/1 + BuildVersion_AssemblyInfoFilename = Properties\AssemblyInfo.cs + BuildVersion_UseGlobalSettings = False EndGlobalSection EndGlobal |
