Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

Referance abstract class within BLL

Posted on 2008-09-30
3
Medium Priority
?
176 Views
Last Modified: 2013-12-17
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

0
Comment
Question by:BeginningWebDesign
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 5

Accepted Solution

by:
johnaryan earned 2000 total points
ID: 22608701
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
 

Author Comment

by:BeginningWebDesign
ID: 22609341
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
 

Author Closing Comment

by:BeginningWebDesign
ID: 31501628
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

Featured Post

Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

ASP.Net to Oracle Connectivity Recently I had to develop an ASP.NET application connecting to an Oracle database.As I am doing it first time ,I had to solve several problems. This article will help to such developers  to develop an ASP.NET client…
Wouldn’t it be nice if you could test whether an element is contained in an array by using a Contains method just like the one available on List objects? Wouldn’t it be good if you could write code like this? (CODE) In .NET 3.5, this is possible…
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : http://www.videocopilot.net/presets/after_shake/ All lightning effects with instructions : http://www.mediaf…
In this video, Percona Solution Engineer Rick Golba discuss how (and why) you implement high availability in a database environment. To discuss how Percona Consulting can help with your design and architecture needs for your database and infrastr…

636 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question