public CardResponseModel(AccessCard card) { this.Balance = card.PurseBalance; this.Name = card.Name; this.CardNumber = card.CardNumber; this.Tickets = card.Tickets.Select(ticket => new TicketModel(ticket)).ToList(); }
public async Task<List<AccessCard>> GetAccessCards(string partyRef) { string cardsPath = "/ext/mittsl/api/travel_card.json?queryproperty=owner.ref&value=" + partyRef; var cardsPageResponse = await this.HttpClient.GetAsync(cardsPath).ConfigureAwait(false); if (!cardsPageResponse.IsSuccessStatusCode) { throw new HttpRequestException("Request faild, response code: " + cardsPageResponse.StatusCode); } var cards = await cardsPageResponse.Content.ReadJsonAsTypeAsync<ResultDataResponse<TravelCardListResponse>>(); var accessCards = new List<AccessCard>(); foreach (var card in cards.Result.Cards) { var cardDetailsUrl = "/ext/mittsl/api/" + card.Card.Href + ".json"; var detailsResponse = await this.HttpClient.GetAsync(cardDetailsUrl); var details = await detailsResponse.Content.ReadJsonAsTypeAsync<ResultDataResponse<TravelCardResponse>>(); var travelCard = details.Result.TravelCard; var accessCard = new AccessCard { Blocked = travelCard.Blocked, BlockedAt = travelCard.BlockedDate, CardNumber = travelCard.SerialNumber, Name = travelCard.Name, CardStatus = travelCard.Details.Status, ExpireDate = travelCard.Details.ExpireDate, PurseBalance = travelCard.Details.PurseValue, PurseBlocked = travelCard.Details.PurseBlocked }; if (travelCard.Products != null) { accessCard.Tickets = travelCard.Products.Select(product => new Ticket { Name = product.ProductType, Active = product.Active, Blocked = product.Blocked, Expires = product.EndDate, Price = product.ProductPrice, ValidFrom = product.StartDate }).ToList(); } accessCards.Add(accessCard); } return accessCards; }