示例#1
0
        public static void FillCardHoldersWithFakeData(AtmEntities dbContext, CardHolderRepository userRepo)
        {
            dbContext.Configuration.AutoDetectChangesEnabled = false;
            dbContext.Configuration.ValidateOnSaveEnabled    = false;
            var randomDataProvider = new RandomDataProvider();

            int length = FakeDataCount - userRepo.GetAll().Count();

            for (int i = 0; i < length; i++)
            {
                var currentCardHolder = new CardHolder()
                {
                    Name = randomDataProvider.GetFirstName() + " " + randomDataProvider.GetStringExact(1, RandomDataType.BigLetters) + " " + randomDataProvider.GetLastName()
                };

                userRepo.Insert(currentCardHolder);

                if (i % 133 == 0) // Randomly chosen value
                {
                    dbContext.SaveChanges();
                }
            }

            dbContext.Configuration.AutoDetectChangesEnabled = true;
            dbContext.Configuration.ValidateOnSaveEnabled    = true;
        }
示例#2
0
        // Routine to map phone number in card number field into card
        // this uses simply the first card registered to that phone number
        // that is valid at this merchant

        private bool MapPhoneToCardNumber(String MerchantID, String EnteredCardNumber, out String CardNumber)
        {
            CardNumber = EnteredCardNumber;

            // first, if this does not look like a phone number, return it.

            if (EnteredCardNumber.Length != 13)
            {
                return(true);
            }
            if (EnteredCardNumber.Substring(0, 3) != "000")
            {
                return(true);
            }

            // ok, we have something that looks like it might be a phone number

            String PhoneNumber = EnteredCardNumber.Substring(3);
            ICardHolderRepository CardHolderData = new CardHolderRepository();
            String CardToUse;

            if (!CardHolderData.GetCardForTransaction(MerchantID, PhoneNumber, out CardToUse))
            {
                return(false);
            }
            if (CardToUse.Trim().Length > 0)
            {
                CardNumber = CardToUse.Trim();
                return(true);
            }

            return(true);
        }
示例#3
0
        private static void Main(string[] args)
        {
            using (var dbContext = new AtmEntities())
            {
                var userRepo               = new CardHolderRepository(dbContext);
                var cardAccountRepo        = new CardAccountRepository(dbContext);
                var transactionHystoryRepo = new TransactionHistoryRepository(dbContext);
                var consoleHandler         = ConsoleHandler.Instance;
                FakeDataFiller.FillCardHoldersWithFakeData(dbContext, userRepo);
                dbContext.SaveChanges();
                consoleHandler.PrintLine("Card holders faking finished.");
                var cardHoldersIds = userRepo.GetAll().Select(u => u.Id).ToList();
                FakeDataFiller.FillCardAccountsWithFakeData(dbContext, cardAccountRepo, cardHoldersIds);
                dbContext.SaveChanges();
                consoleHandler.PrintLine("Card accounts faking finished.");

                var card = GetCredentials(cardAccountRepo);
                if (card != null)
                {
                    if (WithdrawSum(dbContext, cardAccountRepo, transactionHystoryRepo, card))
                    {
                        consoleHandler.PrintLine("Withdraw successful.");
                    }
                }
            }
        }
示例#4
0
        private static void Main(string[] args)
        {
            using (var dbContext = new AtmEntities())
            {
                var userRepo = new CardHolderRepository(dbContext);
                var cardAccountRepo = new CardAccountRepository(dbContext);
                var transactionHystoryRepo = new TransactionHistoryRepository(dbContext);
                var consoleHandler = ConsoleHandler.Instance;
                FakeDataFiller.FillCardHoldersWithFakeData(dbContext, userRepo);
                dbContext.SaveChanges();
                consoleHandler.PrintLine("Card holders faking finished.");
                var cardHoldersIds = userRepo.GetAll().Select(u => u.Id).ToList();
                FakeDataFiller.FillCardAccountsWithFakeData(dbContext, cardAccountRepo, cardHoldersIds);
                dbContext.SaveChanges();
                consoleHandler.PrintLine("Card accounts faking finished.");

                var card = GetCredentials(cardAccountRepo);
                if (card != null)
                {
                    if(WithdrawSum(dbContext, cardAccountRepo, transactionHystoryRepo, card))
                    {
                        consoleHandler.PrintLine("Withdraw successful.");
                    }
                }
            }
        }
