Esempio n. 1
0
        private void skinButton8_Click(object sender, EventArgs e)
        {
            List <VersionUrl> NewVersions = new List <VersionUrl>();

            foreach (var item in checkedListBox2.CheckedItems)
            {
                Hw_ScanVersion sv = (Hw_ScanVersion)item;
                VersionUrl     vu = new VersionUrl
                {
                    Name = "G" + sv.Bg + "/g" + sv.Sg,
                    BG   = sv.Bg.ToString(),
                    sg   = sv.Sg.ToString(),
                    v    = sv.V.ToString(),
                    f    = sv.F.ToString()
                };



                NewVersions.Add(vu);
            }


            using (SaveFileDialog saveFileDialog1 = new SaveFileDialog())
            {
                saveFileDialog1.Title            = "另存为";
                saveFileDialog1.InitialDirectory = @"\";
                saveFileDialog1.Filter           = "文本(*.txt)|*.txt";
                saveFileDialog1.AddExtension     = true;
                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    string savestr = JsonConvert.SerializeObject(NewVersions);

                    FileStream   fs = null;
                    StreamWriter sw = null;
                    //Stream sr = null;
                    try
                    {
                        fs = new FileStream(saveFileDialog1.FileName, FileMode.Create, FileAccess.ReadWrite);
                        fs.Close();


                        sw = new StreamWriter(saveFileDialog1.FileName);
                        sw.Write(savestr);
                        sw.Flush();
                    }
                    catch (Exception ex)
                    {
                    }
                    finally
                    {
                        if (fs != null)
                        {
                            fs.Close();
                        }
                        sw.Close();
                        //sr.Close();
                    }
                }
            }
        }
Esempio n. 2
0
        public void Ctor()
        {
            var url = new VersionUrl("Title", "Url");

            Assert.Equal(url.Title, "Title");
            Assert.Equal(url.Url, "Url");
        }
Esempio n. 3
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (VersionTag.Length != 0)
            {
                hash ^= VersionTag.GetHashCode();
            }
            if (Ips.Length != 0)
            {
                hash ^= Ips.GetHashCode();
            }
            if (Ports.Length != 0)
            {
                hash ^= Ports.GetHashCode();
            }
            if (ResourceUrl.Length != 0)
            {
                hash ^= ResourceUrl.GetHashCode();
            }
            if (VersionUrl.Length != 0)
            {
                hash ^= VersionUrl.GetHashCode();
            }
            if (ShowState != false)
            {
                hash ^= ShowState.GetHashCode();
            }
            if (SelectServer != false)
            {
                hash ^= SelectServer.GetHashCode();
            }
            return(hash);
        }
Esempio n. 4
0
        public void Equals_ReturnsExpected()
        {
            var url1 = new VersionUrl("Title", "Url");
            var url2 = new VersionUrl("Title", "Url");

            var url3 = new VersionUrl("ATitle", "Url");

            var url4 = new VersionUrl("Title", "AUrl");

            Assert.True(url1.Equals(url2));
            Assert.True(url1.GetHashCode().Equals(url2.GetHashCode()));

            Assert.True(url2.Equals(url1));
            Assert.True(url2.GetHashCode().Equals(url1.GetHashCode()));

            Assert.False(url1.Equals(url3));
            Assert.False(url1.Equals(url4));
            Assert.False(url1.Equals(null));
        }
