public ActionResult ResetPassword(string id)
        {
            //Verify the reset password link
            //Find account associated with this link
            //redirect to reset password page
            if (string.IsNullOrWhiteSpace(id))
            {
                return(HttpNotFound());
            }

            using (RecruiterContext dc = new RecruiterContext())
            {
                var user = dc.Users.Where(a => a.ResetPasswordCode == id).FirstOrDefault();
                if (user != null)
                {
                    ResetPassword model = new ResetPassword();
                    model.ResetCode = id;
                    return(View(model));
                }
                else
                {
                    return(HttpNotFound());
                }
            }
        }
        public ActionResult ResetPassword(ResetPassword model)
        {
            var message = "";

            if (ModelState.IsValid)
            {
                using (RecruiterContext dc = new RecruiterContext())
                {
                    var user = dc.Users.Where(a => a.ResetPasswordCode == model.ResetCode).FirstOrDefault();
                    if (user != null)
                    {
                        // user.Password = Crypto.Hash(model.NewPassword);
                        user.ResetPasswordCode = "";
                        dc.Configuration.ValidateOnSaveEnabled = false;
                        dc.SaveChanges();
                        message = "New password updated successfully";
                    }
                }
            }
            else
            {
                message = "Something invalid";
            }
            ViewBag.Message = message;
            return(View(model));
        }
示例#3
0
        public ActionResult MostResentApplications()
        {
            var applicant = Membership.GetUser();

            using (RecruiterContext db = new RecruiterContext())
            {
                var appliedapplicant = (from p in db.Applicants.Include(x => x.User).Include(x => x.Applications)
                                        .Include(x => x.Job)
                                        select new
                {
                    DateApplied = p.User.LastModifiedDate,
                    JobTitle = p.Job.Title,
                    Department = p.Job.Department.Name,
                }).ToList()
                                       .Select(c => new TotalApplicantAppliedVM
                {
                    JobTitle    = c.JobTitle,
                    DateApplied = c.DateApplied,
                    Department  = c.Department,
                }).OrderByDescending(o => o.JobTitle).Take(10).ToList();


                return(View(appliedapplicant));
            }
        }
        public ActionResult ForgotPassword(string EmailID)
        {
            //Verify Email ID
            //Generate Reset password link
            //Send Email
            string message = "";
            bool   status  = false;

            using (RecruiterContext dc = new RecruiterContext())
            {
                var account = dc.Users.Where(a => a.Email == EmailID).FirstOrDefault();
                if (account != null)
                {
                    //Send email for reset password
                    string resetCode = Guid.NewGuid().ToString();
                    VerificationEmail(account.Email, resetCode, "ResetPassword");
                    account.ResetPasswordCode = resetCode;
                    //This line I have added here to avoid confirm password not match issue , as we had added a confirm password property
                    //in our model class in part 1
                    dc.Configuration.ValidateOnSaveEnabled = false;
                    dc.SaveChanges();
                    message = "Reset password link has been sent to your email id.";
                }
                else
                {
                    message = "Account not found";
                }
            }
            ViewBag.Message = message;
            return(View());
        }
示例#5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <param name="email"></param>
        /// <param name="firstname"></param>
        /// <param name="lastname"></param>
        /// <param name="passwordQuestion"></param>
        /// <param name="passwordAnswer"></param>
        /// <param name="isApproved"></param>
        /// <param name="providerUserKey"></param>
        /// <param name="status"></param>
        /// <returns></returns>
        public override MembershipUser CreateUser(string username, string password, string email, string firstname, string lastname, bool isApproved, object providerUserKey, out MembershipCreateStatus status)
        {
            using (RecruiterContext dbContext = new RecruiterContext())
            {
                var user = (from us in dbContext.Users
                            where string.Compare(username, us.Username, StringComparison.OrdinalIgnoreCase) == 1
                            select us).FirstOrDefault();

                if (user == null)
                {
                    user = new User
                    {
                        Username    = username,
                        Password    = password,
                        Email       = email,
                        FirstName   = firstname,
                        LastName    = lastname,
                        IsActive    = isApproved,
                        CreatedDate = DateTime.Now,
                    };

                    dbContext.Users.Add(user);
                    dbContext.SaveChanges();

                    status = MembershipCreateStatus.Success;
                    return(new CustomMembershipUser(user, null) as MembershipUser);
                }
                else
                {
                    status = MembershipCreateStatus.DuplicateUserName;
                    return(null);
                }
            }
        }
