Exemplo n.º 1
0
        public async Task <ActionResult> Register(RegisterDonorViewModel registration)
        {
            var userManager = HttpContext.GetOwinContext().GetUserManager <WishlistUserManager>();
            var user        = await CreateDonor(registration, userManager);

            if (registration.DonorId.HasValue)
            {
                await AuthorizeDonorForUser(user, registration.DonorId.Value, userManager);
                await SendConfirmationEmail(user, userManager);
                await SignDonorIn(user, userManager);

                return(RedirectToAction("Index", "Home"));
            }

            var donor = new Donor();

            _db.Donors.Add(donor);

            var cart = new Cart {
                Donor        = donor,
                ModifiedDate = DateTime.Now
            };

            _db.Carts.Add(cart);
            await _db.SaveChangesAsync();

            await AuthorizeDonorForUser(user, donor.Id, userManager);
            await SendConfirmationEmail(user, userManager);
            await SignDonorIn(user, userManager);

            return(RedirectToAction("Index", "Home"));
        }
Exemplo n.º 2
0
        // GET: RegisterDonor
        public ActionResult RegisterDonor()
        {
            var viewModel = new RegisterDonorViewModel
            {
                RegisterDonor = new RegisterDonor()
            };

            return(View("RegisterDonor", viewModel));
        }
Exemplo n.º 3
0
 public static Address ToAddress(RegisterDonorViewModel viewModel)
 {
     return(new Address
     {
         City = viewModel.City,
         County = viewModel.County,
         Street = viewModel.Street,
         Number = viewModel.Number,
     });
 }
Exemplo n.º 4
0
 public static Donor ToDonor(RegisterDonorViewModel viewModel, ApplicationUser applicationUser)
 {
     return(new Donor
     {
         Id = applicationUser.Id,
         FirstName = viewModel.FirstName,
         LastName = viewModel.LastName,
         CNP = viewModel.CNP,
     });
 }
Exemplo n.º 5
0
        private async Task <WishlistUser> CreateDonor(RegisterDonorViewModel registration, WishlistUserManager manager)
        {
            await manager.CreateAsync(new WishlistUser {
                Name     = registration.Name,
                UserName = registration.Email,
                Email    = registration.Email
            }, registration.Password);

            return(await manager.FindByNameAsync(registration.Email));
        }
Exemplo n.º 6
0
        //[ValidateAntiForgeryToken]
        public async Task <IActionResult> RegisterDonor([FromBody] RegisterDonorViewModel donorModel)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser {
                    UserName = donorModel.Email, Email = donorModel.Email
                };
                var result = await _userManager.CreateAsync(user, donorModel.Password);

                if (result.Succeeded)
                {
                    _logger.LogInformation("User created a new account with password.");

                    var createdDonor = await _userManager.FindByEmailAsync(donorModel.Email);

                    await _userManager.AddToRoleAsync(createdDonor, "Donor");

                    //var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
                    //var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme);
                    //await _emailSender.SendEmailConfirmationAsync(donorModel.Email, callbackUrl);
                    var donorDb   = Mappers.MapperRegisterDonor.ToDonor(donorModel, createdDonor);
                    var addressDb = Mappers.MapperRegisterDonor.ToAddress(donorModel);

                    try
                    {
                        _donorsService.AddDonor(donorDb, addressDb);


                        var codeResult = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                        //var callbackUrl = Url.EmailConfirmationLink(user.Id, code, Request.Scheme);
                        //await _emailSender.SendEmailConfirmationAsync(doctorModel.Email, callbackUrl);

                        await _signInManager.SignInAsync(user, isPersistent : false);

                        _logger.LogInformation("User created a new account with password.");

                        //return RedirectToLocal(returnUrl);
                        return(Ok());
                    }
                    catch (Exception ex)
                    {
                        return(BadRequest(ex.Message));
                    }
                }
                AddErrors(result);
            }

            //If we got this far, something failed, redisplay form
            return(BadRequest("Something went wrong"));
        }
Exemplo n.º 7
0
        public ActionResult Save(RegisterDonor donor)
        {
            if (!ModelState.IsValid)
            {
                var viewModel = new RegisterDonorViewModel
                {
                    RegisterDonor = donor
                };
                return(View("RegisterDonor", viewModel));
            }


            if (donor.Id == 0)
            {
                _context.RegisterDonors.Add(donor);
            }

            _context.SaveChanges();
            TempData["Message"] = "Your data " + donor.Name + "has been saved successfully";
            return(RedirectToAction("RegisterDonor"));
            //return RedirectToAction("Index", "Home");
        }
Exemplo n.º 8
0
 public ActionResult Index()
 {
     RegisterDonorViewModel donor = TempData["Message"] as RegisterDonorViewModel;
     return View(donor);
 }