Exemplo n.º 1
0
        public async Task <FullInfoBonusCardModel> SearchBonusCard(string CardOrPhoneNumber)
        {
            SearchBonusCardApiModel searchBonusCardApiModel = new SearchBonusCardApiModel();

            searchBonusCardApiModel.CardOrPhoneNumber = CardOrPhoneNumber;

            using (HttpResponseMessage response = await apiClient.PostAsJsonAsync(ApiRoutes.SearchBonusCard, searchBonusCardApiModel).ConfigureAwait(false))
            {
                var result = await response.Content.ReadAsAsync <FullInfoBonusCard>();

                if (response.IsSuccessStatusCode && result.ErrorMessage == null)
                {
                    _fullInfoBonusCardModel.CardNumber     = result.CardNumber;
                    _fullInfoBonusCardModel.Balance        = result.Balance;
                    _fullInfoBonusCardModel.ExpirationDate = result.ExpirationDate;
                    _fullInfoBonusCardModel.FirstName      = result.FirstName;
                    _fullInfoBonusCardModel.LastName       = result.LastName;
                    _fullInfoBonusCardModel.PhoneNumber    = result.PhoneNumber;
                    return(_fullInfoBonusCardModel); //result;
                }
                else
                {
                    throw new Exception(response.ReasonPhrase);
                }
            }
        }
Exemplo n.º 2
0
        public async Task <FullInfoBonusCard> SearchBonusCard([FromBody] SearchBonusCardApiModel searchBonus)
        {
            // Make sure we have a number
            if (searchBonus?.CardOrPhoneNumber == null || string.IsNullOrWhiteSpace(searchBonus.CardOrPhoneNumber))
            {
                return new FullInfoBonusCard()
                       {
                           ErrorMessage = "Invalid card or phone number"
                       }
            }
            ;

            // Is it phone number?
            var isPhoneNumber = searchBonus.CardOrPhoneNumber.Length > 6 && searchBonus.CardOrPhoneNumber.Length <= 10;

            var bonusCard = isPhoneNumber ?
                            Context.Clients.Include(p => p.BonusCard).FirstOrDefault(p => p.PhoneNumber.Equals(searchBonus.CardOrPhoneNumber)) :
                            Context.Clients.Include(p => p.BonusCard).FirstOrDefault(p => p.BonusCard.CardNumber.Equals(searchBonus.CardOrPhoneNumber));

            // If we failed to find a card...
            if (bonusCard == null)
            {
                return new FullInfoBonusCard()
                       {
                           ErrorMessage = "Card not found"
                       }
            }
            ;

            var newClient = new Client
            {
                ClientId    = bonusCard.ClientId,
                FirstName   = bonusCard.FirstName,
                LastName    = bonusCard.LastName,
                PhoneNumber = bonusCard.PhoneNumber
            };
            var newbonusCard = new BonusCard
            {
                ClientId       = newClient.ClientId,
                CardNumber     = bonusCard.BonusCard.CardNumber,
                Balance        = bonusCard.BonusCard.Balance,
                ExpirationDate = bonusCard.BonusCard.ExpirationDate
            };


            return(new FullInfoBonusCard()
            {
                FirstName = newClient.FirstName,
                LastName = newClient.LastName,
                PhoneNumber = newClient.PhoneNumber,
                CardNumber = newbonusCard.CardNumber,
                Balance = newbonusCard.Balance,
                ExpirationDate = newbonusCard.ExpirationDate
            });
        }