123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- using System;
- using System.IO;
- using System.Windows.Media.Imaging;
- using System.Windows.Threading;
- using vCloud.GeneratePackages.Entitys;
- using vCloud.GeneratePackages.Utilities;
- using Vinno.IUS.Common.Utilities;
- namespace vCloud.GeneratePackages.Tool
- {
- public class AppManager
- {
- private static AppManager _instance;
- private static ZipHelper _zipHelper;
- private static DescriptionUpdater _updater;
- private static string _appConfigFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "AppSettings.cfg");
- private static string _ftpLocal = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "FtpLocal");
- private static string _outputdir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Output");
- private static string _installPackagePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "InstallPackage");
- private static string _deploymentToolPath = Path.Combine(_installPackagePath, "DeploymentTool");
- private static string _outDeploymentToolPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "DeploymentTool");
- private static string _deployPackage = Path.Combine(_outDeploymentToolPath, "DeployPackage");
- private Version _upgradePackagesVersion;
- private FlyinsonoVersionResult _languageInfoDes;
- /// <summary>
- /// The unique instance of app manager
- /// </summary>
- public static AppManager Instance => _instance ?? (_instance = new AppManager());
- /// <summary>
- /// Package client data in pak
- /// </summary>
- public bool PackageClientData{ get; set; }
- /// <summary>
- /// is need upload server package
- /// </summary>
- public bool IsNeedRemoteDeployment { get; set; }
- /// <summary>
- /// The main dispatcher
- /// </summary>
- public static Dispatcher MainDispatcher { get; set; }
- /// <summary>
- /// Support languages
- /// </summary>
- /// <summary>
- /// Zip file icon
- /// </summary>
- public BitmapImage ZipFileIcon { get; private set; }
- /// <summary>
- /// app Settings
- /// </summary>
- public AppSettings AppSettings { get; }
- private AppManager()
- {
- var content = File.ReadAllText(_appConfigFile);
- AppSettings = JsonHelper.DeserializerJsonResult<AppSettings>(content);
- _updater = new DescriptionUpdater();
- _upgradePackagesVersion = new Version();
- IsNeedRemoteDeployment = true;
- }
- //Save ftp Url
- public void SaveFtpUrl(string url)
- {
- AppSettings.FtpUrl = url;
- var content = JsonHelper.SerializerToJsonString<AppSettings>(AppSettings);
- File.WriteAllText(_appConfigFile, content);
- }
- /// <summary>
- /// Initialize
- /// </summary>
- public void Initialize()
- {
- var assembly = GetType().Assembly;
- var assemblyName = assembly.GetName().Name;
- var resourcePath = $"{assemblyName}.Images.compressed.png";
- var stream = assembly.GetManifestResourceStream(resourcePath);
- if (stream != null)
- {
- byte[] bytes = new byte[stream.Length];
- stream.Read(bytes, 0, bytes.Length);
- stream.Seek(0, SeekOrigin.Begin);
- var bitmapImage = new BitmapImage();
- bitmapImage.BeginInit();
- bitmapImage.StreamSource = new MemoryStream(bytes);
- bitmapImage.EndInit();
- ZipFileIcon = bitmapImage;
- }
- _zipHelper = new ZipHelper();
- }
- /// <summary>
- /// Do a modal action, user can not do other things before the action finished
- /// </summary>
- /// <param name="action"></param>
- /// <param name="description"></param>
- public static void DoModalAction(Action action, string description = null, string title = null, IDescriptionUpdater descriptionUpdater = null, Action contiueAction = null)
- {
- var modalActionWindow = new ModalActionWindow(action, descriptionUpdater, description, title);
- modalActionWindow.Owner = System.Windows.Application.Current.MainWindow;
- modalActionWindow.ShowDialog();
- }
- }
- }
|