public ActionResult UserSchemeDetails(int userId, int userSchemeId) { AccountSchemeDetails accountSchemeDetails = (new DiscountFactory(Session[Constants.Security.ConnectionStringSessionVariableName].ToString())).GetAccountSchemeDetails(userId, userSchemeId); return(View(accountSchemeDetails)); }
/// <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); }