示例#5
0
        void ICardHolderService.RegisterNewCard(String CardHolderName, String CardNumber)
        {
            using (GiftEntities GiftEntity = new GiftEntities())
            {
                ICardHolderRepository tCardHolderRepository = new CardHolderRepository(GiftEntity);
                ICardRepository       tCardRespository      = new CardRepository(GiftEntity);
                Card tCard = tCardRespository.GetCard(CardNumber);
                if (tCard == null)
                {
                    throw new Exception("Card not on file");
                }
                if (tCard.Activated != "Y")
                {
                    throw new Exception("Card not activated yet");
                }
                if (tCard.CardHolderGUID != null)
                {
                    throw new Exception("Card already registered to someone else");
                }

                CardHolder tCardHolder = tCardHolderRepository.RegisterThisCard(CardHolderName, tCard.CardGUID);
                if (tCardHolder != null)
                {
                    tCardRespository.RegisterCard(tCardHolder.ID, tCardHolder.CardHolderGUID, CardNumber);
                }
            }
        }
示例#6
0
        List <CardHolderHistoryItem> ICardHolderService.GetCardHistory(String CardHolderName, int CardID)
        {
            using (GiftEntities GiftEntity = new GiftEntities())
            {
                List <CardHolderHistoryItem> Results = new List <CardHolderHistoryItem>();
                ICardHolderRepository        tCardHolderRepository = new CardHolderRepository(GiftEntity);
                CardHolder  DBCardHolder       = tCardHolderRepository.GetCardHolder(CardHolderName);
                IHistoryDAO tHistoryRepository = new HistoryDAO(GiftEntity);

                List <CardHistory> cHistory = tHistoryRepository.GetCardHistory(CardID);
                foreach (CardHistory ch in cHistory)
                {
                    if (ch.TransType != "SHIP")
                    {
                        CardHolderHistoryItem HI = new CardHolderHistoryItem();
                        HI.When         = ch.When.ToShortDateString();
                        HI.Where        = ch.MerchWhere;
                        HI.WhatHappened = ch.Transaction;
                        HI.Amount       = ch.Amount.ToString();
                        if (ch.PointsGranted != null)
                        {
                            HI.PointsAwarded = ch.PointsGranted.ToString();
                        }
                        HI.Description = ch.Text;
                        Results.Add(HI);
                    }
                }
                return(Results);
            }
        }
示例#7
0
        public static void FillCardHoldersWithFakeData(AtmEntities dbContext, CardHolderRepository userRepo)
        {
            dbContext.Configuration.AutoDetectChangesEnabled = false;
            dbContext.Configuration.ValidateOnSaveEnabled = false;
            var randomDataProvider = new RandomDataProvider();

            int length = FakeDataCount - userRepo.GetAll().Count();
            for (int i = 0; i < length; i++)
            {
                var currentCardHolder = new CardHolder()
                {
                    Name = randomDataProvider.GetFirstName() + " " + randomDataProvider.GetStringExact(1, RandomDataType.BigLetters) + " " + randomDataProvider.GetLastName()
                };

                userRepo.Insert(currentCardHolder);

                if (i % 133 == 0) // Randomly chosen value
                {
                    dbContext.SaveChanges();
                }
            }

            dbContext.Configuration.AutoDetectChangesEnabled = true;
            dbContext.Configuration.ValidateOnSaveEnabled = true;
        }
