String ICardRepository.ShipCards(String MerchantID, String ClerkID, String TerminalID, DateTime LocalTime, String CardToShip, Int32 CountToShip, String TransactionText) { int count; InitializeConnection(); String CleanCardNumber = extractCardNumber(CardToShip); if (CleanCardNumber.Length == 0) { return("BDCRD"); } gp_ShipCard_Result Res = new gp_ShipCard_Result(); for (count = 0; count < CountToShip; count++) { String EncryptedCardNumber = GiftEncryption.Encrypt(CleanCardNumber); Res = GiftEntity.gp_ShipCard( MerchantID, ClerkID, TerminalID, LocalTime, EncryptedCardNumber, TransactionText).FirstOrDefault(); if (Res.ResponseCode != "A") { return(Res.ErrorCode); } CleanCardNumber = increment(CleanCardNumber); } return(Res.ErrorCode); }
void ICardHolderRepository.UpdateCardHolder(EditCardHolderModel WebData, String CardHolderName) { String EncryptedCardHolderName = GiftEncryption.Encrypt(CardHolderName); InitializeConnection(); CardHolder DBCardHolder = (from c in GiftEntity.CardHolders where c.EncryptedCardHolderName == EncryptedCardHolderName select c).FirstOrDefault(); if (DBCardHolder != null) { DBCardHolder.EncryptedFirstName = GiftEncryption.Encrypt(WebData.FirstName); DBCardHolder.LastName = WebData.LastName; DBCardHolder.EncryptedLastName = GiftEncryption.Encrypt(WebData.LastName); DBCardHolder.EncryptedAddress1 = GiftEncryption.Encrypt(WebData.Address1); DBCardHolder.EncryptedAddress2 = GiftEncryption.Encrypt(WebData.Address2); DBCardHolder.EncryptedCity = GiftEncryption.Encrypt(WebData.City); DBCardHolder.State = WebData.State; DBCardHolder.EncryptedPostalCode = GiftEncryption.Encrypt(WebData.PostalCode); DBCardHolder.Country = WebData.Country; String CleanPhoneNumber = extractPhoneNumber(WebData.CellPhoneNumber); DBCardHolder.EncryptedPhone = GiftEncryption.Encrypt(CleanPhoneNumber); DBCardHolder.EncryptedEmail = GiftEncryption.Encrypt(WebData.Email); GiftEntity.SaveChanges(); } }
String ICardRepository.AddCards(String CardToAdd, Int32 CountToAdd, String MerchantID, String ChainName, String GroupCode) { int count; InitializeConnection(); String CleanCardNumber = extractCardNumber(CardToAdd); if (CleanCardNumber.Length == 0) { return("BDCRD"); } String Result = "ERROR"; for (count = 0; count < CountToAdd; count++) { String EncryptedCardNumber = GiftEncryption.Encrypt(CleanCardNumber); String CardLast4 = CleanCardNumber.Substring(CleanCardNumber.Length - 4); Result = AddThisCard(EncryptedCardNumber, CardLast4, MerchantID, ChainName, GroupCode); if (Result != "APP ") { return(Result); } CleanCardNumber = increment(CleanCardNumber); } return(Result); }
bool ICardHolderRepository.CreateCardHolder(CreateCardHolderModel WebData) { CardHolder DBCardHolder = new CardHolder(); DBCardHolder.CardHolderGUID = Guid.NewGuid(); DBCardHolder.EncryptedFirstName = GiftEncryption.Encrypt(WebData.FirstName); DBCardHolder.LastName = WebData.LastName; DBCardHolder.EncryptedLastName = GiftEncryption.Encrypt(WebData.LastName); DBCardHolder.EncryptedCardHolderName = GiftEncryption.Encrypt(WebData.UserName); DBCardHolder.EncryptedEmail = GiftEncryption.Encrypt(WebData.email.ToLower()); DBCardHolder.EncryptedAddress1 = GiftEncryption.Encrypt(WebData.Address1); DBCardHolder.EncryptedAddress2 = GiftEncryption.Encrypt(WebData.Address2); DBCardHolder.EncryptedCity = GiftEncryption.Encrypt(WebData.City); if (WebData.State != null) { DBCardHolder.State = WebData.State.ToUpper(); } DBCardHolder.EncryptedPostalCode = GiftEncryption.Encrypt(WebData.PostalCode); String CleanPhoneNumber = extractPhoneNumber(WebData.CellPhoneNumber); DBCardHolder.EncryptedPhone = GiftEncryption.Encrypt(CleanPhoneNumber); DBCardHolder.Card1 = WebData.Card1GUID; DBCardHolder.Card2 = WebData.Card2GUID; DBCardHolder.Card3 = WebData.Card3GUID; DBCardHolder.Card4 = WebData.Card4GUID; DBCardHolder.Card5 = WebData.Card5GUID; GiftEntity.CardHolders.Add(DBCardHolder); GiftEntity.SaveChanges(); WebData.ID = DBCardHolder.ID; WebData.CardHolderGUID = (Guid)DBCardHolder.CardHolderGUID; return(true); }
// // EncodePassword // Encrypts, Hashes, or leaves the password clear based on the PasswordFormat. // private string EncodePassword(string password) { string encodedPassword = password; encodedPassword = GiftEncryption.EncryptPassword(password); return(encodedPassword); }
Card ICardRepository.GetCard(String CardToFind) { InitializeConnection(); String CleanCardNumber = extractCardNumber(CardToFind); String EncryptedCard = GiftEncryption.Encrypt(CleanCardNumber); Card DBCard = (from c in GiftEntity.Cards where c.CardNumber == EncryptedCard select c).FirstOrDefault(); return(DBCard); }
void ICardRepository.DeactivateCard(String CardToDeactivate) { String CleanCardNumber = extractCardNumber(CardToDeactivate); String EncryptedCard = GiftEncryption.Encrypt(CleanCardNumber); Card DBCard = (from c in GiftEntity.Cards where c.CardNumber == EncryptedCard select c).FirstOrDefault(); DBCard.Activated = "N"; GiftEntity.SaveChanges(); }
CardHolder ICardHolderRepository.GetCardHolderByPhoneNumber(string PhoneNumber) { InitializeConnection(); String CleanPhoneNumber = extractPhoneNumber(PhoneNumber); String EncryptedPhone = GiftEncryption.Encrypt(CleanPhoneNumber); CardHolder DBCardHolder = (from c in GiftEntity.CardHolders where c.EncryptedPhone == EncryptedPhone select c).FirstOrDefault(); return(DBCardHolder); }
CardHolder ICardHolderRepository.GetCardHolder(String CardHolderName) { String EncryptedCardHolderName = GiftEncryption.Encrypt(CardHolderName); using (var GiftEntity = new GiftEntities()) { CardHolder DBCardHolder = (from c in GiftEntity.CardHolders where c.EncryptedCardHolderName == EncryptedCardHolderName select c).FirstOrDefault(); return(DBCardHolder); } }
CardHolder ICardHolderRepository.GetCardholderByEmail(String email) { String EncryptedEmail = GiftEncryption.Encrypt(email); InitializeConnection(); CardHolder DBCardHolder = null; DBCardHolder = (from c in GiftEntity.CardHolders where c.EncryptedEmail == EncryptedEmail select c).FirstOrDefault(); return(DBCardHolder); }
String ICardRepository.FindNextCardToIssue(Guid MerchantGUID) { InitializeConnection(); Card DBCard = (from c in GiftEntity.Cards where c.MerchantGUID == MerchantGUID && c.Activated == "N" select c).FirstOrDefault(); if (DBCard != null) { return(GiftEncryption.Decrypt(DBCard.CardNumber)); } return(null); }
public void MoveToWebFormat(EditCardHolderModel WebData, CardHolder DBData) { WebData.FirstName = GiftEncryption.Decrypt(DBData.EncryptedFirstName); WebData.LastName = DBData.LastName; WebData.Address1 = GiftEncryption.Decrypt(DBData.EncryptedAddress1); WebData.Address2 = GiftEncryption.Decrypt(DBData.EncryptedAddress2); WebData.City = GiftEncryption.Decrypt(DBData.EncryptedCity); WebData.State = DBData.State; WebData.PostalCode = GiftEncryption.Decrypt(DBData.EncryptedPostalCode); WebData.Country = DBData.Country; WebData.CellPhoneNumber = GiftEncryption.Decrypt(DBData.EncryptedPhone); WebData.Email = GiftEncryption.Decrypt(DBData.EncryptedEmail); }
gp_GiftActivateCard_Result ICardRepository.ActivateGiftCard( String MerchantID, String Clerk, String WebOrDial, String MerchantSequenceNumber, String TerminalID, DateTime LocalTime, String CardToActivate, Decimal Amount, String InvoiceNumber) { InitializeConnection(); String CleanCardNumber = extractCardNumber(CardToActivate); String EncryptedCardNumber = GiftEncryption.Encrypt(CleanCardNumber); gp_GiftActivateCard_Result Res = GiftEntity.gp_GiftActivateCard(MerchantID, Clerk, WebOrDial, MerchantSequenceNumber, TerminalID, LocalTime, EncryptedCardNumber, 0, Amount, InvoiceNumber).FirstOrDefault(); return(Res); }
// // CheckPassword // Compares password values based on the MembershipPasswordFormat. // public bool CheckPassword(string password, string dbpassword) { string pass2 = dbpassword; //pass2 = GiftEncryption.DecryptPassword(dbpassword); pass2 = GiftEncryption.EncryptPassword(password); //if (password == pass2) if (pass2 == dbpassword) { return(true); } // Professional_Gift_Card_System.Services.Log.OtherError("Password failed: Entered=" + pass2 + " Database=" + dbpassword); return(false); }
/// <summary> /// linkes the card to the cardholder /// </summary> /// <param name="CardHolderID"></param> /// <param name="CardToRegister"></param> void ICardRepository.RegisterCard(int CardHolderID, Guid?CardHolderGUID, String CardToRegister) { InitializeConnection(); String CleanCardNumber = extractCardNumber(CardToRegister); String EncryptedCard = GiftEncryption.Encrypt(CleanCardNumber); Card DBCard = (from c in GiftEntity.Cards where c.CardNumber == EncryptedCard select c).FirstOrDefault(); if (DBCard != null) { DBCard.CardHolderGUID = CardHolderGUID; GiftEntity.SaveChanges(); } }
CardHolder ICardHolderRepository.RegisterThisCard(String CardHolderName, Guid NewCard) { int cardholderid = 0; InitializeConnection(); String EncryptedCardHolderName = GiftEncryption.Encrypt(CardHolderName); CardHolder DBCardHolder = (from c in GiftEntity.CardHolders where c.EncryptedCardHolderName == EncryptedCardHolderName select c).FirstOrDefault(); if (DBCardHolder == null) { throw new Exception("Card holder not found"); } cardholderid = DBCardHolder.ID; if (DBCardHolder.Card1 == null) { DBCardHolder.Card1 = NewCard; } else if (DBCardHolder.Card2 == null) { DBCardHolder.Card2 = NewCard; } else if (DBCardHolder.Card3 == null) { DBCardHolder.Card3 = NewCard; } else if (DBCardHolder.Card4 == null) { DBCardHolder.Card4 = NewCard; } else if (DBCardHolder.Card5 == null) { DBCardHolder.Card5 = NewCard; } else { throw new Exception("Already five cards registered. Can not register more"); } GiftEntity.SaveChanges(); return(DBCardHolder); }
bool ICardHolderRepository.UpdateEmail(String CardHolderName, String email, String comment, bool isapproved) { InitializeConnection(); String EncryptedUserName = GiftEncryption.Encrypt(CardHolderName); CardHolder DBCardHolder = (from c in GiftEntity.CardHolders where c.EncryptedCardHolderName == EncryptedUserName select c).FirstOrDefault(); if (DBCardHolder == null) { return(false); } DBCardHolder.EncryptedEmail = GiftEncryption.Encrypt(email); GiftEntity.SaveChanges(); return(true); }
gp_GiftBalanceInq_Result ICardRepository.GiftCardInquiry( String MerchantID, String Clerk, String WebOrDial, String MerchantSequenceNumber, String TerminalID, DateTime LocalTime, String CardNumber) { InitializeConnection(); String CleanCardNumber = extractCardNumber(CardNumber); String EncryptedCardNumber = GiftEncryption.Encrypt(CleanCardNumber); gp_GiftBalanceInq_Result Res = GiftEntity.gp_GiftBalanceInq( MerchantID, Clerk, WebOrDial, MerchantSequenceNumber, TerminalID, LocalTime, EncryptedCardNumber).FirstOrDefault(); return(Res); }
// List<String> ICardHolderRepository.CleanExistingPhoneList() // { // using (var GiftEntity = new GiftEntities()) // { // List<String> ToReturn = new List<String>(); // foreach (CardHolder ch in GiftEntity.CardHolders) // { // if (ch.EncryptedPhone != null) // { // String Phone = DecryptValue(ch.EncryptedPhone); // String Line = "<td>" + Phone + "</td><td>" + extractPhoneNumber(Phone) + "</td>"; // ch.EncryptedPhone = EncryptValue(extractPhoneNumber(Phone)); // ToReturn.Add(Line); // } // } // GiftEntity.SaveChanges(); // return ToReturn; // } List <String> ICardHolderRepository.GetPhoneList() { using (var GiftEntity = new GiftEntities()) { List <String> ToReturn = new List <String>(); foreach (CardHolder ch in GiftEntity.CardHolders) { if (ch.EncryptedPhone != null) { String Phone = GiftEncryption.Decrypt(ch.EncryptedPhone); String Line = "<td>" + Phone + "</td><td>" + extractPhoneNumber(Phone) + "</td>"; ToReturn.Add(Line); } } return(ToReturn); } }
EditCardHolderModel ICardHolderRepository.GetWebCardHolder(String CardHolderName) { InitializeConnection(); String EncryptedCardHolderName = GiftEncryption.Encrypt(CardHolderName); CardHolder DBCardHolder = (from c in GiftEntity.CardHolders where c.EncryptedCardHolderName == EncryptedCardHolderName select c).FirstOrDefault(); EditCardHolderModel WebData = new EditCardHolderModel(); if (DBCardHolder == null) { return(WebData); } MoveToWebFormat(WebData, DBCardHolder); return(WebData); }
// This is impossible to do with encrypted data // List<CardHolder> ICardHolderRepository.GetCardHolderPage(int pageNumber, int pageSize) // { // List<CardHolder> CardHolderList = new List<CardHolder>(); // using (var GiftEntity = new GiftEntities()) // { // var CardHolderPage = (from c in GiftEntity.CardHolders // .OrderBy(o => o.CardHolderName) // .Skip(pageSize * pageNumber).Take(pageSize).Select(o => o) // select c); // foreach (CardHolder ch in CardHolderPage) // CardHolderList.Add(ch); // } // return CardHolderList; // } // the problem is how to do the "like" clause when the field is encrypted // List<CardHolder> ICardHolderRepository.ListCardHoldersLike(String CardHolderName, int pageNumber, int pageSize) // { // using (var GiftEntity = new GiftEntities()) // { // List<CardHolder> ToReturn = new List<CardHolder>(); // foreach (CardHolder ch in (from c in GiftEntity.CardHolders // .OrderBy(o => o.CardHolderName) // .Skip(pageSize * pageNumber).Take(pageSize).Select(o => o) // where c.CardHolderName.StartsWith(CardHolderName) // select c)) // { // ToReturn.Add(ch); // } // return ToReturn; // } // } // List<CardHolder> ICardHolderRepository.ListCardHoldersLikeEmail(String CardHolderEmail, int pageNumber, int pageSize) // { // using (var GiftEntity = new GiftEntities()) // { // List<CardHolder> ToReturn = new List<CardHolder>(); // foreach (CardHolder ch in (from c in GiftEntity.CardHolders // .OrderBy(o => o.CardHolderName) // .Skip(pageSize * pageNumber).Take(pageSize).Select(o => o) // where c.email.StartsWith(CardHolderEmail) // select c)) // { // ToReturn.Add(ch); // } // return ToReturn; // } // } bool ICardHolderRepository.DeleteCardHolder(string CardHolderName) { String EncryptedCardHolderName = GiftEncryption.Encrypt(CardHolderName); using (var GiftEntity = new GiftEntities()) { CardHolder DBCardHolder = (from c in GiftEntity.CardHolders where c.EncryptedCardHolderName == EncryptedCardHolderName select c).FirstOrDefault(); if (DBCardHolder == null) { return(false); } GiftEntity.CardHolders.Remove(DBCardHolder); GiftEntity.SaveChanges(); } return(true); }
String ICardRepository.AddCards(String CardToAdd, String LastCardToAdd, String MerchantID, String ChainName, String GroupCode) { InitializeConnection(); String CleanCardNumber = extractCardNumber(CardToAdd); if (CleanCardNumber.Length == 0) { return("BDCRD"); } String CleanLastCardNumber = extractCardNumber(LastCardToAdd); if (CleanLastCardNumber.Length == 0) { return("BDCRD"); } String Result = "ERROR"; // need one more than the difference to include both start and ending number // if the difference is negative, error off with a card error int NumberToAdd = StringDiff(CleanLastCardNumber, CleanCardNumber); if (NumberToAdd < 0) { return("BDCRD"); } NumberToAdd++; while (NumberToAdd > 0) { String EncryptedCardNumber = GiftEncryption.Encrypt(CleanCardNumber); String CardLast4 = CleanCardNumber.Substring(CleanCardNumber.Length - 4); Result = AddThisCard(EncryptedCardNumber, CardLast4, MerchantID, ChainName, GroupCode); if (Result != "APP ") { return(Result); } CleanCardNumber = increment(CleanCardNumber); NumberToAdd--; } return(Result); }
void ICardHolderRepository.UnregisterCard(String CardHolderName, Guid CardToUnregister) { InitializeConnection(); String EncryptedCardHolderName = GiftEncryption.Encrypt(CardHolderName); CardHolder DBCardHolder = (from c in GiftEntity.CardHolders where c.EncryptedCardHolderName == EncryptedCardHolderName select c).FirstOrDefault(); if (DBCardHolder != null) { if (DBCardHolder.Card1 == CardToUnregister) { DBCardHolder.Card1 = DBCardHolder.Card2; DBCardHolder.Card2 = DBCardHolder.Card3; DBCardHolder.Card3 = DBCardHolder.Card4; DBCardHolder.Card4 = DBCardHolder.Card5; DBCardHolder.Card5 = null; } if (DBCardHolder.Card2 == CardToUnregister) { DBCardHolder.Card2 = DBCardHolder.Card3; DBCardHolder.Card3 = DBCardHolder.Card4; DBCardHolder.Card4 = DBCardHolder.Card5; DBCardHolder.Card5 = null; } if (DBCardHolder.Card3 == CardToUnregister) { DBCardHolder.Card3 = DBCardHolder.Card4; DBCardHolder.Card4 = DBCardHolder.Card5; DBCardHolder.Card5 = null; } if (DBCardHolder.Card4 == CardToUnregister) { DBCardHolder.Card4 = DBCardHolder.Card5; DBCardHolder.Card5 = null; } if (DBCardHolder.Card5 == CardToUnregister) { DBCardHolder.Card5 = null; } GiftEntity.SaveChanges(); } }
String ICardRepository.AddCard(String CardToAdd, String MerchantID, String ChainName, String GroupCode) { String Result = "ERROR"; InitializeConnection(); String CleanCardNumber = extractCardNumber(CardToAdd); if (CleanCardNumber.Length == 0) { return("BDCRD"); } String EncryptedCardNumber = GiftEncryption.Encrypt(CleanCardNumber); String CardLast4 = CleanCardNumber.Substring(CleanCardNumber.Length - 4); Result = AddThisCard(EncryptedCardNumber, CardLast4, MerchantID, ChainName, GroupCode); return(Result); }
String ICardHolderRepository.GetCardHolderName(String email) { if (email == null) { return(""); } String EncryptedEmail = GiftEncryption.Encrypt(email); using (var GiftEntity = new GiftEntities()) { CardHolder DBCardHolder = (from c in GiftEntity.CardHolders where c.EncryptedEmail == EncryptedEmail select c).FirstOrDefault(); if (DBCardHolder == null) { return(""); } return(GiftEncryption.Decrypt(DBCardHolder.EncryptedCardHolderName)); } }
String ICardRepository.ShipCards(String MerchantID, String ClerkID, String TerminalID, DateTime LocalTime, String CardToShip, String LastCardToShip, String TransactionText) { InitializeConnection(); String CleanCardNumber = extractCardNumber(CardToShip); if (CleanCardNumber.Length == 0) { return("BDCRD"); } String CleanLastCardNumber = extractCardNumber(LastCardToShip); if (CleanLastCardNumber.Length == 0) { return("BDCRD"); } int NumberToShip = StringDiff(CleanLastCardNumber, CleanCardNumber); if (NumberToShip < 0) { return("BDCRD"); } gp_ShipCard_Result Res = new gp_ShipCard_Result(); while (NumberToShip > 0) { String EncryptedCardNumber = GiftEncryption.Encrypt(CleanCardNumber); Res = GiftEntity.gp_ShipCard( MerchantID, ClerkID, TerminalID, LocalTime, EncryptedCardNumber, TransactionText).FirstOrDefault(); if (Res.ResponseCode != "A") { return(Res.ErrorCode); } CleanCardNumber = increment(CleanCardNumber); NumberToShip--; } return(Res.ErrorCode); }
int ICardHolderRepository.GetCardCount(String CardHolderName) { InitializeConnection(); int count = 0; String EncryptedCardHolderName = GiftEncryption.Encrypt(CardHolderName); CardHolder DBCardHolder = (from c in GiftEntity.CardHolders where c.EncryptedCardHolderName == EncryptedCardHolderName select c).FirstOrDefault(); if (DBCardHolder == null) { throw new Exception("Card holder not found"); } if (DBCardHolder.Card1 != null) { count++; } if (DBCardHolder.Card2 != null) { count++; } if (DBCardHolder.Card3 != null) { count++; } if (DBCardHolder.Card4 != null) { count++; } if (DBCardHolder.Card5 != null) { count++; } return(count); }
// bool ICardHolderRepository.EncryptExistingFile() // { // InitializeConnection(); // var CardHolders = (from c in GiftEntity.CardHolders // select c); // foreach (CardHolder CH in CardHolders) // { // CH.EncryptedFirstName = EncryptValue(CH.FirstName); // CH.EncryptedLastName = EncryptValue(CH.LastName); // CH.EncryptedCardHolderName = EncryptValue(CH.CardHolderName); // CH.EncryptedAddress1 = EncryptValue(CH.Address1); // CH.EncryptedAddress2 = EncryptValue(CH.Address2); // CH.EncryptedPhone = EncryptValue(CH.Phone); // CH.EncryptedEmail = EncryptValue(CH.email); // } // GiftEntity.SaveChanges(); // return true; // } // // bool ICardHolderRepository.VerifyEncryptExistingFile() // { // InitializeConnection(); // var CardHolders = (from c in GiftEntity.CardHolders // select c); // foreach (CardHolder CH in CardHolders) // { // if (CH.FirstName != null) // if (DecryptValue(CH.EncryptedFirstName) != CH.FirstName) // throw new Exception("First name not matching for " + CH.CardHolderName); // if (CH.LastName != null) // if (DecryptValue(CH.EncryptedLastName) != CH.LastName) // throw new Exception("Last name not matching for " + CH.CardHolderName); // if (CH.CardHolderName != null) // if (DecryptValue(CH.EncryptedCardHolderName) != CH.CardHolderName) // throw new Exception("CardHolderName not matching for " + CH.CardHolderName); // if (CH.Address2 != null) // if (DecryptValue(CH.EncryptedAddress1) != CH.Address1) // throw new Exception("Address1 not matching for " + CH.CardHolderName); // if (CH.Address2 != null) // if (DecryptValue(CH.EncryptedAddress2) != CH.Address2) // throw new Exception("Address2 not matching for " + CH.CardHolderName); // if (CH.Phone != null) // if (DecryptValue(CH.EncryptedPhone) != CH.Phone) // throw new Exception("Phone not matching for " + CH.CardHolderName); // if (CH.email != null) // if (DecryptValue(CH.EncryptedEmail) != CH.email) // throw new Exception("Email not matching for " + CH.CardHolderName); // } // return true; // } String ICardHolderRepository.DecryptCardHolderValue(String Value) { return(GiftEncryption.Decrypt(Value)); }
String ICardHolderRepository.EncryptPhone(String Phone) { return(GiftEncryption.Encrypt(extractPhoneNumber(Phone))); }
// returns card number // would like this to return the encrypted card number, // but that would require all sorts of other changes public bool GetCardForTransaction(String MerchantID, String PhoneNumber, out String CardNumber) { CardNumber = ""; // first get the cardholder InitializeConnection(); String CleanPhoneNumber = extractPhoneNumber(PhoneNumber); String EncryptedPhone = GiftEncryption.Encrypt(CleanPhoneNumber); CardHolder DBCardHolder = (from c in GiftEntity.CardHolders where c.EncryptedPhone == EncryptedPhone select c).FirstOrDefault(); // now go down the list of cards to find one that is valid for this merchant Card tCard; if (DBCardHolder == null) { return(false); } if (DBCardHolder.Card1 != null) { tCard = (from c in GiftEntity.Cards where c.CardGUID == DBCardHolder.Card1 select c).FirstOrDefault(); if (tCard != null) { Merchant tMerch = (from m in GiftEntity.Merchants where m.MerchantGUID == tCard.MerchantGUID select m).FirstOrDefault(); if (tMerch != null) { if (tMerch.MerchantID == MerchantID.ToUpper()) { CardNumber = GiftEncryption.Decrypt(tCard.CardNumber); return(true); } } } } if (DBCardHolder.Card2 != null) { tCard = (from c in GiftEntity.Cards where c.CardGUID == DBCardHolder.Card2 select c).FirstOrDefault(); if (tCard != null) { Merchant tMerch = (from m in GiftEntity.Merchants where m.MerchantGUID == tCard.MerchantGUID select m).FirstOrDefault(); if (tMerch != null) { if (tMerch.MerchantID == MerchantID.ToUpper()) { CardNumber = GiftEncryption.Decrypt(tCard.CardNumber); return(true); } } } } if (DBCardHolder.Card3 != null) { tCard = (from c in GiftEntity.Cards where c.CardGUID == DBCardHolder.Card3 select c).FirstOrDefault(); if (tCard != null) { Merchant tMerch = (from m in GiftEntity.Merchants where m.MerchantGUID == tCard.MerchantGUID select m).FirstOrDefault(); if (tMerch != null) { if (tMerch.MerchantID == MerchantID.ToUpper()) { CardNumber = GiftEncryption.Decrypt(tCard.CardNumber); return(true); } } } } if (DBCardHolder.Card4 != null) { tCard = (from c in GiftEntity.Cards where c.CardGUID == DBCardHolder.Card4 select c).FirstOrDefault(); if (tCard != null) { Merchant tMerch = (from m in GiftEntity.Merchants where m.MerchantGUID == tCard.MerchantGUID select m).FirstOrDefault(); if (tMerch != null) { if (tMerch.MerchantID == MerchantID.ToUpper()) { CardNumber = GiftEncryption.Decrypt(tCard.CardNumber); return(true); } } } } if (DBCardHolder.Card5 != null) { tCard = (from c in GiftEntity.Cards where c.CardGUID == DBCardHolder.Card5 select c).FirstOrDefault(); if (tCard != null) { Merchant tMerch = (from m in GiftEntity.Merchants where m.MerchantGUID == tCard.MerchantGUID select m).FirstOrDefault(); if (tMerch != null) { if (tMerch.MerchantID == MerchantID.ToUpper()) { CardNumber = GiftEncryption.Decrypt(tCard.CardNumber); return(true); } } } } return(false); }