/// <summary>
        /// Refactored from MembershipProcess.GetMembershipOptionsData()
        /// </summary>
        /// <param name="nameAndAddressParameter"></param>
        /// <param name="customerId"></param>
        /// <returns></returns>
        public object Process(NameAndAddressParameter nameAndAddressParameter, int?customerId)
        {
            var mOptionsOutput = new MembershipOptionsDataOutputV2();

            try
            {
                mOptionsOutput.MembershipOptionsData.MembershipStatusData    = _membershipDataAccess.GetMembershipStatus();
                mOptionsOutput.MembershipOptionsData.ActivationDeclineReason = _membershipDataAccess.GetActivationDeclineReason();
                mOptionsOutput.MembershipOptionsData.OverrideReason          = _membershipDataAccess.GetOverrideReason();
                mOptionsOutput.MembershipOptionsData.FulfilmentOverride      = _membershipDataAccess.GetFulfilmentOverride();
                mOptionsOutput.MembershipOptionsData.ActivationSource        = _membershipDataAccess.GetActivationSource();
                mOptionsOutput.MembershipOptionsData.MembershipStatusReason  = _membershipDataAccess.GetMembershipStatusReason();

                // GITCS-9 : Cancellation reasons only on V2
                mOptionsOutput.MembershipOptionsData.MembershipCancellationReason =
                    _membershipDataAccess.GetMembershipCancelReason();


                return(mOptionsOutput);
            }
            catch (Exception ex)
            {
                _logger.Error("GetMembershipOptionsData : ErrorTag: " + ErrorTagProvider.ErrorTagDatabase + " -- " + ex.Message, ex);
                throw new Exception(ex.Message);
            }
        }
        public List <string> GetOverrideReason()
        {
            //get membershipStatusReason
            var mOverrideReason = _dataAccess.GetOverrideReason();

            return(mOverrideReason);
        }