/// <summary>
        /// Load the BO profile code and value for the card to be topped-up besides loading the SB BO data object
        /// </summary>
        /// <returns></returns>
        public bool LoadCardInfoIntoSession(BO_CardOverviewResponse pBO_Res)
        {
            try
            {
                WriteLogEntry("LoadCardInfoIntoSession", _NavigationState.SB_Card.CardNumber + ":Start");

                CardManager lCardManager = new CardManager();

                Card lcard = new Card();
                lcard.CardNumber = NavigationState.SB_Card.CardNumber;
                NavigationState.SB_Card.SB_BOdata = lCardManager.GetBackofficeDataForCard(lcard, pBO_Res);

                if (NavigationState.SB_Card.SB_BOdata == null)
                {
                    return(false);
                }

                WriteLogEntry("LoadCardInfoIntoSession", _NavigationState.SB_Card.CardNumber + ":Completed");

                return(true);
            }
            catch (Exception ex)
            {
                if (!ExceptionHandler.IsUserFriendly(ex))
                {
                    ExceptionHandler.handle(ex);
                    return(false);
                }
                else
                {
                    throw ex;
                }
            }
        }
        public void LoadCardProfile(BO_CardOverviewResponse pBO_Res)
        {
            if (pBO_Res.CardOverview != null)
            {
                NavigationState.SB_Card.CardProfileCode = pBO_Res.CardOverview.CardProfile;

                //Get the code value using the profile code
                if (NavigationState.SB_Card.CardProfileCode != -1)
                {
                    NavigationState.SB_Card.CardProfileValue = new CardManager().GetCardProfileByCodeValue(NavigationState.SB_Card.CardProfileCode.Value).Code_Description;
                    NavigationState.SB_Card.IsPersonalized   = CardManager.IsPersonalizedCardProfile((int)NavigationState.SB_Card.CardProfileCode);
                }
            }
        }
