Referance abstract class within BLL

Hi
I'm trying to get data from a abstract class and use it in BLL class, problem is i cannot seem to pass the data over, the data i'm trying to get is:
protected static string CurrentMemberIpAddr from public abstract class MemberBrowserDetails
protected static string CurrentMemberBrowser from public abstract class MemberBrowserDetails
Which will be used instead of:
"TestIP", "TestBrowser" in CheckLoginUsernamePasswordBLL
I've attached the two classes
Can any help with this problem
Regards
George
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
 
/// <summary>
/// Get member IPAddress, browser details and if new member create a new ID
/// </summary>
namespace TSE.Secure.BLL
{
    public abstract class MemberBrowserDetails
    {
        protected static string MemberUniqueID
        {
            get { return System.Guid.NewGuid().ToString(); }
        }
        protected static string CurrentMemberIpAddr
        {
            get { return HttpContext.Current.Request.UserHostAddress; }
        }
 
        protected static string CurrentMemberBrowser
        {
            get { return HttpContext.Current.Request.UserAgent; }
        }
 
        protected static string ConvertNullToEmptyString(string input)
        {
            return (input == null ? "" : input);
        }
    }
}
==================================================
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Data;
using CheckLoginDetails.DO;
 
/// <summary>
/// Summary description for CheckLoginUsernamePasswordDAL
/// </summary>
namespace CheckLoginDetails.BLL
{
    public class CheckLoginUsernamePasswordBLL
    {
        public List<UserDetailsDataObject> CheckMemberLogin(string strEmail, string strPassword)
        {
 
            List<UserDetailsDataObject> userDataList = new List<UserDetailsDataObject>();
            try
            {
                //  if (!isValidEmailString (strEmail) ) throw some error 
                DAL.SecureMembershipGetPasswordProc dal = new CheckLoginDetails.DAL.SecureMembershipGetPasswordProc();
                userDataList = dal.CheckMemberLogin(strEmail, strPassword, "TestIP", "TestBrowser");
 
            }
            catch (SqlException)
            {
                throw new ApplicationException("Sorry an error has occured<br /> and we cannot process your request.");
            }
            finally
            {
            }
            return userDataList;
        }
    }
}

Open in new window

BeginningWebDesignAsked:
Who is Participating?
 
johnaryanCommented:
Looking at your abstract class MemberBrowserDetails, all the Properties are marked "protected", this implies that they are only available to a class that inherits them.
As CheckLoginUsernamePasswordBLL doesn't implement the abstract class it cannot access it's members.

Making these properties public will allow all classes access to them, you could also mark them as internal the calling class be in the same assembly.

John
0
 
BeginningWebDesignAuthor Commented:
Hi johnaryan:

I had tried the code attached, but this did not work. So i added the code snippet "as is" when posted
The code attached does not insert the IPAddr or browser info.

George
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Data;
using CheckLoginDetails.DO;
using TSE.Secure.BLL;
 
/// <summary>
/// Summary description for CheckLoginUsernamePasswordDAL
/// </summary>
namespace CheckLoginDetails.BLL
{
    public class CheckLoginUsernamePasswordBLL : MemberBrowserDetails
    {
        public List<UserDetailsDataObject> CheckMemberLogin(string strEmail, string strPassword)
        {
 
            List<UserDetailsDataObject> userDataList = new List<UserDetailsDataObject>();
            try
            {
                //  if (!isValidEmailString (strEmail) ) throw some error 
                DAL.SecureMembershipGetPasswordProc dal = new CheckLoginDetails.DAL.SecureMembershipGetPasswordProc();
                userDataList = dal.CheckMemberLogin(strEmail, strPassword, MemberBrowserDetails.CurrentMemberIpAddr, MemberBrowserDetails.CurrentMemberBrowser);
 
            }
            catch (SqlException)
            {
                throw new ApplicationException("Sorry an error has occured<br /> and we cannot process your request.");
            }
            finally
            {
            }
            return userDataList;
        }
    }
}

Open in new window

0
 
BeginningWebDesignAuthor Commented:
I found the problem, i had the set 2 variables to the wrong values, i'm awarding points to johnaryan: for trying to help
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.