Example #1
0
        public bool Update(string directory, VersionInfo build)
        {
            if (!File.Exists(directory + @"\Yatse2.exe"))
                return false;

            Tools.FindAndKillProcess("Yatse2");

            var version = Tools.GetFileRevision(directory + @"\Yatse2.exe");
            if (version == build.Build)
            {
                return false;
            }

            var filesinfo = GetVersionInfo(new VersionInfo { Beta = true, Build = version });
            if (filesinfo != null)
            {
                Log("Update : Checking current install against web build : " + version);
                foreach (var files in filesinfo.FileInfos)
                {
                    if (!File.Exists(directory + files.FilePath))
                        continue;
                    if (FileHash.CheckFileHashString(directory + files.FilePath, files.FileHash)) continue;
                    if (File.Exists(directory + files.FilePath + ".bck"))
                        File.Delete(directory + files.FilePath + ".bck");
                    File.Move(directory + files.FilePath, directory + files.FilePath + ".bck");
                    Log("Update : Backup modified file : " + files.FilePath,true);
                }
            }
            else
            {
                Log("Update : Current build no more on server : " + version,true);
            }

            DownloadFile(_repository + "/Download/" + _platform + "/" + build.Build + "/Update", "Update");
            Log("Update : Updating to build : " + build.Build, true);
            filesinfo = GetVersionInfo(build);
            if (filesinfo != null)
            {
                bool res;
                using (var q = new ThreadedDownlads(Threads, _tempDirectory, false))
                {
                    foreach (var files in filesinfo.FileInfos)
                    {
                        var info = new DownloadFileInfo
                                       {
                                           FileSource =
                                               _platformUrl + @"/" + build.Build + @"/Files/" + files.FileHash + ".dat",
                                           FileDestination = directory + files.FilePath,
                                           FileHash = files.FileHash
                                       };
                        q.EnqueueTask(info);
                    }
                    res = q.WaitEnd();
                }
                return res;
            }

            Log("Update : New build no more on server : " + build.Build,true);
            return false;
        }
Example #2
0
        public bool Install(VersionInfo build,string targetDirectory)
        {
            var filesinfo = GetVersionInfo(build);

            Log("Install : Build " + build.Build + " to : " + targetDirectory,true);
            DownloadFile(_repository + "/Download/" + _platform + "/" + build.Build + "/Install", "Install");
            bool res;
            using (var q = new ThreadedDownlads(Threads, _tempDirectory, false))
            {
                foreach (var files in filesinfo.FileInfos)
                {
                    var info = new DownloadFileInfo
                                   {
                                       FileSource =
                                           _platformUrl + @"/" + build.Build + @"/Files/" + files.FileHash + ".dat",
                                       FileDestination = targetDirectory + files.FilePath,
                                       FileHash = files.FileHash
                                   };
                    q.EnqueueTask(info);
                }
                res = q.WaitEnd();
            }
            return res;
        }