Min Thit Tun
Min Thit Tun

Reputation: 33

asp.net mvc 3 dependency injection ninject

I want to ask something about asp.net mvc 3 dependency injection ninject.

Here is my Interface,

 public interface IRegistration<T>
{
    bool Registration(T Entity); 
}

This is ClsMembers class.

  public class ClsMembers:IRegistration<Member>
    {
        private SmileWorkDbEntities db;

        public ClsMembers()
        {
            db = new SmileWorkDbEntities();
        }

        public bool Registration(Member member)
        {
            db.Members.Add(member);

            if (db.SaveChanges() != 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }

        public int GetMemberId(string username, string pwd)
        {
            var Mem = (from m in db.Members where m.Member_username == username && m.Member_password == pwd select m).FirstOrDefault();
            return Mem.Member_id;
        }
    }

here is my controller,

public class MembersRegistrationController : Controller
{
    IRegistration<Member> ireg1;        

    public MembersRegistrationController(IRegistration<Member> _ireg1)
    {
        ireg1 = _ireg1;            
    }

    public ActionResult MemberRegistration()
    {
        return View();
    }

    [HttpPost]
    public ActionResult MemberRegistration(Member m)
    {
        if(ireg1.Registration(m))
        {                

            return RedirectToAction("MemberProfileRegistration", new {mId = i });
        }
        else
        {
            return View();
        }
    }       

}

Everything is ok... but i cannot access GetMemberId() method.. pls tell me how can i access GetMemberId() from my controller...

Regard, MinThitTun

Upvotes: 0

Views: 212

Answers (1)

Jalal
Jalal

Reputation: 6836

Modify your IRegistration interface by adding int GetMemberId(string username, string pwd) method:

public interface IRegistration<T>
{
    bool Registration(T Entity);
    int GetMemberId(string username, string pwd);
}

After all, I thing you should read Interfaces (C# Programming Guide)

UPDATE:

public interface IMembersRepository
{
    int GetMemberId(string username, string password);
    // Other stuff related to members...
}

public class MembersRepository : IMembersRepository
{
    private SmileWorkDbEntities db = new SmileWorkDbEntities();

    public int GetMemberId(string username, string password)
    {
        var Mem = (from m in db.Members where m.Member_username == username && m.Member_password == pwd select m).FirstOrDefault();
        return Mem.Member_id;
    }
    // Other stuff related to members...
}

public class MembersRegistrationController : Controller
{
    IRegistration<Member> ireg1;        
    IMembersRepository membersRepository;

    public MembersRegistrationController(IRegistration<Member> _ireg1, IMembersRepository memRepository)
    {
        ireg1 = _ireg1;            
        membersRepository = memRepository;
    }

    // ...
}

Upvotes: 2

Related Questions