public async Task <IActionResult> Register(RegisterViewModel model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser();
                populateUserInfo(model, user);
                var result = await _userManager.CreateAsync(user, string.Concat(user.Salt, model.Password));

                if (result.Succeeded)
                {
                    var donorDetails = new DonorDetails();
                    var userId       = _applicationDbContext.Users.FirstOrDefault(p => p.Email == model.Email).Id;
                    populateDonorDetails(donorDetails, model, userId);
                    _applicationDbContext.DonorDetails.Add(donorDetails);
                    _applicationDbContext.SaveChanges();
                    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=532713
                    // Send an email with this link
                    //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
                    //var callbackUrl = Url.Action(nameof(ConfirmEmail), "Account", new { userId = user.Id, code = code }, protocol: HttpContext.Request.Scheme);
                    //await _emailSender.SendEmailAsync(model.Email, "Confirm your account",
                    //    $"Please confirm your account by clicking this link: <a href='{callbackUrl}'>link</a>");
                    await _signInManager.SignInAsync(user, isPersistent : false);

                    _logger.LogInformation(3, "User created a new account with password.");
                    return(RedirectToLocal(returnUrl));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            DonorDetails donorDetails = db.DonorDetails.Find(id);

            db.DonorDetails.Remove(donorDetails);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#3
0
 public DonorDetailsBuilder()
 {
     _model = new DonorDetails
     {
         FirstName = "FirstName",
         LastName  = "LastName",
         PostCode  = "12345"
     };
 }
 private void populateDonorDetails(DonorDetails donorDetails, RegisterViewModel model, string userId)
 {
     donorDetails.Id        = userId;
     donorDetails.FirstName = model.FirstName;
     donorDetails.LastName  = model.LastName;
     donorDetails.Gender    = model.Gender;
     donorDetails.DOB       = model.DOB;
     donorDetails.BloodId   = model.BloodType;
 }
 public ActionResult Edit([Bind(Include = "donorID,Name,Surname,email")] DonorDetails donorDetails)
 {
     if (ModelState.IsValid)
     {
         db.Entry(donorDetails).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(donorDetails));
 }
        public ActionResult Create([Bind(Include = "donorID,Name,Surname,email")] DonorDetails donorDetails)
        {
            if (ModelState.IsValid)
            {
                db.DonorDetails.Add(donorDetails);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(donorDetails));
        }
        // GET: DonorDetails/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            DonorDetails donorDetails = db.DonorDetails.Find(id);

            if (donorDetails == null)
            {
                return(HttpNotFound());
            }
            return(View(donorDetails));
        }
示例#8
0
 public DonorDetailsBuilder With(DonorDetails model)
 {
     _model = model;
     return(this);
 }