public async Task <ActionResult> Add(GraduateViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser
                {
                    Fname        = model.Fname,
                    Lname        = model.Lname,
                    PhoneNumber  = model.PhoneNumber,
                    UserName     = model.Email,
                    Email        = model.Email,
                    Address      = model.Address,
                    ProfileImage = model.ProfileImage,
                    DateOfBirth  = DateTime.Now.AddYears(-25)
                };

                //Generate Random Password
                PasswordGenerator passwordGenerator = new PasswordGenerator();
                passwordGenerator.Maximum = 10;
                passwordGenerator.ConsecutiveCharacters = true;
                passwordGenerator.RepeatCharacters      = true;
                passwordGenerator.ExcludeSymbols        = true;
                var password = passwordGenerator.Generate();

                var result = await userManager.CreateAsync(user, password);

                if (result.Succeeded)
                {
                    var graduate = new Graduate
                    {
                        Id       = user.Id,
                        Intake   = model.Intake,
                        TrackId  = model.TrackId,
                        BranchId = model.BranchId
                    };
                    try
                    {
                        db.Graduates.Add(graduate);
                        db.SaveChanges();

                        await userManager.AddToRoleAsync(user.Id, _Roles.Graduate);

                        ////////////send email to graduate include userName and Password

                        return(RedirectToAction("index"));
                    }
                    catch
                    {
                        return(View(model));
                    }
                }
            }

            var tracks  = new SelectList(db.Tracks.ToList(), "Id", "Name");
            var branchs = new SelectList(db.Branches.ToList(), "Id", "Name");

            ViewBag.tracks  = tracks;
            ViewBag.branchs = branchs;
            return(View(model));
        }
        public async Task <IActionResult> Grad()
        {
            var grad = await _getGraduate.GetUnderGradDegrees();

            var gradViewModel = new GraduateViewModel()
            {
                Grads = grad,
                Title = "Graduate Programs"
            };

            return(View(gradViewModel));
        }