示例#1
0
        public async Task <IActionResult> Register(RegisterViewModel registerVm)
        {
            HttpContext.Session.SetString("user_name", "");
            HttpContext.Session.SetString("id", "");
            if (!ModelState.IsValid)
            {
                ModelState.AddModelError("Error", "Complet all fields.");
                return(View(registerVm));
            }
            var exist = await _context.Persons
                        .SingleOrDefaultAsync(m => m.EmailAddress == registerVm.Email);

            if (exist != null)
            {
                ModelState.AddModelError("Error", "Email address is used.");
                return(View(registerVm));
            }
            exist = await _context.Persons
                    .SingleOrDefaultAsync(m => m.Username == registerVm.UserName);

            if (exist != null)
            {
                ModelState.AddModelError("Error", "Username is used.");
                return(View(registerVm));
            }
            exist = await _context.Persons
                    .SingleOrDefaultAsync(m => m.Cnp == registerVm.Cnp);

            if (exist != null)
            {
                ModelState.AddModelError("Error", "Cnp is used.");
                return(View(registerVm));
            }
            var user = new Person
            {
                Id           = new Guid(),
                Cnp          = registerVm.Cnp,
                FirstName    = registerVm.FirstName,
                LastName     = registerVm.LastName,
                Username     = registerVm.UserName,
                EmailAddress = registerVm.Email,
                Password     = CryptingUtils.Encode(registerVm.Password),
                Gender       = registerVm.Gender,
                Birthday     = registerVm.Birthday,
                Role         = "Patient"
            };

            _context.Add(user);
            await _context.SaveChangesAsync();

            MailUtils email;

            email = new MailUtils(user.EmailAddress, "Account Confirmation.",
                                  "Your account has been successfully created. You can login.\nA beautiful day!\nMedicore team.");

            email.Send();
            return(RedirectToAction("Login", "Persons"));
        }
示例#2
0
        public async Task <IActionResult> Create([Bind("Category,Specialization,Rating,Cnp,FirstName,EmailAddress,LastName,Username,Password,Gender,Birthday,Role")] Medic medic)
        {
            if (ModelState.IsValid)
            {
                medic.Id       = Guid.NewGuid();
                medic.Password = CryptingUtils.Encode(medic.Password);
                medic.Role     = "Medic";
                _context.Add(medic);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(medic));
        }
示例#3
0
        public async Task <IActionResult> Login(LoginViewModel loginVm)
        {
            if (!ModelState.IsValid)
            {
                ModelState.AddModelError("Error", "Complete all fields.");
                return(View());
            }

            var isOk = await _context.Persons
                       .SingleOrDefaultAsync(m => m.Username == loginVm.UserName && m.Password == CryptingUtils.Encode(loginVm.Password));

            if (isOk == null)
            {
                ModelState.AddModelError("Error", "User or password is wrong!");
                return(View());
            }

            HttpContext.Session.SetString("user_name", isOk.Username);
            HttpContext.Session.SetString("id", isOk.Id.ToString());
            return(RedirectToAction("Index", isOk.Role == "Patient" ? "Patients" : "Medics"));
        }