示例#6
0
        public ActionResult TotalApplicantApplied()
        {
            //var currentUserId = (Membership.GetUser(User.Identity.Name) as CustomMembershipUser).UserId;
            var applicant = Membership.GetUser();

            using (RecruiterContext db = new RecruiterContext())
            {
                var appliedapplicant = (from p in db.Applicants.Include(x => x.User).Include(x => x.Applications)
                                        .Include(x => x.Job)
                                        select new
                {
                    FirstName = p.User.FirstName,
                    LastName = p.User.LastName,
                    Email = p.User.Email,
                    PhoneNumber = p.PhoneNumber,
                    DateApplied = p.User.LastModifiedDate,
                    JobTitle = p.Job.Title,
                    Department = p.Job.Department.Name,
                }).ToList()
                                       .Select(c => new TotalApplicantAppliedVM
                {
                    FirstName   = c.FirstName,
                    LastName    = c.LastName,
                    Email       = c.Email,
                    PhoneNumber = c.PhoneNumber,
                    JobTitle    = c.JobTitle,
                    DateApplied = c.DateApplied,
                    Department  = c.Department,
                }).ToList();


                return(View(appliedapplicant));
            }
        }
示例#7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="email"></param>
        /// <param name="userIsOnline"></param>
        /// <returns></returns>
        public override MembershipUser GetUser(string email, bool userIsOnline)
        {
            using (RecruiterContext dbContext = new RecruiterContext())
            {
                var appUser = (from users in dbContext.Users
                               join applicant in dbContext.Applicants on users.Id equals applicant.UserId into applicant_user
                               from j2 in applicant_user.DefaultIfEmpty()
                               where string.Compare(email, users.Email, StringComparison.OrdinalIgnoreCase) == 0
                               select new CustomMembershipUserDto
                {
                    User = users,
                    ApplicantId = j2.Id
                }).FirstOrDefault();

                if (appUser != null)
                {
                    var customeMembershipUser = new CustomMembershipUser(appUser.User, appUser.ApplicantId)
                    {
                        Roles = (from r in dbContext.UserRoles.Include(x => x.Role)
                                 where r.UserId == appUser.User.Id
                                 select r).ToList()
                    };

                    return(customeMembershipUser);
                }

                return(null);
            }
        }
示例#8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="username"></param>
        /// <returns></returns>
        public override string[] GetRolesForUser(string username)
        {
            if (!HttpContext.Current.User.Identity.IsAuthenticated)
            {
                return(null);
            }

            var userRoles = new string[] { };

            RecruiterContext dbContext = new RecruiterContext();

            /*var selectedUser = (from us in dbContext.Users.Include("Roles")
             *                  where string.Compare(us.Username, username, StringComparison.OrdinalIgnoreCase) == 0
             *                  select us).FirstOrDefault();*/


            var selectedUser = dbContext.UserRoles.Where(u => u.User.Username == username);

            if (selectedUser != null)
            {
                var roles = selectedUser.Select(c => c.Role.Name).ToArray();
                return(roles);
            }
            return(null);
        }
示例#9
0
        public override string GetUserNameByEmail(string email)
        {
            using (RecruiterContext dbContext = new RecruiterContext())
            {
                string username = (from u in dbContext.Users
                                   where string.Compare(email, u.Email) == 0
                                   select u.Username).FirstOrDefault();

                return(!string.IsNullOrEmpty(username) ? username : string.Empty);
            }
        }
示例#10
0
 public bool AddUserToRole(UserRole userRole)
 {
     if (userRole != null)
     {
         RecruiterContext db = new RecruiterContext();
         db.UserRoles.Add(userRole);
         var ret = db.SaveChanges();
         return((db.SaveChanges() == 1) ? true : false);
     }
     else
     {
         return(false);
     }
 }
