Ejemplo n.º 1
0
        private void processByCostSearchRequest(HttpContext ctx)
        {
            ctx.Response.ContentType = "application/json";
            var op   = ctx.Request.QueryString["operator"].ToString();
            var cost = ctx.Request.QueryString["cost"].ToString();

            List <Upgrade> upgrades = xwJSONSerializer.Deserialize <List <Upgrade> >(
                System.IO.File.ReadAllText(
                    xwDictionary.getDictionaryPath(Meta.PATH_TYPE.UPGRADE_FILE)
                    ));

            List <Pilot> pilots = xwJSONSerializer.Deserialize <List <Pilot> >(
                System.IO.File.ReadAllText(
                    xwDictionary.getDictionaryPath(Meta.PATH_TYPE.PILOT_FILE)
                    ));

            XWSearchResult results = new XWSearchResult();

            results = xwSearchHandler.search(
                Convert.ToInt32(cost),
                xwDictionary.getSearchOperator(op),
                upgrades,
                pilots);

            string resultJSON = xwJSONSerializer.Serialize <XWSearchResult>(results);

            ctx.Response.Write(resultJSON);

            ctx.Response.End();
        }
Ejemplo n.º 2
0
        private void processStandardSearchRequest(HttpContext ctx)
        {
            ctx.Response.ContentType = "application/json";
            var noun    = ctx.Request.QueryString["noun"].ToString();
            var verb    = ctx.Request.QueryString["verb"].ToString();
            var faction = ctx.Request.QueryString["faction"].ToString();

            List <Upgrade> upgrades = xwJSONSerializer.Deserialize <List <Upgrade> >(
                System.IO.File.ReadAllText(
                    xwDictionary.getDictionaryPath(Meta.PATH_TYPE.UPGRADE_FILE)
                    ));

            List <Pilot> pilots = xwJSONSerializer.Deserialize <List <Pilot> >(
                System.IO.File.ReadAllText(
                    xwDictionary.getDictionaryPath(Meta.PATH_TYPE.PILOT_FILE)
                    ));

            XWSearchResult results = new XWSearchResult();

            results = xwSearchHandler.search(
                verb,
                noun,
                upgrades,
                pilots,
                xwDictionary.getFactionByString(faction));

            string resultJSON = xwJSONSerializer.Serialize <XWSearchResult>(results);

            ctx.Response.Write(resultJSON);

            ctx.Response.End();
        }
Ejemplo n.º 3
0
        public static XWSearchResult search(
            string verb,
            string noun,
            List <Upgrade> upgrades,
            List <Pilot> pilots,
            XW_FACTION faction = XW_FACTION.ALL)
        {
            XWSearchResult searchResult = new XWSearchResult();

            // upgrades w/ search
            List <Upgrade> upgradesWithVerb = upgrades.FindAll(u => u.ability.IndexOf(verb,
                                                                                      StringComparison.OrdinalIgnoreCase) >= 0);
            List <Upgrade> upgradesWithVerbAndNoun = upgradesWithVerb.FindAll(u => u.ability.IndexOf(noun,
                                                                                                     StringComparison.OrdinalIgnoreCase) >= 0);

            // pilot w/ search
            List <Pilot> pilotsWithVerb = pilots.FindAll(p => p.pilotAbility.IndexOf(verb,
                                                                                     StringComparison.OrdinalIgnoreCase) >= 0);
            List <Pilot> pilotsWithVerbAndNoun = pilotsWithVerb.FindAll(p => p.pilotAbility.IndexOf(noun,
                                                                                                    StringComparison.OrdinalIgnoreCase) >= 0);

            // faction specific
            if (faction != XW_FACTION.ALL)
            {
                XW_RESTRICTION noRestriction             = XW_RESTRICTION.NONE;
                XW_RESTRICTION limitedRestriction        = XW_RESTRICTION.LIMITED;
                XW_RESTRICTION factionRestriction        = xwDictionary.getRestrictionByFactionType(faction);
                XW_RESTRICTION factionLimitedRestriction = xwDictionary.getRestrictionLimitedByFactionType(faction);

                if (factionLimitedRestriction != XW_RESTRICTION.NONE)
                {
                    // only pull upgrades that are everything except the restriction
                    upgradesWithVerbAndNoun = upgradesWithVerbAndNoun.FindAll(u => u.restriction == noRestriction ||
                                                                              u.restriction == limitedRestriction ||
                                                                              u.restriction == factionRestriction ||
                                                                              u.restriction == factionLimitedRestriction);
                }
                else
                {
                    // no limitations (except limited)
                    upgradesWithVerbAndNoun = upgradesWithVerbAndNoun.FindAll(u => u.restriction == noRestriction ||
                                                                              u.restriction == limitedRestriction ||
                                                                              u.restriction == factionRestriction);
                }

                // filter down pilots by faction
                pilotsWithVerbAndNoun = pilotsWithVerbAndNoun.FindAll(p => p.faction == faction);
            }

            searchResult.upgrades = upgradesWithVerbAndNoun;
            searchResult.pilots   = pilotsWithVerbAndNoun;

            return(searchResult);
        }
Ejemplo n.º 4
0
        public static XWSearchResult search(
            string name,
            List <Upgrade> upgrades,
            List <Pilot> pilots)
        {
            XWSearchResult searchResult = new XWSearchResult();
            // upgrades w/ search

            List <Upgrade> upgradesWithName = upgrades.FindAll(u => u.name.IndexOf(name,
                                                                                   StringComparison.OrdinalIgnoreCase) >= 0);

            // pilots w/ search
            List <Pilot> pilotsWithName = pilots.FindAll(p => p.name.IndexOf(name,
                                                                             StringComparison.OrdinalIgnoreCase) >= 0);

            searchResult.upgrades = upgradesWithName;
            searchResult.pilots   = pilotsWithName;

            return(searchResult);
        }
Ejemplo n.º 5
0
        public static XWSearchResult search(
            int pointCost,
            XW_SEARCH_OPERATOR op,
            List <Upgrade> upgrades,
            List <Pilot> pilots)
        {
            XWSearchResult searchResult     = new XWSearchResult();
            List <Upgrade> upgradesWithCost = new List <Upgrade>();
            List <Pilot>   pilotsWithCost   = new List <Pilot>();

            switch (op)
            {
            case XW_SEARCH_OPERATOR.LESS_THAN:
                upgradesWithCost = upgrades.FindAll(u => u.points <= pointCost);
                pilotsWithCost   = pilots.FindAll(p => p.squadPointCost <= pointCost);
                break;

            case XW_SEARCH_OPERATOR.MORE_THAN:
                upgradesWithCost = upgrades.FindAll(u => u.points >= pointCost);
                pilotsWithCost   = pilots.FindAll(p => p.squadPointCost >= pointCost);
                break;

            case XW_SEARCH_OPERATOR.EQUAL_TO:
                upgradesWithCost = upgrades.FindAll(u => u.points == pointCost);
                pilotsWithCost   = pilots.FindAll(p => p.squadPointCost == pointCost);
                break;

            default:
                break;
            }

            searchResult.upgrades = upgradesWithCost;
            searchResult.pilots   = pilotsWithCost;

            return(searchResult);
        }
Ejemplo n.º 6
0
        static void DoSearch(List <Upgrade> upgrades, List <Pilot> pilots)
        {
            XWSearchResult results = new XWSearchResult();

            results = xwSearchHandler.search("assign", "focus", upgrades, pilots, Meta.XW_FACTION.SCUM);
        }