public object Get(MeRequest request) { // work on a clone object var userAuth = (base.IsAuthenticated ? base.AuthRepository.GetUserAuthByUserName(GetSession(false).UserName): null)?.ToJson().FromJson <UserAuth>(); if (userAuth != null) { userAuth.PasswordHash = null; userAuth.Salt = null; userAuth.RefId = null; userAuth.RefIdStr = null; userAuth.DigestHa1Hash = null; } return(new { Result = userAuth }); }
public static List <MeResponse> GetNew(this MeRequest request, int currentTotal, int count = 10) { List <MeResponse> result = new List <MeResponse>(); int old_offset = request.Offset; int old_count = request.Count; request.Count = count; request.Offset = 1; MeResponse response = request.Execute(); if (response != null) { int total = response.Total; int numNew = total - currentTotal; for (request.Offset = 1; request.Offset + request.Count <= numNew; request.Offset += request.Count) { response = request.Execute(); if (response != null) { result.Add(response); } } request.Count = numNew - (request.Offset - 1); response = request.Execute(); if (response != null) { result.Add(response); } } request.Offset = old_offset; request.Count = old_count; return(result); }
private static IDictionary<long, ListingInfo> resultsToListingDictionary(IList<MeResponse> results, MeRequest.ListingType type) { IDictionary<long, ListingInfo> listings = new Dictionary<long, ListingInfo>(); foreach (MeResponse response in results) { foreach (Listing listing in response.Listings) { ListingInfo info = ListingInfo.FromListing(listing, type); listings[info.ListingId] = info; } } return listings; }
public static void Main(string[] args) { try { Console.Write("Checking for existing key: "); string key = SessionManager.GetInstance().GameSession.Key; ok(); } catch (GameSessionRequiredException) { error(); Console.Write("Locating Guild Wars 2 process: "); Process gw2 = findProcess(m_PROCESS_NAME); if (gw2 == null) { error(); return; } else { ok(); } Console.Write("Locating game session key: "); string key = findSessionKey(gw2); if (key == null) { error(); return; } else { ok(); } SessionManager.GetInstance().GameSession = new Session(key, true); } Console.Write("Retreiving filtered buy listings: "); IList <Listing> buyOrders = new MeRequest(MeRequest.TimeType.NOW, MeRequest.ListingType.BUY) .ExecuteAll() .SelectMany(r => r.Listings) .ToList(); ok(); Console.Write("Filter outbid listings: "); IDictionary <int, ItemData> items = new Dictionary <int, ItemData>(); IList <Listing> filteredListings = buyOrders .Where((listing) => { if (!items.ContainsKey(listing.DataId)) { ItemDataResponse response = new ItemDataRequest(listing.DataId).Execute(); if (response == null) { return(false); } items[listing.DataId] = response.Result; } return(items[listing.DataId].MaxOfferUnitPrice <= listing.UnitPrice); }) .ToList(); ok(); if (filteredListings.Count > 0) { Console.WriteLine("{0} of your buy orders have not been outbid.", filteredListings.Count); Console.WriteLine("Orders are displayed in descending order from the date the order was placed."); Console.WriteLine("Press any key to view the next order in the list, or Esc to exit."); Console.WriteLine("{0,-10} {1}", "Price", "Name"); foreach (Listing listing in filteredListings) { Console.WriteLine(string.Format("{0,10} {1}", listing.BuyPrice.ToString("#### ## #0").Trim(), listing.Name)); ConsoleKeyInfo key = Console.ReadKey(true); if (key.Key == ConsoleKey.Escape) { break; } } } else { Console.WriteLine("All of your buy orders have been outbid. Press any key to exit."); Console.ReadKey(true); } }
public static ListingInfo FromListing(Listing listing, MeRequest.ListingType type) { ListingInfo info = new ListingInfo(); switch (type) { case MeRequest.ListingType.BUY: info.Type = ListingInfo.ListingType.BUY; break; case MeRequest.ListingType.SELL: info.Type = ListingInfo.ListingType.SELL; break; default: break; } info.ListingId = listing.ListingId; info.ItemId = listing.DataId; info.ItemName = listing.Name; info.ItemLevel = listing.Level; info.ItemRarity = SpidyData.GetRarityNameFromId(listing.Rarity); info.Quantity = listing.Quantity; info.Price = listing.UnitPrice; info.ListingTime = listing.Created; info.FulfilledTime = listing.Purchased; return info; }
public static void Main(string[] args) { try { Console.Write("Checking for existing key: "); string key = SessionManager.GetInstance().GameSession.Key; ok(); } catch (GameSessionRequiredException) { error(); Console.Write("Locating Guild Wars 2 process: "); Process gw2 = findProcess(m_PROCESS_NAME); if (gw2 == null) { error(); return; } else { ok(); } Console.Write("Locating game session key: "); string key = findSessionKey(gw2); if (key == null) { error(); return; } else { ok(); } SessionManager.GetInstance().GameSession = new Session(key, true); } Console.Write("Retreiving filtered buy listings: "); IList<Listing> buyOrders = new MeRequest(MeRequest.TimeType.NOW, MeRequest.ListingType.BUY) .ExecuteAll() .SelectMany(r => r.Listings) .ToList(); ok(); Console.Write("Filter outbid listings: "); IDictionary<int, ItemData> items = new Dictionary<int, ItemData>(); IList<Listing> filteredListings = buyOrders .Where((listing) => { if (!items.ContainsKey(listing.DataId)) { ItemDataResponse response = new ItemDataRequest(listing.DataId).Execute(); if (response == null) return false; items[listing.DataId] = response.Result; } return items[listing.DataId].MaxOfferUnitPrice <= listing.UnitPrice; }) .ToList(); ok(); if (filteredListings.Count > 0) { Console.WriteLine("{0} of your buy orders have not been outbid.", filteredListings.Count); Console.WriteLine("Orders are displayed in descending order from the date the order was placed."); Console.WriteLine("Press any key to view the next order in the list, or Esc to exit."); Console.WriteLine("{0,-10} {1}", "Price", "Name"); foreach (Listing listing in filteredListings) { Console.WriteLine(string.Format("{0,10} {1}", listing.BuyPrice.ToString("#### ## #0").Trim(), listing.Name)); ConsoleKeyInfo key = Console.ReadKey(true); if (key.Key == ConsoleKey.Escape) break; } } else { Console.WriteLine("All of your buy orders have been outbid. Press any key to exit."); Console.ReadKey(true); } }