예제 #1
0
        public JsonResult Delete(int id)
        {
            JsonResultBO result = new JsonResultBO(true);

            try
            {
                RecruitmentRequest entity = recruitmentRequestService.GetById(id);
                if (entity != null)
                {
                    recruitmentRequestService.Delete(entity);
                    result.Message = "Xóa biểu mẫu yêu cầu tuyển dụng thành công";
                }
                else
                {
                    result.Status  = false;
                    result.Message = "Biểu mẫu yêu cầu tuyển dụng không tồn tại";
                }
            }
            catch (Exception ex)
            {
                result.Status  = false;
                result.Message = "Xóa biểu mẫu yêu cầu tuyển dụng không thành công";
                logger.Error("Xóa biểu mẫu yêu cầu tuyển dụng không thành công", ex);
            }
            return(Json(result));
        }
예제 #2
0
        public async Task CreateCVAsync([FromForm] RecruitmentRequest input)
        {
            bool checkExist = await WorkScope.GetAll <CV>().AnyAsync(x => x.PostId == input.PostId &&
                                                                     x.UserId == input.UserId &&
                                                                     input.UserId.HasValue);

            if (checkExist)
            {
                throw new UserFriendlyException("Bạn đã ứng tuyển vị trí này");
            }

            var post = await WorkScope.GetAsync <Post>(input.PostId);

            var cv = ObjectMapper.Map <CV>(input);

            if (input.FileCV?.Length > 0)
            {
                string fileLocation = UploadFiles.CreateFolderIfNotExists(ConstantVariable.RootFolder, $@"{ConstantVariable.UploadFolder}\{ConstantVariable.CV}\{post.PostUrl}");
                string fileName     = await UploadFiles.UploadAsync(fileLocation, input.FileCV);

                cv.Link = $"{ConstantVariable.UploadFolder}/{ConstantVariable.CV}/{post.PostUrl}/{fileName}";
            }

            await WorkScope.InsertAsync(cv);
        }
예제 #3
0
        public JsonResult Save(TemplateRecruitmentRequestEditViewModel model)
        {
            var result = new JsonResultBO(true);

            try
            {
                if (ModelState.IsValid)
                {
                    RecruitmentRequest entity = new RecruitmentRequest();
                    if (model.Id <= 0)
                    {
                        entity = new RecruitmentRequest()
                        {
                            Title            = model.Title,
                            DepartmentId     = 0,
                            PositionId       = 0,
                            EstimateQuantity = 0,
                            Comment          = String.Empty,
                            UntilDate        = DateTime.Now,
                            CreatedDate      = DateTime.Now,
                            UpdatedDate      = DateTime.Now,
                            Status           = DateTime.Now.ToShortDateString(),
                            IsTemplate       = true,
                            SkillGroups      = string.Join(",", model.SkillIds.ToArray())
                        };
                        recruitmentRequestService.Create(entity);

                        //delete all old config
                        var oldConfig = configRecruitmentRequestService.FindBy(x => x.RequestId == entity.Id);
                        configRecruitmentRequestService.DeleteRange(oldConfig);

                        //add new config
                        var lattestConfig = configRecruitmentRequestService.GetConfigByRequest(entity);
                        SQLHelper.BulkInsert <ConfigRecruitmentRequest>(lattestConfig);
                        logger.InfoFormat("Thêm mới biểu mẫu yêu cầu tuyển dụng {0}", model.Title);
                    }
                    else
                    {
                        entity             = recruitmentRequestService.GetById(model.Id);
                        entity.Title       = model.Title;
                        entity.SkillGroups = string.Join(",", model.SkillIds.ToArray());
                        recruitmentRequestService.Update(entity);

                        logger.InfoFormat("Cập nhật biểu mẫu yêu cầu tuyển dụng {0}", model.Title);
                    }
                    return(Json(result));
                }
                result.Message = ModelState.GetErrors();
                result.Status  = false;
                return(Json(result));
            }
            catch (Exception ex)
            {
                result.Status  = false;
                result.Message = "Không cập nhật được";
                logger.Error("Lỗi cập nhật thông tin biểu mẫu yêu cầu tuyển dụng", ex);
            }
            return(Json(result));
        }
