コード例 #1
0
 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();
 }
コード例 #2
0
        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;
        }