コード例 #1
0
        public void DeserializeStockPriceResponse()
        {
            var serializer = new RestClientSerializer();

            var id   = Guid.NewGuid();
            var json = "{\"id\":\"" + id + "\","
                       + "\"asxCode\":\"ABC\","
                       + "\"name\":\"ABC Pty Ltd\","
                       + "\"closingPrices\":["
                       + "{\"date\":\"2000-01-02\",\"price\":12.00},"
                       + "{\"date\":\"2000-01-03\",\"price\":13.00}"
                       + "]}";

            var command = serializer.Deserialize <StockPriceResponse>(json);

            var expected = new StockPriceResponse()
            {
                Id      = id,
                AsxCode = "ABC",
                Name    = "ABC Pty Ltd"
            };

            expected.AddClosingPrice(new Date(2000, 01, 02), 12.00m);
            expected.AddClosingPrice(new Date(2000, 01, 03), 13.00m);

            command.Should().BeEquivalentTo(expected);
        }
コード例 #2
0
        public static StockPriceResponse ToPriceResponse(this Stock stock, DateRange dateRange)
        {
            var stockProperties = stock.Properties.ClosestTo(dateRange.ToDate);

            var result = new StockPriceResponse()
            {
                Id      = stock.Id,
                AsxCode = stockProperties.AsxCode,
                Name    = stockProperties.Name
            };

            foreach (var price in stock.GetPrices(dateRange))
            {
                result.AddClosingPrice(price.Date, price.Price);
            }

            return(result);
        }