示例#1
0
        private List <ModLink> NodeToLinks(JSONNode node)
        {
            string[]       arr   = AsArray(node.AsArray);
            List <ModLink> links = new List <ModLink>();

            foreach (string str in arr)
            {
                var     parsed = JSON.Parse(str);
                ModLink link   = new ModLink(parsed["name"], parsed["version"]);
                links.Add(link);
            }

            return(links);
        }
示例#2
0
        private List <ModLink> NodeToLinks(JSONNode node)
        {
            string[]       arr   = AsArray(node.AsArray);
            List <ModLink> links = new List <ModLink>();

            foreach (string str in arr)
            {
                string[] split = str.Split('@');
                ModLink  link  = new ModLink(split[0], split[1]);
                links.Add(link);
            }

            return(links);
        }
    protected void unitscount2_DataBinding(object sender, System.EventArgs e)
    {
        //Finding unit values, adding each to quantity's total, then updating literal text with calculated total
        Literal lt        = (Literal)(sender);
        int     quantity2 = Convert.ToInt32((Eval("units")));

        unitsTotal2 += quantity2;
        lt.Text      = quantity2.ToString();

        //Optional units total stored
        opttotal.Text = unitsTotal2.ToString();

        //Total units updated + displayed
        comptotal.DataBind();
        unitsTotal = Convert.ToInt32(comptotal.Text);

        //Re-Calculating final total (compulsory units + added optional units)
        finalTotal       = unitsTotal2 + unitsTotal;
        TotalValue2.Text = finalTotal.ToString();
        TotalValue2.DataBind();

        //Display re-calculated total, hide old total
        TotalValue2.Visible = true;
        TotalValue.Visible  = false;

        //Storing unit total to string to carry in URL (for checking at confirmation)
        int linktotal = finalTotal;
        int userID    = Convert.ToInt32(Request.QueryString["userID"]);
        int studentID = Convert.ToInt32(Request.QueryString["studentID"]);
        int Level     = Convert.ToInt32(Request.QueryString["Level"]);

        Modules.DataBind();
        CompMods = Modules.Text;

        //Adding unit total for carrying to modules area (so optional units can be added to total)
        ModLink.NavigateUrl = "RegWizardModules.aspx?UserID=" + userID + "&Level=" + Level + "&studentID=" + studentID;

        ModLink.DataBind();

        //Adding unit total for carrying to confirmation (for 120 units required check)
        ConfirmLink.NavigateUrl = "RegWizardCompMod.aspx?UserID=" + userID + "&Level=" + Level + "&studentID=" + studentID + "&units=" + finalTotal + "&Events=" + CompMods;

        ConfirmLink.DataBind();

        //If 120 units are acquired, disable the optional module link so students can't go over units
        if (finalTotal == 120)
        {
            ModLink.Visible = false;
        }
    }
示例#4
0
    public void DownloadModByName(string modName, Action <string, string> onDownloadComplete = null, bool downloadEvenIfFileExists = false)
    {
        List <ModLink> foundModLink = modLinks.modList.Select(x => x).Where(x => x.name.Contains(modName)).ToList();

        if (foundModLink.Count <= 0)
        {
            Debug.Log("could not find any mod with name " + modName);
            return;
        }

        ModLink toDownload = foundModLink[0];

        string downloadLink = toDownload.link;

        if (settings.Settings.isGOG != null && settings.Settings.isGOG == true && toDownload.gogLink != null && toDownload.gogLink.Length > 1)
        {
            downloadLink = toDownload.gogLink;
        }

        currentDownload = DownloadMod(downloadLink, toDownload.name, onDownloadComplete, downloadEvenIfFileExists);
        //TODO: keep track of these so we can stop them?
        StartCoroutine(currentDownload);
    }
示例#5
0
        private void listViewMods_ItemChecked(object sender, ItemCheckedEventArgs e)
        {
            ReleaseInfo release = (ReleaseInfo)e.Item.Tag;

            if (release.disabled)
            {
                e.Item.Checked = release.install;
                return;
            }
            else
            {
                release.install = e.Item.Checked;
            }

            IEnumerable <ListViewItem> lv = listViewMods.Items.Cast <ListViewItem>();

            List <ListViewItem> changedConflicts = new List <ListViewItem>();

            if (release.conflictsWith.Count > 0)
            {
                List <ListViewItem> filtered = lv.Where(lvi =>
                {
                    ReleaseInfo info = (ReleaseInfo)lvi.Tag;

                    bool exists = release.conflictsWith.Exists(l => l.name == info.name);
                    if (!exists)
                    {
                        return(false);
                    }

                    ModLink link = release.conflictsWith.Find(l => l.name == info.name);

                    Version version = new Version(info.version);
                    Range range     = new Range(link.semver);

                    return(range.IsSatisfied(version));
                }).ToList();

                foreach (var x in filtered)
                {
                    changedConflicts.Add(x);
                    ReleaseInfo info = (ReleaseInfo)x.Tag;
                    info.disabled = e.Item.Checked;
                    info.install  = !e.Item.Checked;

                    if (e.Item.Checked)
                    {
                        x.Checked = false;
                    }
                }
            }

            if (release.dependsOn.Count > 0)
            {
                List <ListViewItem> filtered = lv.Where(lvi =>
                {
                    ReleaseInfo info = (ReleaseInfo)lvi.Tag;
                    if (info.disabled && !info.install)
                    {
                        return(false);
                    }

                    bool exists = release.dependsOn.Exists(l => l.name == info.name);
                    if (!exists)
                    {
                        return(false);
                    }

                    ModLink link = release.dependsOn.Find(l => l.name == info.name);

                    Version version = new Version(info.version);
                    Range range     = new Range(link.semver);

                    return(range.IsSatisfied(version));
                }).ToList();

                if (filtered.Count != release.dependsOn.Count)
                {
                    release.install  = false;
                    release.disabled = true;

                    foreach (var x in changedConflicts)
                    {
                        ReleaseInfo info = (ReleaseInfo)x.Tag;
                        info.disabled = !e.Item.Checked;
                        info.install  = e.Item.Checked;
                    }
                }
                else
                {
                    foreach (var x in filtered)
                    {
                        ReleaseInfo info = (ReleaseInfo)x.Tag;
                        info.disabled = e.Item.Checked;
                        info.install  = e.Item.Checked;
                        x.Checked     = e.Item.Checked;
                    }
                }
            }

            ReRenderListView();
        }