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); }
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); }
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); }
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; } }