Example #3
0
        /// <summary>
        /// Perform the registration process
        /// </summary>
        /// <returns>If the operation completed successfully</returns>
        protected bool GoForRegisretingCard()
        {
            bool   lRegisterCardCompleted = false;
            string lBackendID             = _CardManager.GetBackendIDForCard(_NavigationState.RegisteredCard);

            #region Get Card profile

            //add the card profile to the cardregistered object
            _NavigationState.RegisteredCard.CardRegistered.CardProfileCode = _CardManager.GetCardProfileCode(_NavigationState.RegisteredCard.CardNumber);

            if (_NavigationState.RegisteredCard.CardRegistered.CardProfileCode == -1)
            {
                lRegisterCardCompleted = false;

                NavigationState.RegistrationResultMsg = "CardManagement|BONotConnected";

                WriteLogEntry("GoForRegisretingCard", "Retrieving card profile for Card:" + _NavigationState.RegisteredCard.CardNumber + " Failed");

                return(lRegisterCardCompleted);
            }

            #endregion

            #region Get card expiry date

            //add the expiry date to the card registered
            BO_CardOverviewResponse resOverview = _CardManager.GetCardDetails(_NavigationState.RegisteredCard.CardNumber);
            if (resOverview == null || resOverview.CardOverview == null)
            {
                lRegisterCardCompleted = false;
                NavigationState.RegistrationResultMsg = "CardManagement|BONotConnected";

                WriteLogEntry("GoForRegisretingCard", "Retrieving card expiry date for Card:" + _NavigationState.RegisteredCard.CardNumber + " Failed");

                return(lRegisterCardCompleted);
            }
            _NavigationState.RegisteredCard.CardRegistered.CardExpiryDate = resOverview.CardOverview.CardExpiryDate;

            #endregion

            WriteLogEntry("GoForRegisretingCard", _NavigationState.RegisteredCard.CardNumber + ":Backend ID:" + lBackendID);

            //if the backend id is existing on BO, just save it on DB without calling the registration BO
            if (lBackendID != string.Empty)
            {
                _NavigationState.RegisteredCard.CardRegistered.BackEnd_ID = lBackendID;

                if (NavigationState.TempCardHolderContact != null)
                {
                    CloneContact(NavigationState.TempCardHolderContact, NavigationState.Contact);
                }

                if (_CardManager.IsCardRegistered(this._NavigationState.RegisteredCard.CardNumber))
                {
                    NavigationState.RegistrationResultMsg = "CardManagement|CardRegisteredErrorMsg_Registered";
                    lRegisterCardCompleted = false;
                }
                else
                {
                    lRegisterCardCompleted = SaveCardRegisteration();
                    if (lRegisterCardCompleted)
                    {
                        NavigationState.RegistrationResultMsg = "CardManagement|SuccessMsg";

                        //Auditing
                        AuditManagerBase.CommonAuditParams commonAuditParam = new AuditManagerBase.CommonAuditParams(_NavigationState.Contact.Contact_ID, DateTime.Now, (int?)_NavigationState.Contact.Contact_ID, _NavigationState.RegisteredCard.Card_ID, "B/O Registration", "Contact:" + _NavigationState.Contact.Contact_ID);
                        AuditManager.AuditBORegisteration(commonAuditParam, "", "Personalized card registration on web portal");

                        //send confirmation mail
                        SendCardRegistrationConfirmationMail();
                    }
                    else
                    {
                        NavigationState.RegistrationResultMsg = "CardManagement|SavingErrorMsg";
                    }
                }
            }
            //Backend id is empty, so call the registration API
            else
            {
                string lMsg = string.Empty;
                lRegisterCardCompleted = RegisterCard(out lMsg);
                NavigationState.RegistrationResultMsg = lMsg;
            }

            WriteLogEntry("GoForRegisretingCard", _NavigationState.RegisteredCard.CardNumber + ":" + _NavigationState.RegistrationResultMsg);

            return(lRegisterCardCompleted);
        }
        /// <summary>
        /// Ensure that card exists on BO, issued and not expired
        /// </summary>
        /// <param name="lMsg">the message of error if found</param>
        /// <returns>if card is valid</returns>
        public bool IsCardValid(out string lMsg)
        {
            bool lIsCardValid = true;

            lMsg = "";

            CardManager lCardManager = new CardManager();
            string      lCardNumber  = _NavigationState.SB_Card.CardNumber;

            BO_CardOverviewResponse lCardOverResponse = lCardManager.GetCardDetails(lCardNumber);
            CardDetails             lCardDetails      = (lCardOverResponse != null) ? lCardOverResponse.CardOverview : null;

            if (lCardDetails != null)
            {
                enumCardState lCardState = (enumCardState)Enum.Parse(typeof(enumCardState), lCardDetails.CardState);
                //enumCardStatus lCardStatus = (enumCardStatus)Enum.Parse(typeof(enumCardStatus), lCardDetails.CardStatus);

                PurseDetails lPurseDetails = lCardManager.GetCardPurseDetails(lCardNumber);

                //check that the card state, status and purse if exists is valid
                if (lCardState == enumCardState.Issued && lCardDetails.CardStatus == "8" &&
                    ((lPurseDetails != null && lPurseDetails.PurseStatus == "8") || lPurseDetails == null))
                {
                    lIsCardValid = true;
                }
                else
                {
                    lMsg         = Resources.Resource_2_0.CardSelection_CardNotIssued;
                    lIsCardValid = false;
                }

                //check if the card is expired
                if (lCardDetails.CardExpiryDate < DateTime.Now)
                {
                    lMsg         = Resources.Resource_2_0.CardSelection_CardExpired;
                    lIsCardValid = false;
                }
            }
            else
            {
                lMsg         = Resources.CardManagement.BONotConnected;
                lIsCardValid = false;
            }

            if (lIsCardValid)
            {
                WriteLogEntry("IsCardValid", _NavigationState.SB_Card.CardNumber + ":Valid");
                NavigationState.SB_Card.CardProfileCode = lCardDetails.CardProfile;

                //Get the code value using the profile code
                if (NavigationState.SB_Card.CardProfileCode != -1)
                {
                    NavigationState.SB_Card.CardProfileValue = new CardManager().GetCardProfileByCodeValue(NavigationState.SB_Card.CardProfileCode.Value).Code_Description;
                    NavigationState.SB_Card.IsPersonalized   = CardManager.IsPersonalizedCardProfile((int)NavigationState.SB_Card.CardProfileCode);
                }
            }
            else
            {
                WriteLogEntry("IsCardValid", _NavigationState.SB_Card.CardNumber + ":" + lMsg);
            }

            return(lIsCardValid);
        }
        public void LoadCardProfile(BO_CardOverviewResponse pBO_Res)
        {
            if (pBO_Res.CardOverview != null)
            {
                NavigationState.SB_Card.CardProfileCode = pBO_Res.CardOverview.CardProfile;

                //Get the code value using the profile code
                if (NavigationState.SB_Card.CardProfileCode != -1)
                {
                    NavigationState.SB_Card.CardProfileValue = new CardManager().GetCardProfileByCodeValue(NavigationState.SB_Card.CardProfileCode.Value).Code_Description;
                    NavigationState.SB_Card.IsPersonalized = CardManager.IsPersonalizedCardProfile((int)NavigationState.SB_Card.CardProfileCode);
                }
            }
        }
        /// <summary>
        /// Load the BO profile code and value for the card to be topped-up besides loading the SB BO data object 
        /// </summary>
        /// <returns></returns>
        public bool LoadCardInfoIntoSession(BO_CardOverviewResponse pBO_Res)
        {
            try
            {
                WriteLogEntry("LoadCardInfoIntoSession", _NavigationState.SB_Card.CardNumber + ":Start");

                CardManager lCardManager = new CardManager();

                Card lcard = new Card();
                lcard.CardNumber = NavigationState.SB_Card.CardNumber;
                NavigationState.SB_Card.SB_BOdata = lCardManager.GetBackofficeDataForCard(lcard, pBO_Res);

                if (NavigationState.SB_Card.SB_BOdata == null)
                    return false;

                WriteLogEntry("LoadCardInfoIntoSession", _NavigationState.SB_Card.CardNumber + ":Completed");

                return true;
            }
            catch (Exception ex)
            {
                if (!ExceptionHandler.IsUserFriendly(ex))
                {
                    ExceptionHandler.handle(ex);
                    return false;
                }
                else
                { throw ex; }
            }
        }