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