public async Task <IActionResult> Create([Bind(nameof(RegisterVolunteerModel.Email))] RegisterVolunteerModel registerVolunteerModel)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser identityUser = await userManager.FindByEmailAsync(registerVolunteerModel.Email);

                if (identityUser == null || (await applicationDbContext.Volunteers.FindAsync(Guid.Parse(identityUser.Id))) == null)
                {
                    Identity identity = ControllerContext.GetIdentity();

                    if (identityUser == null)
                    {
                        identityUser = new ApplicationUser {
                            UserName = registerVolunteerModel.Email, Email = registerVolunteerModel.Email, EmailConfirmed = true
                        };

                        await userManager.CreateAsync(identityUser, "Test.123");

                        await userManager.AddToRoleAsync(identityUser, Framework.Identity.CustomIdentityRole.Volunteer);
                    }
                    else
                    {
                        await userManager.RemoveFromRoleAsync(identityUser, Framework.Identity.CustomIdentityRole.Guest);

                        await userManager.AddToRoleAsync(identityUser, Framework.Identity.CustomIdentityRole.Volunteer);
                    }

                    Volunteer volunteer = new Volunteer();
                    volunteer.ID    = Guid.Parse(identityUser.Id);
                    volunteer.NGOID = identity.NGOID;

                    applicationDbContext.Volunteers.Add(volunteer);

                    await applicationDbContext.SaveChangesAsync();

                    return(RedirectToAction(nameof(Volunteers)));
                }

                ModelState.AddModelError(nameof(RegisterVolunteerModel.Email), "Email duplicat");
            }

            return(View(registerVolunteerModel));
        }