示例#8
0
        EditCardHolderModel ICardHolderService.FindCardHolder(String PhoneNumber, String EmailAddress)
        {
            using (GiftEntities GiftEntity = new GiftEntities())
            {
                EditCardHolderModel   WebData = new EditCardHolderModel();
                CardHolder            CardH   = new CardHolder();
                ICardHolderRepository tCardHolderRepository = new CardHolderRepository(GiftEntity);
                if (PhoneNumber != null)
                {
                    CardH = tCardHolderRepository.GetCardHolderByPhoneNumber(PhoneNumber);
                    if (CardH != null)
                    {
                        tCardHolderRepository.MoveToWebFormat(WebData, CardH);
                    }
                    else
                    {
                        return(null);
                    }
                }
                else
                {
                    CardH = tCardHolderRepository.GetCardholderByEmail(EmailAddress);
                    if (CardH != null)
                    {
                        tCardHolderRepository.MoveToWebFormat(WebData, CardH);
                    }
                    else
                    {
                        return(null);
                    }
                }

                return(WebData);
            }
        }
示例#9
0
 void ICardHolderService.UpdateCardHolder(EditCardHolderModel WebData, String CardHolderName)
 {
     using (var GiftEntity = new GiftEntities())
     {
         ICardHolderRepository tCardHolderRepository = new CardHolderRepository(GiftEntity);
         tCardHolderRepository.UpdateCardHolder(WebData, CardHolderName);
     }
 }
示例#10
0
        /// <summary>
        /// Gets a single cardholder for editing
        /// </summary>
        /// <param name="CardHolderName"></param>
        /// <returns></returns>
        EditCardHolderModel ICardHolderService.GetCardHolder(String CardHolderName)
        {
            using (GiftEntities GiftEntity = new GiftEntities())
            {
                ICardHolderRepository tCardHolderRepository = new CardHolderRepository(GiftEntity);
                EditCardHolderModel   WebData = tCardHolderRepository.GetWebCardHolder(CardHolderName);

                return(WebData);
            }
        }
示例#11
0
 /// <summary>
 /// Returns the balance for a specific card
 /// </summary>
 /// <param name="CardHolderName"></param>
 /// <param name="CardNumber"></param>
 /// <returns></returns>
 GiftCardBalance ICardHolderService.GetCardBalance(String CardHolderName, int ID)
 {
     using (GiftEntities GiftEntity = new GiftEntities())
     {
         ICardHolderRepository tCardHolderRepository = new CardHolderRepository(GiftEntity);
         CardHolder            DBCardHolder          = tCardHolderRepository.GetCardHolder(CardHolderName);
         Guid                   CardGUID             = WhichCard(DBCardHolder, ID);
         ICardRepository        tCardRespository     = new CardRepository(GiftEntity);
         List <GiftCardBalance> CBList = tCardRespository.GiftBalance(CardGUID);
         GiftCardBalance        CB     = new GiftCardBalance();
         CB    = CBList[0];
         CB.ID = ID;
         return(CB);
     }
 }
        public ContentResult PhoneList()
        {
            ICardHolderRepository CardHolderServiceInstance = new CardHolderRepository();
            List <String>         cDump = CardHolderServiceInstance.GetPhoneList();
            StringBuilder         Page  = new StringBuilder();

            Page.Append("<table>");
            foreach (String s in cDump)
            {
                Page.Append("<tr>");
                Page.Append(s);
                Page.Append("</tr>");
            }
            Page.Append("</table>");

            return(Content(Page.ToString()));
        }