예제 #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            RecruitmentRequest recruitmentRequest = db.RecruitmentRequests.Find(id);

            db.RecruitmentRequests.Remove(recruitmentRequest);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #5
0
        public ViewResult sendmailtoall(RecruitmentRequest _objModelMail)
        {
            ViewBag.CompanyId = new SelectList(db.Companies, "CompanyId", "Name", _objModelMail.CompanyId);

            if (ModelState.IsValid)
            {
                for (int i = 1; i < 5; i++)
                {
                    MailMessage mail = new MailMessage();

                    // sandeepmaharjan55 @gmail.com

                    // mail.To.Add(new MailAddress(_objModelMail.To));
                    mail.To.Add("*****@*****.**");


                    mail.From    = new MailAddress("*****@*****.**");
                    mail.Subject = _objModelMail.Title;
                    string Body = " Announcing vacancy in " + _objModelMail.Description + " with vacancy seat of " + _objModelMail.NumOfOpening + " with Experience of year " + _objModelMail.Exp + " requested on date " + _objModelMail.RequestDate + " and the deadline is " + _objModelMail.Deadline + ". For further details contact";
                    mail.Body       = Body;
                    mail.IsBodyHtml = true;
                    SmtpClient smtp = new SmtpClient();
                    smtp.Host = "smtp.gmail.com";
                    smtp.Port = 587;
                    smtp.UseDefaultCredentials = false;
                    smtp.Credentials           = new System.Net.NetworkCredential("*****@*****.**", "Kathmandu1111");// Enter seders User name and password
                    smtp.EnableSsl             = true;

                    mail.Headers.Add("Disposition-Notification-To", "*****@*****.**");
                    mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;

                    mail.ReplyTo = mail.From;

                    smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
                    smtp.Send(mail);

                    db.RecruitmentRequests.Add(new RecruitmentRequest
                    {
                        CompanyId    = _objModelMail.CompanyId,
                        Title        = _objModelMail.Title,
                        Description  = _objModelMail.Description,
                        RequestDate  = _objModelMail.RequestDate,
                        NumOfOpening = _objModelMail.NumOfOpening,
                        Deadline     = _objModelMail.Deadline,
                        Exp          = _objModelMail.Exp
                    });
                    db.SaveChanges();
                }
                return(View(_objModelMail));
            }
            else
            {
                return(View());
            }
        }
