예제 #1
0
        public static byte[] ReadAllBytes(this Stream fr)
        {
            var ms = new MemoryStream();

            IOTool.CopyStream(fr, ms);
            return(ms.ToArray());
        }
예제 #2
0
        public static byte[] ZlibDecompress(byte[] data)
        {
            MemoryStream src = new MemoryStream(data);
            var          fr  = new Ionic.Zlib.ZlibStream(src, Ionic.Zlib.CompressionMode.Decompress);
            MemoryStream fw  = new MemoryStream();

            IOTool.CopyStream(fr, fw);
            return(fw.ToArray());
        }
예제 #3
0
        protected override void AfterWriteAction(string file)
        {
            var req = CreateRequest();

            req.Method = WebRequestMethods.Ftp.UploadFile;
            using (var fw = req.GetRequestStream())
            {
                using (var fr = new FileStream(file, FileMode.Open, FileAccess.Read))
                {
                    IOTool.CopyStream(fr, fw);
                }
            }
        }
예제 #4
0
        protected override void PrepareReadFileContent(string file)
        {
            var req = WebRequest.Create(Url);

            using (var resp = req.GetResponse())
            {
                using (var fr = resp.GetResponseStream())
                {
                    using (var fw = new FileStream(file, FileMode.Create))
                    {
                        IOTool.CopyStream(fr, fw);
                    }
                }
            }
        }
예제 #5
0
        protected override void PrepareReadFileContent(string file)
        {
            var req = CreateRequest();

            req.Method = WebRequestMethods.Ftp.DownloadFile;

            using (var resp = req.GetResponse())
            {
                using (var fr = resp.GetResponseStream())
                {
                    using (var fw = new FileStream(file, FileMode.Create))
                    {
                        IOTool.CopyStream(fr, fw);
                    }
                }
            }
        }
예제 #6
0
        private static void DoRunCheckThreadCore()
        {
            var            desc = ApiDescriptor.GetInstance();
            HttpWebRequest req  = (HttpWebRequest)WebRequest.Create(desc.GetUpdate);

            req.ContentType = "application/x-www-form-urlencoded; charset=utf-8";
            req.Method      = "POST";
            Dictionary <string, string> pars = new Dictionary <string, string>();

            FeedbackTool.FillStdParams(pars, true);
            if (m_checked)
            {
                pars["REPEATED"] = "1";
            }
            string pars_enc = StringTool.UrlEncode(pars, Encoding.UTF8);

            byte[] data = Encoding.UTF8.GetBytes(pars_enc);
            req.ContentLength = data.Length;
            req.Timeout       = 5000;
            using (Stream requestStream = req.GetRequestStream())
            {
                requestStream.Write(data, 0, data.Length);
            }

            using (WebResponse resp = req.GetResponse())
            {
                XmlDocument doc = new XmlDocument();
                using (Stream fr = resp.GetResponseStream())
                {
                    doc.Load(fr);
                }
                string version = doc.SelectSingleNode("/update/version").InnerText;
                string url     = doc.SelectSingleNode("/update/url").InnerText;
                //try { UpdateID = Int32.Parse(doc.SelectSingleNode("/update/updateid").InnerText); }
                //catch { }
                DateTime updatedat;
                try { updatedat = DateTime.ParseExact(doc.SelectSingleNode("/update/updatedat").InnerText, "s", CultureInfo.InvariantCulture); }
                catch { updatedat = DateTime.UtcNow; }
                //try { SendErrorLogs = doc.SelectSingleNode("/update/errorlogs").InnerText == "1"; }
                //catch { SendErrorLogs = true; }
                //try { ScreenshotWidth = Int32.Parse(doc.SelectSingleNode("/update/screenshots").InnerText); }
                //catch { ScreenshotWidth = 0; }

                if (VersionInfo.AllowAutoUpdate && CompareVersions(version, VersionInfo.VERSION) > 0)
                {
                    if (Framework.Instance.GetCheckNewVersion() == CheckNewVersions.CheckOnly)
                    {
                        //MainWindow.Instance.RunInMainWindow(delegate() { StdDialog.ShowInfo(Texts.Get("s_new_version_available$version", "version", version)); });
                        Framework.MainWindow.SendVersionInfo(Texts.Get("s_new_version_available$version", "version", version), null);
                    }
                    if (Framework.Instance.GetCheckNewVersion() == CheckNewVersions.CheckAndDownload)
                    {
                        if (File.Exists(VersionFile) && File.Exists(InstallExeFile))
                        {
                            string downloadedVersion = IOTool.LoadTextFile(VersionFile).Trim();
                            if (CompareVersions(version, downloadedVersion) > 0)
                            {
                                File.Delete(VersionFile);
                                File.Delete(InstallExeFile);
                            }
                            else
                            {
                                Logging.Debug("Version allready downloaded");
                                return;
                            }
                        }

                        Framework.MainWindow.SendVersionInfo(Texts.Get("s_downloading_version$version", "version", version), null);
                        WebRequest req2 = WebRequest.Create(url);
                        using (WebResponse resp2 = req2.GetResponse())
                        {
                            using (Stream fr = resp2.GetResponseStream())
                            {
                                using (FileStream fw = new FileStream(InstallExeFile, FileMode.Create))
                                {
                                    IOTool.CopyStream(fr, fw);
                                }
                            }
                        }
                        using (StreamWriter fw = new StreamWriter(VersionFile)) fw.Write(version);
                        using (StreamWriter fw = new StreamWriter(InstallTimestampFile)) fw.Write(updatedat.ToString("s"));

                        Framework.MainWindow.SendVersionInfo(Texts.Get("s_new_version_downloaded$version", "version", version), version);
                    }
                }
                else
                {
                    if (VersionInfo.AllowAutoUpdate)
                    {
                        Framework.MainWindow.SendVersionInfo(Texts.Get("s_you_have_current_version"), null);
                    }
                }
            }
        }