// Only valid for player-owned stations, must use region endpoint for npc stations
        public static List <MarketOrder> GetMarketOrdersByPlayerStation(AccessManager.AuthInfo authInfo, long structureID)
        {
            List <MarketOrder> returnList = new List <MarketOrder>();

            int totalPages = 1;

            for (int i = 0; i < totalPages; i++)
            {
                var client  = new RestClient("https://esi.evetech.net");
                var request = new RestRequest("/latest/markets/structures/" + structureID + "/?page=" + (i + 1));

                Console.WriteLine("Getting " + structureID + " Market Orders: Getting Page " + (i + 1));

                string header = "Bearer " + authInfo.access_token;
                request.AddHeader("Authorization", header);

                var response = client.Get(request);
                var content  = response.Content;

                totalPages = Int32.Parse(response.Headers.ToList().Find(x => x.Name == "X-Pages").Value.ToString());


                returnList.AddRange(JsonConvert.DeserializeObject <List <MarketOrder> >(content));
            }

            return(returnList);
        }
        public static TypeInfo GetTypeInfo(AccessManager.AuthInfo authInfo, long type_id)
        {
            var client  = new RestClient("https://esi.evetech.net");
            var request = new RestRequest("/latest/universe/types/" + type_id);

            Console.WriteLine("Fetching information on type " + type_id);

            string header = "Bearer " + authInfo.access_token;

            request.AddHeader("Authorization", header);

            var response = client.Get(request);
            var content  = response.Content;

            if (response.IsSuccessful == false)
            {
                Console.WriteLine("Failed to acquire type with ID: " + type_id);
                TypeInfo errorType = new TypeInfo();
                errorType.name            = response.StatusDescription;
                errorType.type_id         = type_id;
                errorType.packaged_volume = 1;
                return(errorType);
            }

            return(JsonConvert.DeserializeObject <TypeInfo>(content));
        }
        // Must get all orders in the region for public stations, then filter out unwanted results.
        public static List <MarketOrder> GetMarketOrdersByNPCStation(AccessManager.AuthInfo authInfo, long structureID, long regionID, bool getBuyOrders)
        {
            List <MarketOrder> returnList = new List <MarketOrder>();

            int totalPages = 1;

            for (int i = 0; i < totalPages; i++)
            {
                var         client = new RestClient("https://esi.evetech.net");
                RestRequest request;

                if (getBuyOrders)
                {
                    request = new RestRequest("/latest/markets/" + regionID + "/orders/?page=" + (i + 1) + "&order_type=buy");
                }
                else
                {
                    request = new RestRequest("/latest/markets/" + regionID + "/orders/?page=" + (i + 1) + "&order_type=sell");
                }

                Console.WriteLine("Getting " + regionID + " Region Orders: Getting Page " + (i + 1));

                string header = "Bearer " + authInfo.access_token;
                request.AddHeader("Authorization", header);

                var response = client.Get(request);
                var content  = response.Content;

                if (response.IsSuccessful == false)
                {
                    Console.WriteLine("Error attempting to get market orders by NPC station. Retrying..");
                    i--;
                    continue;
                }

                totalPages = Int32.Parse(response.Headers.ToList().Find(x => x.Name == "X-Pages").Value.ToString());

                var pageList = JsonConvert.DeserializeObject <List <MarketOrder> >(content);

                // Only return items that are in the location we want.

                foreach (var item in pageList)
                {
                    if (item.location_id == structureID)
                    {
                        returnList.Add(item);
                    }
                }
            }

            return(returnList);
        }
示例#4
0
        public static bool DeserializeAuthInfoFromDisk(ref AccessManager.AuthInfo authInfo)
        {
            bool bSuccess = false;

            if (File.Exists(AppDomain.CurrentDomain.BaseDirectory + "authInfo.json"))
            {
                var input = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "authInfo.json");
                authInfo = JsonConvert.DeserializeObject <AccessManager.AuthInfo>(input);
                bSuccess = true;
            }

            return(bSuccess);
        }
        public static CharacterInfo GetCharacterInfo(AccessManager.AuthInfo authInfo)
        {
            var client  = new RestClient("https://login.eveonline.com");
            var request = new RestRequest("oauth/verify", Method.GET);

            string header = "Bearer " + authInfo.access_token;

            request.AddHeader("Authorization", header);

            var response = client.Get(request);
            var content  = response.Content;

            CharacterInfo characterInfo = JsonConvert.DeserializeObject <CharacterInfo>(content);

            return(characterInfo);
        }
示例#6
0
        public static void SerializeAuthInfoToDisk(AccessManager.AuthInfo authInfo)
        {
            string jsonString = JsonConvert.SerializeObject(authInfo);

            File.WriteAllText(AppDomain.CurrentDomain.BaseDirectory + "authInfo.json", jsonString);
        }