예제 #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            LabelSearchingInProgress.Text    = "Scanning..." + Environment.NewLine + Environment.NewLine + "(Window may appear unresponsive)";
            LabelSearchingInProgress.Visible = true;
            LabelSearchingInProgress.Update();
            ImportFormListView.BeginUpdate();
            System.Threading.Thread.Sleep(500);
            ImportFormListView.Clear();


            ImportProgressbar.Value   = 0;
            ImportProgressbar.Visible = true;
            GetAddonList();
            System.Threading.Thread.Sleep(500);
            labelImportSelected.Visible      = true;
            LabelSearchingInProgress.Visible = false;
            ImportFormListView.EndUpdate();
        }
예제 #2
0
        async Task APISearchAsync(string url)
        {
            try
            {
                var baseAddress = new Uri("https://addons-ecs.forgesvc.net");

                using (var httpClient = new HttpClient {
                    BaseAddress = baseAddress
                })
                {
                    {
                        using (var response = await httpClient.GetAsync(url))
                        {
                            string responseHeaders = response.Headers.ToString();
                            string responseData    = await response.Content.ReadAsStringAsync();



                            dynamic addonResponse = JsonConvert.DeserializeObject(responseData);
                            dynamic item          = addonResponse[0];



                            dynamic correctRelease = null;
                            foreach (dynamic subItem in item.latestFiles)
                            {
                                if (subItem.gameVersionFlavor == Globals.gameFlavor && subItem.releaseType == "1")
                                {
                                    correctRelease = subItem;
                                    break;
                                }
                            }


                            // XML

                            XDocument importXML = XDocument.Load(@".\Data\import.xml");
                            importXML.Descendants("config").Last().Add(new XElement("Addon"));

                            importXML.Descendants("Addon").Last().Add(new XElement("ID", (string)item.id));
                            importXML.Descendants("Addon").Last().Add(new XElement("Name", (string)item.name));
                            importXML.Descendants("Addon").Last().Add(new XElement("DownloadLink", (string)correctRelease.downloadUrl));
                            importXML.Descendants("Addon").Last().Add(new XElement("Description", (string)item.summary));
                            importXML.Descendants("Addon").Last().Add(new XElement("CurrentVersion", "???"));
                            importXML.Descendants("Addon").Last().Add(new XElement("LatestVersion", (string)correctRelease.displayName));
                            string moduleString = "";
                            foreach (dynamic module in correctRelease.modules)
                            {
                                moduleString += (module.foldername + ",");
                            }

                            importXML.Descendants("Addon").Last().Add(new XElement("Modules", moduleString.Trim(new Char[] { ',' })));
                            importXML.Descendants("Addon").Last().Add(new XElement("Website", (string)item.websiteUrl));

                            importXML.Save(@".\Data\import.xml");

                            // End XML

                            ListViewItem ResultItem = new ListViewItem();
                            ResultItem.Text = item.name;
                            ResultItem.SubItems.Add((string)item.summary);



                            if (correctRelease != null)
                            {
                                ResultItem.SubItems.Add((string)correctRelease.displayName);
                            }
                            else
                            {
                                ResultItem.SubItems.Add("***** This addon has no version marked as 'Realease' for " + Globals.gameFlavor + " *****");
                            }



                            ResultItem.SubItems.Add((string)item.id);

                            if (ImportFormListView.FindItemWithText((string)correctRelease.displayName) == null)
                            {
                                ImportFormListView.Items.Add(ResultItem);
                            }


                            ImportFormListView.AutoResizeColumn(0, ColumnHeaderAutoResizeStyle.ColumnContent);
                            ImportFormListView.AutoResizeColumn(1, ColumnHeaderAutoResizeStyle.ColumnContent);
                            ImportFormListView.AutoResizeColumn(2, ColumnHeaderAutoResizeStyle.ColumnContent);
                            ImportFormListView.AutoResizeColumn(3, ColumnHeaderAutoResizeStyle.ColumnContent);
                        }
                    }
                }
            }
            catch (WebException ex)
            {
                throw ex;
            }
        }