示例#13
0
 void ICardHolderService.UnregisterCard(String CardHolderName, String IDstr)
 {
     using (GiftEntities GiftEntity = new GiftEntities())
     {
         ICardHolderRepository tCardHolderRepository = new CardHolderRepository(GiftEntity);
         CardHolder            DBCardHolder          = tCardHolderRepository.GetCardHolder(CardHolderName);
         ICardRepository       tCardRespository      = new CardRepository(GiftEntity);
         int  ID       = Convert.ToInt32(IDstr);
         Guid CardGUID = WhichCard(DBCardHolder, ID);
         Card DBCard   = tCardRespository.GetCard(CardGUID);
         if (DBCard != null)
         {
             tCardHolderRepository.UnregisterCard(CardHolderName, CardGUID);
             tCardRespository.UnregisterCard(CardGUID);
         }
     }
 }
示例#14
0
        //
        // MembershipProvider.GetCardHolderByEmail
        //
        // This should be part of the provider, but I can't figure out how to
        // extend the provider class with more methods

        public string GetCardHolderByEmail(string email)
        {
            String username = "";

            try
            {
                ICardHolderRepository CardHolderRepository = new CardHolderRepository();
                username = CardHolderRepository.GetCardHolderName(email);
            }
            catch (Exception e)
            {
                WriteToEventLog(e, "GetCardHolderByEmail");

                throw e;
            }
            if (username == null)
            {
                username = "";
            }

            return(username);
        }
示例#15
0
        /// <summary>
        /// returns all the gift card balances for cards registered to this user
        /// </summary>
        /// <param name="CardHolderName"></param>
        /// <returns></returns>
        List <GiftCardBalance> ICardHolderService.GetCardHolderGiftCardBalances(String CardHolderName)
        {
            // was going to put this in a try catch block,
            // but the exception needs to go back to the screen

            List <GiftCardBalance> Results = new List <GiftCardBalance>();

            using (GiftEntities GiftEntity = new GiftEntities())
            {
                ICardHolderRepository tCardHolderRepository = new CardHolderRepository(GiftEntity);
                CardHolder            DBCardHolder          = tCardHolderRepository.GetCardHolder(CardHolderName);
                if (DBCardHolder == null)
                {
                    DBCardHolder = new CardHolder();
                }
                ICardRepository        tCardRespository = new CardRepository(GiftEntity);
                List <GiftCardBalance> CBList;

                if (DBCardHolder.Card1 != null)
                {
                    CBList = tCardRespository.GiftBalance((Guid)DBCardHolder.Card1);
                    foreach (GiftCardBalance CB in CBList)
                    {
                        CB.ID = 1;
                        Results.Add(CB);
                    }
                }
                if (DBCardHolder.Card2 != null)
                {
                    CBList = tCardRespository.GiftBalance((Guid)DBCardHolder.Card2);
                    foreach (GiftCardBalance CB in CBList)
                    {
                        CB.ID = 2;
                        Results.Add(CB);
                    }
                }
                if (DBCardHolder.Card3 != null)
                {
                    CBList = tCardRespository.GiftBalance((Guid)DBCardHolder.Card3);
                    foreach (GiftCardBalance CB in CBList)
                    {
                        CB.ID = 3;
                        Results.Add(CB);
                    }
                }
                if (DBCardHolder.Card4 != null)
                {
                    CBList = tCardRespository.GiftBalance((Guid)DBCardHolder.Card4);
                    foreach (GiftCardBalance CB in CBList)
                    {
                        CB.ID = 4;
                        Results.Add(CB);
                    }
                }
                if (DBCardHolder.Card5 != null)
                {
                    CBList = tCardRespository.GiftBalance((Guid)DBCardHolder.Card5);
                    foreach (GiftCardBalance CB in CBList)
                    {
                        CB.ID = 5;
                        Results.Add(CB);
                    }
                }

                return(Results);
            }
        }
