Ejemplo n.º 1
0
        public ActionResult UserSchemeDetails(int userId, int userSchemeId)
        {
            AccountSchemeDetails accountSchemeDetails = (new DiscountFactory(Session[Constants.Security.ConnectionStringSessionVariableName].ToString())).GetAccountSchemeDetails(userId,
                                                                                                                                                                                  userSchemeId);

            return(View(accountSchemeDetails));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Gets the user account details and the Discount Scheme details
        /// </summary>
        public AccountSchemeDetails GetAccountSchemeDetails(int userID, int userSchemeId)
        {
            //ge the user acount
            var userAccount = new AccountSchemeDetails {
                DiscountScheme = new UserDiscountScheme()
            };
            var user = PemsEntities.Users.FirstOrDefault(x => x.UserID == userID);

            if (user != null)
            {
                userAccount.AccountExpirationDate   = user.ExpirationDate;
                userAccount.AccountStatus           = user.AccountStatu.AccountStatusDesc;
                userAccount.AccountStatusId         = user.AccountStatu.AccountStatusId;
                userAccount.AccountStatusChangeTime = user.AccountStatusUpdated;
                userAccount.Address1     = user.UserAddress;
                userAccount.Address2     = user.Address2;
                userAccount.City         = user.City;
                userAccount.CreationDate = user.Created;
                userAccount.Email        = user.UserEmail;
                userAccount.FirstName    = user.UserFName;
                //now the teh RBAC user that last modified this.
                if (user.LastEditedUserId.HasValue)
                {
                    userAccount.LastEditiedByUserId   = user.LastEditedUserId.Value;
                    userAccount.LastEditiedByUserName = (new UserFactory()).GetUsername(user.LastEditedUserId.Value);
                }
                userAccount.LastName       = user.UserLName;
                userAccount.LastUserAccess = user.LastUsed;
                userAccount.Notes          = user.UserNote;
                userAccount.Phone          = user.PhoneNumber;
                userAccount.PostalCode     = user.PostalCode;
                userAccount.State          = user.AddressState;
                userAccount.UserId         = user.UserID;

                //CC info
                var card = user.DiscountUserCards.OrderByDescending(x => x.RegisteredTS).FirstOrDefault();
                if (card != null)
                {
                    userAccount.CreditCardExpirationDate = card.CardExpiry;
                    userAccount.CreditCardLast4Digits    = card.CardNumLast4;
                    //now get the most recent transaction base don this cards Hash value
                    var hash = card.PANHash;
                    //not get all transactiosn from the TransactionsCreditCard table that matches this hash.
                    var mostrecentTransaction = PemsEntities.TransactionsCreditCards.OrderByDescending(x => x.TransDateTime).FirstOrDefault(x => x.CardNumHash == hash);
                    if (mostrecentTransaction != null)
                    {
                        userAccount.LastDiscountUsedTime = mostrecentTransaction.TransDateTime;
                        //get the name of the scheme here
                        if (mostrecentTransaction.DiscountScheme != null)
                        {
                            userAccount.LastDiscountUsedName = mostrecentTransaction.DiscountScheme.SchemeName;
                        }
                    }
                }

                //now populate the scheme details
                var scheme = PemsEntities.DiscountUserSchemes.FirstOrDefault(x => x.DiscountUserSchemeId == userSchemeId);
                if (scheme != null)
                {
                    userAccount.DiscountScheme.ApplicationDate       = scheme.CreatedTS;
                    userAccount.DiscountScheme.SchemeName            = scheme.DiscountScheme.SchemeName;
                    userAccount.DiscountScheme.ApplicationStatus     = scheme.DiscountSchemeStatu == null ? "" : scheme.DiscountSchemeStatu.DiscountSchemeStatusDesc;
                    userAccount.DiscountScheme.ApplicationStatusDate = scheme.SchemeStatusDate;
                    userAccount.DiscountScheme.ApplicationStatusNote = scheme.StatusNote;
                    userAccount.DiscountScheme.ExpirationDate        = scheme.ExpiryTS;
                    userAccount.DiscountScheme.ApplicationStatusId   = scheme.DiscountSchemeStatu == null ? 0 : scheme.DiscountSchemeStatu.DiscountSchemeStatusId;
                    userAccount.DiscountScheme.DiscountUserSchemeId  = scheme.DiscountUserSchemeId;
                    //now the teh RBAC user that last modified this.
                    if (scheme.ModifiedByUserId.HasValue)
                    {
                        userAccount.DiscountScheme.LastEditiedByUserId   = scheme.ModifiedByUserId.Value;
                        userAccount.DiscountScheme.LastEditiedByUserName = (new UserFactory()).GetUsername(scheme.ModifiedByUserId.Value);
                    }
                }
            }
            return(userAccount);
        }