I've develop a multi tier project with MVC5. And i use ASP.NET Identity 2.0.. And i use Ninject for depency injection. But i can't figure out how can i set call service layer in my controller. I use call directly call my manager class.
public class UserController : Controller
{
private IUserService _userService; //i can't use this property at the moment. Because i can't iject it
private UserManager _userManager;
public UserManager UserManager
{
get
{
return _userManager ?? HttpContext.GetOwinContext().GetUserManager<UserManager>();
}
private set
{
_userManager = value;
}
}
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterViewModel model)
{
if (ModelState.IsValid)
{
var user = new User { UserName = model.Email, Email = model.Email };
//i need create usermanager from my service layer.
UserManager userManager = this.UserManager;
var result = userManager.Add(user, model.Password);
if (result.Succeeded)
{
return RedirectToRoute("Home");
}
else
{
foreach (var error in result.Errors)
{
ModelState.AddModelError("", error);
}
}
}
return View(model);
}
}