示例#16
0
        //
        // MembershipProvider.CreateCardHolder
        //

        public MembershipUser CreateCardHolder(
            CreateCardHolderModel WebData,
            out MembershipCreateStatus status)
        {
            MembershipUser user = null;

            // generate this user's username

            WebData.UserName = GenerateUserName(WebData.FirstName, WebData.LastName);

            // insure uniqueness by email address

            if (GetCardHolderByEmail(WebData.email) != "")
            {
                status = MembershipCreateStatus.DuplicateEmail;
                return(null);
            }

            // verify unique cardholder phone number

            ICardHolderRepository CardHolderRepositoryI = new CardHolderRepository();
            CardHolder            CH = CardHolderRepositoryI.GetCardHolderByPhoneNumber(WebData.CellPhoneNumber);

            if (CH != null)
            {
                status = MembershipCreateStatus.DuplicateProviderUserKey;
                return(null);
            }

            using (GiftEntities GiftEntity = new GiftEntities())
            {
                ICardHolderRepository CardHolderRepository = new CardHolderRepository(GiftEntity);
                ICardRepository       CardService          = new CardRepository(GiftEntity);


                // get the information for each card to be registered

                if (WebData.Card1 != null)
                {
                    Card tCard = CardService.GetCard(WebData.Card1);
                    if (tCard != null)
                    {
                        WebData.Card1GUID = tCard.CardGUID;
                    }
                }
                if (WebData.Card2 != null)
                {
                    Card tCard = CardService.GetCard(WebData.Card2);
                    if (tCard != null)
                    {
                        WebData.Card2GUID = tCard.CardGUID;
                    }
                }
                if (WebData.Card3 != null)
                {
                    Card tCard = CardService.GetCard(WebData.Card3);
                    if (tCard != null)
                    {
                        WebData.Card3GUID = tCard.CardGUID;
                    }
                }
                if (WebData.Card4 != null)
                {
                    Card tCard = CardService.GetCard(WebData.Card4);
                    if (tCard != null)
                    {
                        WebData.Card4GUID = tCard.CardGUID;
                    }
                }
                if (WebData.Card5 != null)
                {
                    Card tCard = CardService.GetCard(WebData.Card5);
                    if (tCard != null)
                    {
                        WebData.Card5GUID = tCard.CardGUID;
                    }
                }



                // create the cardholder record

                if (!CardHolderRepository.CreateCardHolder(WebData))
                {
                    status = MembershipCreateStatus.UserRejected;
                }
                else
                {
                    status = MembershipCreateStatus.Success;

                    user = _provider.CreateUser(WebData.UserName, WebData.Password, WebData.email, WebData.passwordQuestion, WebData.passwordAnswer, WebData.isApproved, WebData.providerUserKey, out status);
                    AddUserToCardHolderRole(WebData.UserName);

                    if (WebData.Card1 != null)
                    {
                        if (WebData.Card1.Length > 0)
                        {
                            CardService.RegisterCard(WebData.ID, WebData.CardHolderGUID, WebData.Card1);
                        }
                    }
                    if (WebData.Card2 != null)
                    {
                        if (WebData.Card2.Length > 0)
                        {
                            CardService.RegisterCard(WebData.ID, WebData.CardHolderGUID, WebData.Card2);
                        }
                    }
                    if (WebData.Card3 != null)
                    {
                        if (WebData.Card3.Length > 0)
                        {
                            CardService.RegisterCard(WebData.ID, WebData.CardHolderGUID, WebData.Card3);
                        }
                    }
                    if (WebData.Card4 != null)
                    {
                        if (WebData.Card4.Length > 0)
                        {
                            CardService.RegisterCard(WebData.ID, WebData.CardHolderGUID, WebData.Card4);
                        }
                    }
                    if (WebData.Card5 != null)
                    {
                        if (WebData.Card5.Length > 0)
                        {
                            CardService.RegisterCard(WebData.ID, WebData.CardHolderGUID, WebData.Card5);
                        }
                    }
                }
            }

            return(user);
        }
示例#17
0
        int ICardHolderService.GetCardCount(String CardHolderName)
        {
            ICardHolderRepository tCardHolderRepository = new CardHolderRepository();

            return(tCardHolderRepository.GetCardCount(CardHolderName));
        }