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(); }
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(); }
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); }
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); }
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); }
static void DoSearch(List <Upgrade> upgrades, List <Pilot> pilots) { XWSearchResult results = new XWSearchResult(); results = xwSearchHandler.search("assign", "focus", upgrades, pilots, Meta.XW_FACTION.SCUM); }