public ActionResult Create(DepartmentVM departmentVM)
        {
            if (ModelState.IsValid)
            {
                var user = Membership.GetUser(User.Identity.Name) as CustomMembershipUser;

                var department = new Department
                {
                    Name        = departmentVM.Name,
                    CreatedDate = DateTime.Now,
                    HoDId       = departmentVM.HoDId
                };

                if (user != null)
                {
                    department.CreatedById = user.UserId;
                }

                department.CreatedDate = DateTime.Now;

                db.Departments.Add(department);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.HoDId = new SelectList(db.Users, "Id", "Username", departmentVM.HoDId);
            return(View(departmentVM));
        }
예제 #2
0
        public ActionResult Create(UserVM userVM)
        {
            if (ModelState.IsValid)
            {
                var user = Membership.GetUser(User.Identity.Name) as CustomMembershipUser;

                var users = new User
                {
                    Username  = userVM.Username,
                    FirstName = userVM.FirstName,
                    LastName  = userVM.LastName,
                    Email     = userVM.Email,
                    Password  = Convert.ToBase64String(System.Security.Cryptography.SHA256.Create()
                                                       .ComputeHash(Encoding.UTF8.GetBytes(userVM.Password))),
                    CreatedDate = DateTime.Now
                };

                if (user != null)
                {
                    users.CreatedById = user.UserId;
                }

                db.Users.Add(users);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            //ViewBag.CreatedById = new SelectList(db.Users, "Id", "Username", user.CreatedById);
            //ViewBag.DepartmentId = new SelectList(db.Departments, "Id", "Name", user.DepartmentId);
            //ViewBag.LastModifiedById = new SelectList(db.Users, "Id", "Username", user.LastModifiedById);
            return(View(userVM));
        }
예제 #3
0
        public IHttpActionResult AddEducation(EducationVM model)
        {
            var response           = new ApiResult <EducationVM>();
            var currentApplicantId = (Membership.GetUser(User.Identity.Name) as CustomMembershipUser).ApplicantId;


            if (currentApplicantId == null)
            {
                return(Unauthorized());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest("Incorrect data posted, please check form and try again"));
            }

            if (model.Id > 0)
            {
                var education = db.Educations.Where(x => x.Id == model.Id).FirstOrDefault();
                if (education == null)
                {
                    return(NotFound());
                }
                else
                {
                    education.Institution   = model.Institution;
                    education.CourseStudied = model.CourseStudies;
                    education.FromDate      = model.FromDate;
                    education.ToDate        = model.ToDate;
                    education.Qualification = model.Qualification;
                    db.SaveChanges();
                }
                response.Message = "Updated successfully";
            }
            else
            {
                var education = new Education
                {
                    ApplicantId   = (int)currentApplicantId,
                    Institution   = model.Institution,
                    CourseStudied = model.CourseStudies,
                    FromDate      = model.FromDate,
                    ToDate        = model.ToDate,
                    Qualification = model.Qualification
                };

                db.Educations.Add(education);
                db.SaveChanges();
                model.Id = education.Id;

                response.Message = "Added successfully";
            }


            response.Data     = model;
            response.HasError = false;
            return(Ok(response));
        }
예제 #4
0
        public ActionResult Create([Bind(Include = "Id,Name,IsDeleted,CreatedDate,LastModifiedDate,CreatedById,LastModifiedById")] Role role)
        {
            if (ModelState.IsValid)
            {
                db.Roles.Add(role);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.CreatedById      = new SelectList(db.Users, "Id", "Username", role.CreatedById);
            ViewBag.LastModifiedById = new SelectList(db.Users, "Id", "Username", role.LastModifiedById);
            return(View(role));
        }
예제 #5
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);
     }
 }
예제 #6
0
        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));
        }
예제 #7
0
        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());
        }
예제 #8
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);
                }
            }
        }
예제 #9
0
        public Engineer UpdateEngineer(Engineer engineer)
        {
            _context.People.AddOrUpdate(engineer);
            _context.SaveChanges();

            return(engineer);
        }
