private static GithubRelease.Asset GetAssetMatchingRunningVersion(List <GithubRelease.Asset> assets)
 {
     GithubRelease.Asset releaseAsset = null;
     if (DragonUtil.IsRunningPortable())
     {
         Console.WriteLine("Portable version");
         releaseAsset = assets.Find(asset => asset.name.Contains("Portable"));
     }
     else
     {
         if (DragonUtil.CurrentOperatingSystem.IsWindows())
         {
             releaseAsset = assets.Find(asset => asset.name.Contains("Windows"));
         }
         else if (DragonUtil.CurrentOperatingSystem.IsMacOS())
         {
             releaseAsset = assets.Find(asset => asset.name.Contains("macOS"));
         }
         else if (DragonUtil.CurrentOperatingSystem.IsLinux())
         {
             releaseAsset = assets.Find(asset => asset.name.Contains("linux"));
         }
     }
     return(releaseAsset);
 }
        private static void RunCoreUpdater(string updaterFolder, string zipPath)
        {
            Console.WriteLine("Starting updater process...");

            ProcessStartInfo processInfo = new ProcessStartInfo()
            {
                ErrorDialog     = true,
                UseShellExecute = true
            };

            if (DragonUtil.IsRunningPortable())
            {
                processInfo.FileName = "dotnet";
                //processInfo.Arguments = "dotnet'";
                processInfo.Arguments += DragonUtil.SurroundWithQuotes(updaterFolder + "/CoreUpdater.dll");
            }
            else
            {
                if (DragonUtil.CurrentOperatingSystem.IsWindows())
                {
                    processInfo.FileName = DragonUtil.SurroundWithQuotes(updaterFolder + "/CoreUpdater.exe");
                }
                else if (DragonUtil.CurrentOperatingSystem.IsMacOS())
                {
                    processInfo.FileName = DragonUtil.SurroundWithQuotes(updaterFolder + "/CoreUpdater");
                }
                else if (DragonUtil.CurrentOperatingSystem.IsLinux())
                {
                    processInfo.FileName = DragonUtil.SurroundWithQuotes(updaterFolder + "/CoreUpdater");
                }
            }

            processInfo.Arguments += " " + DragonUtil.SurroundWithQuotes(DragonUtil.CurrentDirectory) + " " +
                                     DragonUtil.SurroundWithQuotes(zipPath);

            Console.WriteLine(processInfo.FileName + processInfo.Arguments);

            Process process = new Process {
                StartInfo = processInfo
            };

            process.Start();
        }