Ejemplo n.º 1
0
        public IAucResponse GetAucResponse()
        {
            IAucResponse  response     = null;
            IWebApiClient webApiClient = new WebApiClient(Resources.Locale, Resources.ApiKey);
            string        responseStr  = webApiClient.GetAucResponseStr();

            IResponseParser parser = new ResponseParser();

            response = parser.ParseAucResponse(responseStr);

            return(response);
        }
Ejemplo n.º 2
0
        public IAucResponse ParseAucResponse(string responseStr)
        {
            IAucResponse response = null;

            if (String.IsNullOrEmpty(responseStr))
            {
                return(null);
            }

            try
            {
                DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(AucResponse));
                response = (AucResponse)json.ReadObject(new System.IO.MemoryStream(Encoding.UTF8.GetBytes(responseStr)));
            }
            catch (Exception e)
            {
                throw new ApplicationException("Не удалось прочитать ответ с сервера API.", e);
            }

            return(response);
        }
Ejemplo n.º 3
0
        public void ParseAucResponseTest()
        {
            // Проверяет парсится ли отчет от сервака на запрос данных аука.

            // Arange
            IAucResponse   aucResponse = null;
            ResponseParser parser      = new ResponseParser();

            // Act
            aucResponse = parser.ParseAucResponse(aucApiResponse);

            // Assert
            Assert.IsNotNull(aucResponse, "ParseAucResponseTest. Получен пустой ответ.");
            Assert.IsNotNull(aucResponse.Files, "ParseAucResponseTest. Получен пустой ответ для Files.");
            Assert.AreNotEqual(aucResponse.Files.Count(), String.Format("ParseAucResponseTest. Прочитали Files {0}, а должно быть {1}", aucResponse.Files.Count(), 1));

            string url = @"http://auction-api-eu.worldofwarcraft.com/auction-data/4dd7055b110e4cfb3db4c4cc3b3341f3/auctions.json";

            Assert.AreNotSame(url, aucResponse.Files.First().Url);
            Assert.AreNotSame("1466319264000", aucResponse.Files[0].LastModified);
        }
Ejemplo n.º 4
0
        public IAucJsonFile GetAucJsonFile(out DateTime lastModifyDate)
        {
            try
            {
                IAucJsonFile response    = null;
                IAucResponse aucResponse = GetAucResponse();

                DateTime baseDateTime = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
                lastModifyDate = baseDateTime.AddMilliseconds(aucResponse.Files.First().LastModified).ToLocalTime();

                IWebApiClient webApiClient = new WebApiClient(Resources.Locale, Resources.ApiKey);
                string        file         = webApiClient.GetAucFile(aucResponse.Files[0].Url);

                IResponseParser parser = new ResponseParser();
                response = parser.ParseAucJsonFile(file);

                return(response);
            }
            catch (Exception e)
            {
                throw;
            }
        }