How can i create different multiple Register and login form using UserManger and SignInManager in same AccountController?

33 views Asked by At
namespace BloodBank.Controllers
{
    public class AccountController : Controller
    {
        private UserManager<Donor> _userManager;
        private SignInManager<Donor> _signInManager;     
        public AccountController(UserManager<Donor> userManager, SignInManager<Donor> signInManager)
        {
            _userManager = userManager;
            _signInManager = signInManager;
        }
        [HttpGet]
        public IActionResult Register_Donor()
        {
            return View();
        }
        [HttpPost]
        public async Task<IActionResult> Register_Donor(DonorRegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                Donor user = new Donor
                {
                    FirstName = model.FirstName,
                    LastName = model.LastName,
                    UserName = model.UserName,
                    PhoneNumber = model.PhonNum,
                    NationalityNum = model.NationalityNum,
                    Age = model.Age,
                    GenderType = model.GenderType,
                    TypeBlood = model.TypeBlood,
                    Address = model.Address

                };
                var result = await _userManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    return RedirectToAction("Login");
                }
                foreach (var err in result.Errors)
                {
                    ModelState.AddModelError("", err.Description);
                }
                return View(model);
            }
            return View(model);
        }

        [HttpGet]
        public IActionResult Login()
        {

            return View();
        }

        [HttpPost]
        public async Task<IActionResult> Login(DonorLoginViewModel model)
        {
            if (ModelState.IsValid)
            {
                var result = await _signInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, false);

                if (result.Succeeded)
                {
                    return RedirectToAction("DonorHome", "Donor");
                }
                ModelState.AddModelError("", "Invalid User Or Password");
                return View(model);

            }
            return View(model);
        }
        [HttpGet]
        public IActionResult Register_ReciptionBank()
        {
            return View();
        }
        [HttpPost]
        public async Task<IActionResult> Register_ReciptionBank(ReciptionBank model)
        {
            if (ModelState.IsValid)
            {
                ReciptionBank bank = new ReciptionBank
                {
                    HospitalName=model.HospitalName,
                    Location=model.Location

                };
                var result = await _userManager.CreateAsync(bank, model.HospitalName);
            }
            return View();
        }
    }
}

Can anyone help me in my project

0

There are 0 answers