示例#11
0
        public override string[] GetAllRoles()
        {
            var db    = new RecruiterContext();
            var roles = db.Roles.ToList();

            string[] roleArray = new string[roles.Count];
            int      n         = 0;

            foreach (Role role in roles)
            {
                roleArray[n] = role.Name.ToString();
                n++;
            }
            return(roleArray);
        }
        public ActionResult Upload(HttpPostedFileBase file)
        {
            var model = Server.MapPath("~/App_Data/UploadedFiles/") + file.FileName;

            TempData["type"] = file.ContentType;
            if (file.ContentLength > 0)
            {
                RecruiterContext db = new RecruiterContext();
                file.SaveAs(model);
                ViewBag.Msg = "Uploaded Successfully";
                return(View("Index"));
            }
            else
            {
                ViewBag.Msg = "Upload Failed";
            }
            return(View("Index"));
        }
示例#13
0
 public bool CreateRole(Role role)
 {
     using (RecruiterContext dbContext = new RecruiterContext())
     {
         var roles = (from us in dbContext.Roles
                      where string.Compare(role.Name, us.Name, StringComparison.InvariantCultureIgnoreCase) == 0
                      select us).FirstOrDefault();
         if (roles == null)
         {
             dbContext.Roles.Add(role);
             dbContext.SaveChanges();
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }
        public void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (filterContext == null || filterContext.HttpContext == null)
            {
                return;
            }

            var user = filterContext.HttpContext.User;

            if (user.Identity.IsAuthenticated && user.IsInRole("Applicant"))
            {
                var currentUserId = (Membership.GetUser(user.Identity.Name) as CustomMembershipUser).UserId;
                using (RecruiterContext dbContext = new RecruiterContext())
                {
                    var applicant = dbContext.Applicants.Where(a => a.ApplicantId == currentUserId).FirstOrDefault();
                    if (applicant == null && !applicant.IsValid())
                    {
                        filterContext.Result = new RedirectResult("/applicant/applicantprofileedit");
                    }
                }
            }
        }
示例#15
0
        public ActionResult PostedJobs()
        {
            using (RecruiterContext dbContext = new RecruiterContext())
            {
                var postedJobs = (from p in dbContext.Jobs
                                  select new
                {
                    Department = p.Department.Name,
                    ContractClass = p.ContractClass,
                    //Status = p.
                    DatePosted = p.CreatedDate,
                }).ToList()
                                 .Select(j => new PostedJobVM
                {
                    Department    = j.Department,
                    ContractClass = j.ContractClass,
                    //Status = j.Status,
                    DatePosted = j.DatePosted,
                }).ToList();

                return(View(postedJobs));
            }
        }
        public ActionResult ActivationAccount(string id)
        {
            bool statusAccount = false;

            using (RecruiterContext dbContext = new RecruiterContext())
            {
                //var userAccount = dbContext.Users.Where(u => u.ActivationCode.ToString().Equals(id)).FirstOrDefault();
                var userAccount = dbContext.Users.Where(u => u.Id.ToString().Equals(id)).FirstOrDefault();

                if (userAccount != null)
                {
                    userAccount.IsActive = true;
                    dbContext.SaveChanges();
                    statusAccount = true;
                }
                else
                {
                    ViewBag.Message = "Something Wrong !!";
                }
            }
            ViewBag.Status = statusAccount;
            return(View());
        }
        public ActionResult ChangePassword(ChangePasswordVM model)
        {
            var message = "";

            if (ModelState.IsValid)
            {
                var currentUserId = (Membership.GetUser(User.Identity.Name) as CustomMembershipUser).UserId;
                using (RecruiterContext dbContext = new RecruiterContext())
                {
                    var User = dbContext.Users.Where(a => a.Id == currentUserId).FirstOrDefault();

                    if (User != null)
                    {
                        if (model.OldPassword != model.NewPassword)
                        {
                            User.Password = model.NewPassword;

                            message = "Your password has been updated!";
                            dbContext.SaveChanges();
                        }
                        else
                        {
                            message = "New password is the same as current password";
                        }
                    }



                    else
                    {
                        ModelState.AddModelError("Warning Error", "Information is not correct");
                    }
                }
            }
            ViewBag.Message = message;
            return(View(model));
        }
示例#18
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public override bool ValidateUser(string email, string password)
        {
            if (string.IsNullOrEmpty(email) || string.IsNullOrEmpty(password))
            {
                return(false);
            }

            using (RecruiterContext dbContext = new RecruiterContext())
            {
                /* user = (from us in dbContext.Users
                 *                                      where string.Compare(email, us.Email, StringComparison.OrdinalIgnoreCase) == 1
                 *                                      && string.Compare(password, us.Password, StringComparison.OrdinalIgnoreCase) == 1
                 *                                      // && us.IsActive == true
                 *                                      select us).FirstOrDefault();*/

                var user = (from us in dbContext.Users
                            where us.Email == email &&
                            us.Password == password
                            // && us.IsActive == true
                            select us).FirstOrDefault();

                return((user != null) ? true : false);
            }
        }
 public ApplicantsController()
 {
     db = new RecruiterContext();
 }
示例#20
0
 public RecruiterBusiness(RecruiterContext context)
 {
     _context = context;
 }
示例#21
0
 public HomeController()
 {
     db = new RecruiterContext();
 }
 public ReviewerController()
 {
     db = new RecruiterContext();
 }
        public ActionResult Registration([Bind(Exclude = "ActivationCode, IsEmailVerified")] RegistrationView registrationView)
        {
            bool   statusRegistration  = false;
            string messageRegistration = string.Empty;

            if (ModelState.IsValid)
            {
                // Checks if Email already Exists
                var IsEmailExist = Membership.GetUserNameByEmail(registrationView.Email);
                if (!string.IsNullOrEmpty(IsEmailExist))
                {
                    ModelState.AddModelError("", "Sorry: Email already Exists");
                    return(View(registrationView));
                }

                // Generate Activation Code
                registrationView.ActivationCode = Guid.NewGuid();

                // Password Hashing
                registrationView.Password        = Crypto.Hash(registrationView.Password);
                registrationView.ConfirmPassword = Crypto.Hash(registrationView.ConfirmPassword);

                registrationView.IsEmailVerfied = false;


                //Save User Data
                using (RecruiterContext dbContext = new RecruiterContext())
                {
                    var user = new User()
                    {
                        Username         = registrationView.Username,
                        FirstName        = registrationView.FirstName,
                        LastName         = registrationView.LastName,
                        Email            = registrationView.Email,
                        Password         = registrationView.Password,
                        CreatedDate      = DateTime.Now,
                        LastModifiedDate = DateTime.Now,
                    };

                    dbContext.Users.Add(user);
                    dbContext.SaveChanges();

                    //Add user to Applicant Role
                    var customRole    = new CustomRole();
                    var currentUserId = dbContext.Users.Where(u => u.Email == user.Email).FirstOrDefault().Id;
                    var applicantRole = new UserRole()
                    {
                        UserId           = currentUserId,
                        RoleId           = (dbContext.Roles.Where(r => r.Name == "Applicant").FirstOrDefault()).Id,
                        CreatedById      = currentUserId,
                        LastModifiedById = currentUserId,
                        CreatedDate      = DateTime.Now,
                        LastModifiedDate = DateTime.Now
                    };
                    customRole.AddUserToRole(applicantRole);
                    var applicant = new Applicant()
                    {
                        //Username = applicantProfileViewModel.Username,
                        ApplicantId      = currentUserId,
                        CreatedById      = currentUserId,
                        LastModifiedById = currentUserId,
                        CreatedDate      = DateTime.Now,
                        LastModifiedDate = DateTime.Now
                    };
                    dbContext.Applicants.Add(applicant);
                    dbContext.SaveChanges();
                }


                //Verification Email
                VerificationEmail(registrationView.Email, registrationView.ActivationCode.ToString());
                messageRegistration = "Registration successfully done. Account activation link" +
                                      " has been sent to your email id " + registrationView.Email;
                statusRegistration = true;
            }
            else
            {
                messageRegistration = "Invalid Request!";
            }
            ViewBag.Message = messageRegistration;
            ViewBag.Status  = statusRegistration;

            return(View(registrationView));
        }