예제 #10
0
        public ActionResult Create(JobViewModel jobCreateView)
        {
            if (ModelState.IsValid)
            {
                var user = Membership.GetUser(User.Identity.Name) as CustomMembershipUser;


                var jobs = new Job
                {
                    //Id = jobCreateView.JobId,
                    //DepartmentId = jobCreateView.DepartmentId,
                    Title = jobCreateView.Title,
                    //Summary = jobCreateView.Summary,
                    Description          = jobCreateView.Description,
                    Responsibility       = jobCreateView.Responsibility,
                    Characteristics      = jobCreateView.Characteristics,
                    SkillSet             = jobCreateView.SkillSet,
                    MinimumQualification = jobCreateView.MinimumQualification,
                    ExperienceLevel      = jobCreateView.ExperienceLevel,
                    ContractClass        = jobCreateView.ContractClass,
                    //ContractLength = jobCreateView.ContractLength,
                    ExpiryDate  = jobCreateView.ExpiryDate,
                    CreatedDate = DateTime.Now
                };
                if (user != null)
                {
                    jobs.CreatedById      = user.UserId;
                    jobs.LastModifiedById = user.UserId;
                }

                db.Jobs.Add(jobs);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            //ViewBag.CreatedById = new SelectList(db.Users, "Id", "Username", job.CreatedById);
            //ViewBag.DepartmentId = new SelectList(db.Departments, "Id", "Name", job.DepartmentId);
            //ViewBag.LastModifiedById = new SelectList(db.Users, "Id", "Username", job.LastModifiedById);
            return(View(jobCreateView));
        }
        public HttpResponseMessage SendNotification(NotifModels obj)
        {
            NotificationHub notificationHub = new NotificationHub();
            Notification    objNotif        = new Notification();

            objNotif.SentTo = obj.UserID;

            context.Configuration.ProxyCreationEnabled = false;
            context.Notifications.Add(objNotif);
            context.SaveChanges();

            notificationHub.SendNotification(objNotif.SentTo);

            var query = (from t in context.Notifications
                         select t).ToList();

            return(Request.CreateResponse(HttpStatusCode.OK, new { query }));
        }
예제 #12
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 ActionResult JobApplication(int?Id, int jobId)
        {
            if ((Id is null) || Id == 0)
            {
                var userId = (Membership.GetUser(User.Identity.Name) as CustomMembershipUser).UserId;

                if (IsApplicant(userId))
                {
                    var applicantId = (db.Applicants.Where(a => a.UserId == userId).FirstOrDefault()).Id;
                    var now         = DateTime.Now;

                    var aleadyApplied = db.Applications
                                        .Where(x => x.ApplicantId == applicantId)
                                        .Where(x => x.JobId == jobId)
                                        .FirstOrDefault();

                    if (aleadyApplied is null)
                    {
                        var application = new Application
                        {
                            ApplicantId = applicantId,
                            CreatedById = userId,
                            JobId       = jobId,
                            CreatedDate = now,
                            Date        = now,
                            Status      = AppliedJobStatus.InProgress
                        };

                        db.Applications.Add(application);
                        db.SaveChanges();
                        ViewBag.JobApplicationSuccess = "You applied Successfully";
                        return(View());
                    }
                    else
                    {
                        ViewBag.JobApplicationError = "You already applied for this Job";
                        return(View());
                    }
                }
                ViewBag.JobApplicationError = "Error! Select a job to apply for. Thank you.";
                return(View());
            }
예제 #14
0
        public ActionResult SubmitReview(AssessmentVM assessment)
        {
            int totalScore = assessment.Appearance
                             + assessment.Disposition
                             + assessment.Communication
                             + assessment.EducationalQualification
                             + assessment.RelevantExperience
                             + assessment.RelevantTechnicalExperience
                             + assessment.AnalyticalReasoningAbility
                             + assessment.GeneralKnowledge
                             + assessment.EstimateOfIntelligence;

            //var ass = (ICollection<AssessmentVM>)assessment;
            var reviewerId = (Membership.GetUser(User.Identity.Name) as CustomMembershipUser).UserId;
            var result     = new ReviewResult
            {
                //ReviewerId = (Membership.GetUser(User.Identity.Name) as CustomMembershipUser).UserId,
                //ApplicantId = assessment.ApplicantId,
                ReviewerId                  = reviewerId,
                CreatedById                 = reviewerId,
                ApplicantId                 = (db.Applicants.Where(a => a.ApplicantId == assessment.ApplicantId).FirstOrDefault()).Id,
                Appearance                  = assessment.Appearance,
                Disposition                 = assessment.Disposition,
                Communication               = assessment.Communication,
                EducationalQualification    = assessment.EducationalQualification,
                RelevantExperience          = assessment.RelevantExperience,
                RelevantTechnicalExperience = assessment.RelevantTechnicalExperience,
                AnalyticalReasoningAbility  = assessment.AnalyticalReasoningAbility,
                GeneralKnowledge            = assessment.GeneralKnowledge,
                EstimateOfIntelligence      = assessment.EstimateOfIntelligence,
                GeneralRemark               = assessment.GeneralRemark,
                Recommendation              = assessment.Recommendation,
                TotalScore                  = totalScore
            };

            db.ReviewResults.Add(result);
            db.SaveChanges();
            return(View());
        }
예제 #15
0
        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());
        }
예제 #16
0
        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));
        }
예제 #17
0
        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));
        }