Esempio n. 5
0
        private async void skinButton1_Click(object sender, EventArgs e)
        {
            IOHelper.CreateDir("Log");
            IOHelper.CreateDir("FileList");
            IOHelper.CreateDir("Url");
            IOHelper.CreateDir("NotFound");



            //var kk1 = checkedListBox1.CheckedItems.OfType<char>();
            List <string> lc = new List <string>();

            foreach (var item in checkedListBox1.CheckedItems)
            {
                lc.Add(item.ToString());
            }



            List <VersionUrl> NewVersions = new List <VersionUrl>();

            Versions.ForEach(m =>
            {
                if (lc.Contains(m.Name))
                {
                    NewVersions.Add(m);
                }
            });

            int istartv = 0;
            int isendv  = 0;

            istartv = int.Parse(skinTextBox1.Text);
            isendv  = int.Parse(skinTextBox2.Text);
            List <VersionUrl> AllVersions = new List <VersionUrl>();

            for (int i = istartv; i <= isendv; i++)
            {
                foreach (var m in NewVersions)
                {
                    VersionUrl n = new VersionUrl
                    {
                        Name     = m.Name,
                        BG       = m.BG,
                        sg       = m.sg,
                        v        = i.ToString(),
                        f        = m.f,
                        Operator = m.Operator
                    };



                    AllVersions.Add(n);
                }
            }
            AllVersions = AllVersions.OrderBy(x => x.v).OrderBy(x => x.BG).OrderBy(x => x.sg).OrderBy(x => x.f).ToList();

            skinProgressBar1.Maximum = (isendv - istartv + 1) * NewVersions.Count; //设置最大长度值
            skinProgressBar1.Value   = 0;                                          //设置当前值
            skinProgressBar1.Step    = 1;                                          //设置没次增长多少



            int xcs = int.Parse(skinTextBox5.Text);
            await Task.Run(() =>
            {
                int k        = 0;
                int all      = 0;
                int allcount = AllVersions.Count;
                bool b       = true;
                while (b)
                {
                    b = false;
                    if (k > xcs)
                    {
                        continue;
                    }
                    k++;
                    if (all == allcount)
                    {
                        break;
                    }
                    List <string> hasv = new List <string>();
                    if (hasv.Contains(AllVersions[all].v))
                    {
                        all++;
                        k--;
                        this.BeginInvoke((MethodInvoker) delegate
                        {
                            try
                            {
                                skinProgressBar1.Value += skinProgressBar1.Step;
                            }
                            catch { }
                        });
                        continue;
                    }
                    Thread t = new Thread(async() =>
                    {
                        if (all < allcount)
                        {
                            var m = AllVersions[all++];
                            #region 跑数据
                            try
                            {
                                HttpClientHandler hch = new HttpClientHandler()
                                {
                                    //Proxy = new WebProxy("127.0.0.1", 8877),
                                    Proxy             = new WebProxy(),
                                    UseProxy          = true,
                                    AllowAutoRedirect = false
                                };
                                HttpClient hc = new HttpClient(hch);


                                HttpRequestMessage hr = new HttpRequestMessage();


                                string url = "http://update.hicloud.com:8180/TDS/data/files/p3/s15/G" + m.BG + "";
                                if (!string.IsNullOrWhiteSpace(m.sg))
                                {
                                    url = "http://update.hicloud.com:8180/TDS/data/files/p3/s15/G" + m.BG + "/g" + m.sg + "";
                                    if (!string.IsNullOrWhiteSpace(m.v) && m.v != "0")
                                    {
                                        url = "http://update.hicloud.com:8180/TDS/data/files/p3/s15/G" + m.BG + "/g" + m.sg + "/v" + m.v + "";
                                        if (!string.IsNullOrWhiteSpace(m.f))
                                        {
                                            url = "http://update.hicloud.com:8180/TDS/data/files/p3/s15/G" + m.BG + "/g" + m.sg + "/v" + m.v + "/f" + m.f + "/full/changelog.xml";
                                        }
                                    }
                                }
                                hr.RequestUri = new Uri(url);


                                HttpResponseMessage res = new HttpResponseMessage();

                                try
                                {
                                    res = await hc.SendAsync(hr);
                                }
                                catch (Exception ex)
                                {
                                    IOHelper.CreateDir("Exception");
                                    this.BeginInvoke((MethodInvoker) delegate
                                    {
                                        IOHelper.CreateFile("Exception\\" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt");
                                        IOHelper.WriteLine("Exception\\" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt", DateTime.Now.ToString());
                                        IOHelper.WriteLine("Exception\\" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt", ex.ToString());
                                    });
                                }



                                if (res.StatusCode == HttpStatusCode.OK)
                                {
                                    string Result        = res.Content.ReadAsStringAsync().Result;
                                    string[] refSegments = res.RequestMessage.RequestUri.Segments;


                                    int Bg = 0, Sg = 0, V = 0, F = 0;
                                    if (refSegments.Length > 6)
                                    {
                                        for (int i = 6; i < refSegments.Length; i++)
                                        {
                                            string refs = refSegments[i];
                                            if (i == 6)
                                            {
                                                Bg = int.Parse(refs.TrimStart('G').TrimEnd('/'));
                                            }
                                            else if (i == 7)
                                            {
                                                Sg = int.Parse(refs.TrimStart('g').TrimEnd('/'));
                                            }
                                            else if (i == 8)
                                            {
                                                V = int.Parse(refs.TrimStart('v').TrimEnd('/'));
                                                hasv.Add(refs.TrimStart('v').TrimEnd('/'));
                                            }
                                            else if (i == 9)
                                            {
                                                F = int.Parse(refs.TrimStart('f').TrimEnd('/'));
                                            }
                                        }
                                    }
                                    var vname = "未知";
                                    try
                                    {
                                        vname = Result.Substring(Result.IndexOf("TCPU\" version=\"") + 15, Result.IndexOf("\"", Result.IndexOf("TCPU\" version=\"") + 15) - Result.IndexOf("TCPU\" version=\"") - 15);
                                    }
                                    catch { }



                                    string rurl = res.RequestMessage.RequestUri.AbsoluteUri;

                                    string filenameLog = "", filenameUrl = "", filenameList = "";
                                    try
                                    {
                                        filenameLog  = "Log\\" + V + ".xml";
                                        filenameUrl  = "Url\\" + vname + "_G" + Bg + "_g" + Sg + "_v" + V + "_f" + F + ".txt";
                                        filenameList = "FileList\\" + V + ".xml";
                                    }
                                    catch
                                    {
                                        filenameLog  = "Log\\" + V + ".xml";
                                        filenameUrl  = "Url\\" + vname + "_" + rurl.Substring(rurl.IndexOf("/G") + 1, rurl.IndexOf("/full") - rurl.IndexOf("/G") - 1).Replace("/full", "").Replace("/", "_") + ".txt";
                                        filenameList = "FileList\\" + V + ".xml";
                                    }

                                    if (IOHelper.Exists(filenameLog))
                                    {
                                        IOHelper.DeleteFile(filenameLog);
                                    }
                                    if (IOHelper.Exists(filenameUrl))
                                    {
                                        IOHelper.DeleteFile(filenameUrl);
                                    }
                                    IOHelper.CreateFile(filenameLog);
                                    IOHelper.CreateFile(filenameUrl);
                                    IOHelper.WriteLine(filenameLog, Result);
                                    IOHelper.WriteLine(filenameUrl, res.RequestMessage.RequestUri.AbsoluteUri);
                                    AddTXT(filenameUrl);
                                    GetFileList(res.RequestMessage.RequestUri.AbsoluteUri.Replace("changelog.xml", "filelist.xml"), filenameList);
                                }
                                else if (res.StatusCode == HttpStatusCode.MovedPermanently)
                                {
                                    string Result = "";
                                    Result        = res.RequestMessage.RequestUri.Segments[6];


                                    string[] refSegments = res.RequestMessage.RequestUri.Segments;

                                    string Resultrul = "";
                                    if (refSegments.Length > 6)
                                    {
                                        for (int i = 6; i < refSegments.Length; i++)
                                        {
                                            Resultrul += refSegments[i];
                                        }
                                        string filename = "Log\\301List" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
                                        IOHelper.CreateFile(filename);
                                        IOHelper.WriteLine(filename, Resultrul);

                                        AddTXT(Resultrul);
                                    }
                                }
                                else if (res.StatusCode != HttpStatusCode.NotFound)
                                {
                                    string Result = "";
                                    Result        = res.RequestMessage.RequestUri.Segments[6];


                                    string[] refSegments = res.RequestMessage.RequestUri.Segments;

                                    string Resultrul = "";
                                    if (refSegments.Length > 6)
                                    {
                                        for (int i = 6; i < refSegments.Length; i++)
                                        {
                                            Resultrul += refSegments[i];
                                        }
                                        string filename = "NotFound\\" + ((int)res.StatusCode).ToString() + "List" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
                                        IOHelper.CreateFile(filename);
                                        IOHelper.WriteLine(filename, Resultrul);

                                        AddTXT(Resultrul);
                                    }
                                }
                                //await Task.Delay(1);
                            }
                            catch (Exception ex)
                            {
                                //await Task.Delay(100);

                                IOHelper.CreateDir("Exception");
                                this.BeginInvoke((MethodInvoker) delegate
                                {
                                    IOHelper.CreateFile("Exception\\" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt");
                                    IOHelper.WriteLine("Exception\\" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt", DateTime.Now.ToString());
                                    IOHelper.WriteLine("Exception\\" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt", ex.ToString());
                                });
                            }

                            k--;
                            this.BeginInvoke((MethodInvoker) delegate
                            {
                                try
                                {
                                    skinProgressBar1.Value += skinProgressBar1.Step;
                                }
                                catch { }
                            });

                            #endregion
                        }
                    });
                    t.Start();

                    if (all % 100 == 0)
                    {
                        GC.Collect(); xcs = int.Parse(skinTextBox5.Text);
                    }
                }
            });
        }