예제 #6
0
 public ActionResult Edit([Bind(Include = "RecruitId,CompanyId,MyProperty,Title,Description,RequestDate,NumOfOpening,Deadline,Exp")] RecruitmentRequest recruitmentRequest)
 {
     if (ModelState.IsValid)
     {
         db.Entry(recruitmentRequest).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.CompanyId = new SelectList(db.Companies, "CompanyId", "Name", recruitmentRequest.CompanyId);
     return(View(recruitmentRequest));
 }
예제 #7
0
        public IEnumerable <ConfigRecruitmentRequest> GetConfigByRequest(RecruitmentRequest request)
        {
            var groupSkillIds = request.SkillGroups.ToListNumber <long>(',');

            foreach (var groupSkillId in groupSkillIds)
            {
                //lấy các nhóm kỹ năng
                var entityGroupSkill = recruitmentSkillRepository.GetById(groupSkillId);
                if (entityGroupSkill != null && !string.IsNullOrEmpty(entityGroupSkill.Skills))
                {
                    //danh sách kỹ năng của từng nhóm
                    var skillIds = entityGroupSkill.Skills.ToListNumber <long>(',');
                    foreach (var skillId in skillIds)
                    {
                        var entitySkill = recruitmentSkillDetailRepository.GetById(skillId);
                        if (entitySkill != null)
                        {
                            ConfigRecruitmentRequest config = new ConfigRecruitmentRequest()
                            {
                                RequestId    = request.Id,
                                CreatedDate  = DateTime.Now,
                                UpdatedDate  = DateTime.Now,
                                GroupSkillId = entityGroupSkill.Id,
                                SkillId      = entitySkill.Id,
                            };
                            if (entitySkill.DataType == DataTypeConstant.CATEGORY && entitySkill.CategoryId != null)
                            {
                                var dataCategoryIds = dataCategoryRepository.FindBy(x => x.GroupId == entitySkill.CategoryId)
                                                      .Select(x => x.Id).ToArray();
                                config.CategoryData = string.Join(",", dataCategoryIds);
                                config.CategoryId   = entitySkill.CategoryId;
                            }
                            else if (entitySkill.DataType == DataTypeConstant.NUMBER)
                            {
                                config.AbsoluteNumber = entitySkill.AbsoluteNumber;
                            }
                            else if (entitySkill.DataType == DataTypeConstant.TEXT)
                            {
                                config.TextValue = entitySkill.TextValue;
                            }

                            if (!string.IsNullOrEmpty(config.CategoryData) || !string.IsNullOrEmpty(config.TextValue) || config.AbsoluteNumber != null)
                            {
                                yield return(config);
                            }
                        }
                    }
                }
            }
        }
예제 #8
0
        // GET: Recruit/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            RecruitmentRequest recruitmentRequest = db.RecruitmentRequests.Find(id);

            if (recruitmentRequest == null)
            {
                return(HttpNotFound());
            }
            return(View(recruitmentRequest));
        }
예제 #9
0
        // GET: Recruit/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            RecruitmentRequest recruitmentRequest = db.RecruitmentRequests.Find(id);

            if (recruitmentRequest == null)
            {
                return(HttpNotFound());
            }
            ViewBag.CompanyId = new SelectList(db.Companies, "CompanyId", "Name", recruitmentRequest.CompanyId);
            return(View(recruitmentRequest));
        }
