Exemple #1
0
        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);
        }
Exemple #3
0
        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;
        }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
        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;
        }
Exemple #6
0
        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);
            }
        }