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); }
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(); } }
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); }
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); }
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.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); }
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); }
/// <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); }
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); }
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); }