예제 #10
0
        public void GetRecruitmentRequestTest()
        {
            // Arrange
            var expectedRecruitmentRequest = new RecruitmentRequest(Contractype.PartTime, RequestingDepartment.Production, 3, "Graphic Designer", "", new User("test", "test", User.Roles.AdministrationDepartmentManager));

            // Act
            var recruitmentRequests = recruitmentRequestController.GetRecruitmentRequests();

            // Assert
            Assert.IsTrue(recruitmentRequests.Count >= 1);
            Assert.AreEqual(expectedRecruitmentRequest.Contractype, recruitmentRequests.First().Contractype);
            Assert.AreEqual(expectedRecruitmentRequest.RequestingDepartment, recruitmentRequests.First().RequestingDepartment);
            Assert.AreEqual(expectedRecruitmentRequest.YearsOfExperience, recruitmentRequests.First().YearsOfExperience);
            Assert.AreEqual(expectedRecruitmentRequest.JobTitle, recruitmentRequests.First().JobTitle);
            Assert.AreEqual(expectedRecruitmentRequest.JobDescription, recruitmentRequests.First().JobDescription);
        }
        public void SolveRecruitmentRequest(RecruitmentRequest recruitmentRequest, string choice)
        {
            recruitmentRequest.Reviewed = true;
            switch (choice)
            {
            case "approve":
                recruitmentRequest.Result = true;
                break;

            case "deny":
                recruitmentRequest.Result = false;
                break;

            default:
                recruitmentRequest.Reviewed = false;
                break;
            }
        }
        public RecruitmentRequest Create(Contractype contractype, RequestingDepartment requestingDepartment, string yearsOfExperience, string jobTitle, string jobDescription, User user)
        {
            if (string.IsNullOrEmpty(yearsOfExperience))
            {
                throw new ApplicationException("Years of experience for the job is not specified");
            }
            if (string.IsNullOrEmpty(jobTitle))
            {
                throw new ApplicationException("Job Title is not specified");
            }

            var recruitmentRequest = new RecruitmentRequest(contractype,
                                                            requestingDepartment,
                                                            int.Parse(yearsOfExperience),
                                                            jobTitle,
                                                            jobDescription,
                                                            user);

            Seed.recruitmentRequests.Add(recruitmentRequest);
            return(recruitmentRequest);
        }
        public JsonResult Save(RecruitmentRequestEditViewModel model)
        {
            var result = new JsonResultBO(true);

            try
            {
                if (ModelState.IsValid)
                {
                    RecruitmentRequest entity = new RecruitmentRequest();
                    if (model.Id <= 0)
                    {
                        entity = new RecruitmentRequest()
                        {
                            Title            = model.Title,
                            DepartmentId     = model.DepartmentId.ToNumber <int>(),
                            PositionId       = model.PositionId.ToNumber <int>(),
                            EstimateQuantity = model.EstimateQuantity.ToNumber <int>(),
                            Comment          = model.Comment,
                            UntilDate        = model.UntilDate.Value.ToStartDay(),
                            CreatedDate      = DateTime.Now,
                            UpdatedDate      = DateTime.Now,
                            Status           = YeuCauTuyenDungTrangThaiConst.MoiTao,
                            TemplateId       = model.TemplateId != null ? model.TemplateId : null,
                            SkillGroups      = model.SkillIds != null?string.Join(",", model.SkillIds.ToArray()) : null
                        };
                        recruitmentRequestService.Create(entity);

                        //delete all old config
                        var oldConfig = configRecruitmentRequestService.FindBy(x => x.RequestId == entity.Id);
                        configRecruitmentRequestService.DeleteRange(oldConfig);

                        //add new config
                        if (!model.IsChooseFromTemplate)
                        {
                            var lattestConfig = configRecruitmentRequestService.GetConfigByRequest(entity);
                            SQLHelper.BulkInsert <ConfigRecruitmentRequest>(lattestConfig);
                        }
                        else
                        {
                            var configTemplateData = configRecruitmentRequestService.FindBy(x => x.RequestId == model.TemplateId);
                            var listConfig         = new List <ConfigRecruitmentRequest>();
                            foreach (var configTemplate in configTemplateData)
                            {
                                configTemplate.Id        = 0;
                                configTemplate.RequestId = entity.Id;
                                listConfig.Add(configTemplate);
                            }
                            SQLHelper.BulkInsert <ConfigRecruitmentRequest>(listConfig);
                        }
                        logger.InfoFormat("Thêm mới yêu cầu tuyển dụng {0}", model.Title);
                    }
                    else
                    {
                        entity                  = recruitmentRequestService.GetById(model.Id);
                        entity.Title            = model.Title;
                        entity.DepartmentId     = model.DepartmentId.ToNumber <int>();
                        entity.PositionId       = model.PositionId.ToNumber <int>();
                        entity.EstimateQuantity = model.EstimateQuantity.ToNumber <int>();
                        entity.Comment          = model.Comment;
                        entity.UntilDate        = model.UntilDate.Value.ToStartDay();
                        entity.TemplateId       = model.TemplateId != null ? model.TemplateId : null;
                        entity.SkillGroups      = model.SkillIds != null?string.Join(",", model.SkillIds.ToArray()) : null;

                        recruitmentRequestService.Update(entity);

                        logger.InfoFormat("Cập nhật yêu cầu tuyển dụng {0}", model.Title);
                    }
                    return(Json(result));
                }
                result.Message = ModelState.GetErrors();
                result.Status  = false;
                return(Json(result));
            }
            catch (Exception ex)
            {
                result.Status  = false;
                result.Message = "Không cập nhật được";
                logger.Error("Lỗi cập nhật thông tin Module", ex);
            }
            return(Json(result));
        }