private static void UpdateResponsibilities(JobVacancy modifiedVacancy, JobVacancy sourceVacancy)
        {
            var responsibilityComparer = new ResponsibilityEqualityComparer();
            var modified = modifiedVacancy.JobVacancyMainResponsibilities;
            var source   = sourceVacancy.JobVacancyMainResponsibilities;

            var added   = modified.Except(source, responsibilityComparer).ToArray();
            var deleted = source.Except(modified, responsibilityComparer).ToArray();

            if (deleted.Length > 0)
            {
                foreach (var responsibility in deleted)
                {
                    sourceVacancy.JobVacancyMainResponsibilities.Remove(responsibility);
                }
            }

            if (added.Length > 0)
            {
                foreach (var responsibility in added)
                {
                    sourceVacancy.JobVacancyMainResponsibilities.Add(responsibility);
                }
            }
        }
        private static void UpdateWorkingConditions(JobVacancy modifiedVacancy, JobVacancy sourceVacancy)
        {
            var workingConditionsComparer = new WorkingConditionsEqualityComparer();
            var modified = modifiedVacancy.JobVacancyWorkingConditions;
            var source   = sourceVacancy.JobVacancyWorkingConditions;

            var added   = modified.Except(source, workingConditionsComparer).ToArray();
            var deleted = source.Except(modified, workingConditionsComparer).ToArray();

            if (deleted.Length > 0)
            {
                foreach (var condition in deleted)
                {
                    sourceVacancy.JobVacancyWorkingConditions.Remove(condition);
                }
            }

            if (added.Length > 0)
            {
                foreach (var condition in added)
                {
                    sourceVacancy.JobVacancyWorkingConditions.Add(condition);
                }
            }
        }
        private static void UpdateRequirements(JobVacancy modifiedVacancy, JobVacancy sourceVacancy)
        {
            var requirementComparer = new RequirementEqualityComparer();
            var modified            = modifiedVacancy.JobVacancyRequirements;
            var source = sourceVacancy.JobVacancyRequirements;

            var added   = modified.Except(source, requirementComparer).ToArray();
            var deleted = source.Except(modified, requirementComparer).ToArray();

            if (deleted.Length > 0)
            {
                foreach (var requirement in deleted)
                {
                    sourceVacancy.JobVacancyRequirements.Remove(requirement);
                }
            }

            if (added.Length > 0)
            {
                foreach (var requirement in added)
                {
                    sourceVacancy.JobVacancyRequirements.Add(requirement);
                }
            }
        }
 public List <JobseekerResume> FindSuitEmployeers(JobVacancy vacancy)
 {
     return(_resumeRepoitory.FindAll().FindAll(x =>
     {
         return IsVacancyFitResume(x, vacancy);
     }));
 }
        public async Task <IActionResult> UpdateVacancy(int id)
        {
            var findUser = await _userManager.FindByNameAsync(User.Identity.Name);

            var findVacancy = _vacancyRepo.GetJobById(id);

            if (findUser.UserName == findVacancy.UserName)
            {
                JobVacancy jobVacancy = new JobVacancy()
                {
                    Age             = findVacancy.Age,
                    City            = findVacancy.City,
                    EmployerName    = findVacancy.EmployerName,
                    EndTime         = findVacancy.EndTime,
                    FullDescription = findVacancy.FullDescription,
                    JobDescription  = findVacancy.JobDescription,
                    JobName         = findVacancy.JobName,
                    PersonSex       = findVacancy.PersonSex,
                    PhoneNumber     = findVacancy.PhoneNumber,
                    Sallary         = findVacancy.Sallary,
                    StartTime       = findVacancy.StartTime,
                    Week            = findVacancy.Week,
                    UserName        = findVacancy.UserName,
                    Published       = findVacancy.Published,
                };
                return(View(jobVacancy));
            }
            else
            {
                ModelState.AddModelError("VacancyUpdateAuthorize", "მსგავსი განცხადება თქვენ არ გეკუთვნით");
            }
            return(RedirectToAction("Vacancys", "UserProduct"));
        }
        public async Task <IActionResult> UpdateVacancy(int id, JobVacancy jobVacancy)
        {
            var findUser = await _userManager.FindByNameAsync(User.Identity.Name);

            var findVacancy = _vacancyRepo.GetJobById(id);

            if (findUser.UserName == findVacancy.UserName)
            {
                if (ModelState.IsValid)
                {
                    findVacancy.Age             = jobVacancy.Age;
                    findVacancy.City            = jobVacancy.City;
                    findVacancy.EmployerName    = jobVacancy.EmployerName;
                    findVacancy.EndTime         = jobVacancy.EndTime;
                    findVacancy.FullDescription = jobVacancy.FullDescription;
                    findVacancy.JobDescription  = jobVacancy.JobDescription;
                    findVacancy.JobName         = jobVacancy.JobName;
                    findVacancy.PersonSex       = jobVacancy.PersonSex;
                    findVacancy.PhoneNumber     = jobVacancy.PhoneNumber;
                    findVacancy.Sallary         = jobVacancy.Sallary;
                    findVacancy.StartTime       = jobVacancy.StartTime;
                    findVacancy.Week            = jobVacancy.Week;
                    jobVacancy.UserName         = findVacancy.UserName;
                    jobVacancy.Published        = findVacancy.Published;
                    _vacancyRepo.SaveChange();
                    return(RedirectToAction("GetVacancyById", "Vacancy", new { id = id }));
                }
                return(View());
            }
            else
            {
                ModelState.AddModelError("", "მსგავსი განცხადება თქვენ არ გეკუთვნით");
            }
            return(View());
        }
        private static void UpdateMisc(JobVacancy modifiedVacancy, JobVacancy sourceVacancy)
        {
            var miscComparer = new MiscEqualityComparer();
            var modified     = modifiedVacancy.JobVacancyMiscs;
            var source       = sourceVacancy.JobVacancyMiscs;

            var added   = modified.Except(source, miscComparer).ToArray();
            var deleted = source.Except(modified, miscComparer).ToArray();

            if (deleted.Length > 0)
            {
                foreach (var misc in deleted)
                {
                    sourceVacancy.JobVacancyMiscs.Remove(misc);
                }
            }

            if (added.Length > 0)
            {
                foreach (var misc in added)
                {
                    sourceVacancy.JobVacancyMiscs.Add(misc);
                }
            }
        }
        /// <summary>
        ///    Adding vacancy
        /// </summary>
        /// <param name="aJobVacancy">Job vacancy to add</param>
        /// <returns>Added vacancy</returns>
        public async Task <JobVacancy> AddVacancyAsync(JobVacancy aJobVacancy)
        {
            var jobVacancy = _hrEntities.JobVacancies.Add(aJobVacancy);
            await _hrEntities.SaveChangesAsync().ConfigureAwait(false);

            return(jobVacancy);
        }
示例#9
0
        private static EmploymentType ConvertJobVacancy(JobVacancy vacancy)
        {
            EmploymentType employmentType;

            return(Enum.TryParse(vacancy.EmploymentType, true, out employmentType)
            ? employmentType
            : default(EmploymentType));
        }
示例#10
0
        private static Experience ConvertEmploymentType(JobVacancy vacancy)
        {
            Experience experience;

            return(Enum.TryParse(vacancy.WorkExperience, true, out experience)
            ? experience
            : default(Experience));
        }
示例#11
0
 public void Remove(JobVacancy vacancy)
 {
     using (ITransaction tx = _session.BeginTransaction())
     {
         _session.Delete(vacancy);
         tx.Commit();
     }
 }
示例#12
0
        public async Task Delete(int id)
        {
            JobVacancy jv = _context.JobVacancies.SingleOrDefault(a => a.JobId.Equals(id));

            if (jv != null)
            {
                _context.Remove(jv);
            }
        }
        public async Task <ActionResult> Create(JobVacancy jobVacancy)
        {
            if (ModelState.IsValid)
            {
                await _vacanciesLogic.AddNewVacancy(jobVacancy);

                return(RedirectToAction("Index", new { message = Message.AddVacancySuccess }));
            }
            return(RedirectToAction("Index", new { message = Message.Error }));
        }
示例#14
0
        public async Task <IActionResult> Vacancys(User user, JobVacancy jobVacancy)
        {
            var appUser = await _userManager.FindByNameAsync(User.Identity.Name);

            user.Email    = appUser.Email;
            user.UserName = appUser.UserName;
            var productList = _vacancyContext.GetAllJob(jobVacancy).Where(e => e.UserName == user.UserName).OrderByDescending(e => e.Published).ToList();

            return(View(productList));
        }
 public bool IsVacancyFitResume(JobseekerResume resume, JobVacancy vacancy)
 {
     if (resume != null && vacancy != null)
     {
         return(resume.Profession.Contains(vacancy.Name) || resume.About.Contains(vacancy.CompanyName));
     }
     else
     {
         return(false);
     }
 }
        public void AddVacancy(JobVacancy vacancy, ApplicationUser user)
        {
            vacancy.User = user;
            user.Vacancies.Add(vacancy);

            using (ITransaction tx = _session.BeginTransaction())
            {
                _session.SaveOrUpdate(user);
                tx.Commit();
            }
        }
示例#17
0
        public async Task EditVacancy(JobVacancy editeVacancy)
        {
            var vacancy = await _db.JobVacancies.FindAsync(editeVacancy.Id);

            vacancy.Salary             = editeVacancy.Salary;
            vacancy.VacancyDescription = editeVacancy.VacancyDescription;
            vacancy.VacancyName        = editeVacancy.VacancyName;
            vacancy.ContactPhone       = editeVacancy.ContactPhone;
            vacancy.Email            = editeVacancy.Email;
            _db.Entry(vacancy).State = EntityState.Modified;
            await _db.SaveChangesAsync();
        }
 public IActionResult CreateVacancy(JobVacancy jobVacancy)
 {
     if (ModelState.IsValid)
     {
         jobVacancy.Published = DateTime.Now;
         jobVacancy.UserName  = User.Identity.Name;
         _vacancyRepo.CreateJob(jobVacancy);
         _vacancyRepo.SaveChange();
         return(RedirectToAction("GetVacancyById", "Vacancy", new { id = jobVacancy.Id }));
     }
     return(View());
 }
示例#19
0
        public void AddJobVacancy(JobVacancyModel jobModel)
        {
            var job = new JobVacancy
            {
                Title       = jobModel.Title,
                VacancyUrl  = jobModel.VacancyUrl,
                CompanyName = jobModel.CompanyName,
                Description = jobModel.Description
            };

            _repository.Add(job);
        }
示例#20
0
        public async Task Insert(JobVacancyDTO jobVacancyDTO)
        {
            string[]   period = jobVacancyDTO.Period.Split('-');
            JobVacancy jv     = new JobVacancy();

            jv.JobTitle     = jobVacancyDTO.JobTitle;
            jv.VacancyName  = jobVacancyDTO.VacancyName;
            jv.PeriodeStart = Convert.ToDateTime(period[0]);
            jv.PeriodeEnd   = Convert.ToDateTime(period[1]);
            jv.Slots        = jobVacancyDTO.Slots ?? 0;
            jv.Note         = jobVacancyDTO.Note;
            _context.Add(jv);
        }
示例#21
0
        public async Task Update(JobVacancyDTO jobVacancyDTO)
        {
            string[] period = jobVacancyDTO.Period.Split('-');


            JobVacancy jv = _context.JobVacancies.FirstOrDefault(a => a.JobId.Equals(jobVacancyDTO.JobId));

            jv.JobTitle     = jobVacancyDTO.JobTitle;
            jv.VacancyName  = jobVacancyDTO.VacancyName;
            jv.PeriodeStart = Convert.ToDateTime(period[0]);
            jv.PeriodeEnd   = Convert.ToDateTime(period[1]);
            jv.Slots        = jobVacancyDTO.Slots ?? 0;
            jv.Note         = jobVacancyDTO.Note;
            _context.JobVacancies.Update(jv);
        }
        /// <summary>
        ///    Update vacancy
        /// </summary>
        /// <param name="aJobVacancy">Updated vacancy</param>
        /// <returns>true, if vacancy has been updated successfully, false otherwise</returns>
        public async Task <bool> UpdateVacancyAsync(JobVacancy aJobVacancy)
        {
            var affectedCount = 0;
            var sourceJob     = _hrEntities.JobVacancies.FirstOrDefault(vacancy => vacancy.JobId == aJobVacancy.JobId);

            if (sourceJob != null)
            {
                UpdateResponsibilities(aJobVacancy, sourceJob);
                UpdateRequirements(aJobVacancy, sourceJob);
                UpdateWorkingConditions(aJobVacancy, sourceJob);
                UpdateMisc(aJobVacancy, sourceJob);
                UpdateRestRequirements(aJobVacancy, sourceJob);
            }

            affectedCount += await _hrEntities.SaveChangesAsync().ConfigureAwait(false);

            return(affectedCount > 0);
        }
示例#23
0
        public async Task <ActionResult> NewJobVacancy([FromBody] JobVacancy jobVacancy)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var id = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            if (await permissionService.UserHasPermission(id, "register_job_vacancy") == false)
            {
                return(Unauthorized());
            }

            await jobService.NewJobVacancy(jobVacancy);

            return(Ok());
        }
 public void Add(JobVacancy job)
 {
     _dbContext.JobVacancies.Add(job);
     _dbContext.SaveChanges();
 }
示例#25
0
 public async Task AddNewVacancy(JobVacancy newVacancy)
 {
     _db.JobVacancies.Add(newVacancy);
     await _db.SaveChangesAsync();
 }
 public void AddVacancy(JobVacancy vacancy)
 {
     _repository.Save(vacancy);
 }
 public IActionResult GetAllVacancy(string searchCity, string searchSallary, string searchString, JobVacancy jobVacancy)
 {
     if (searchString != null && searchSallary != null && searchCity != null)
     {
         if (searchSallary == "ზრდადი >")
         {
             return(View(_vacancyRepo.GetAllJob(jobVacancy).OrderByDescending(e => e.Published)
                         .OrderBy(e => e.Sallary)
                         .Where(e => e.City.ToString()
                                .StartsWith(searchCity)).Where(e => e.JobName.StartsWith(searchString) ||
                                                               e.PhoneNumber.Contains(searchString))));
         }
         else if (searchSallary == "კლებადი <")
         {
             return(View(_vacancyRepo.GetAllJob(jobVacancy)
                         .OrderByDescending(e => e.Published)
                         .OrderByDescending(e => e.Sallary)
                         .Where(e => e.City.ToString()
                                .StartsWith(searchCity)).Where(e => e.JobName.StartsWith(searchString) ||
                                                               e.PhoneNumber.Contains(searchString))));
         }
     }
     else if (searchString != null && searchSallary == null && searchCity == null)
     {
         return(View(_vacancyRepo.GetAllJob(jobVacancy)
                     .OrderByDescending(e => e.Published)
                     .Where(e => e.JobName.StartsWith(searchString) ||
                            e.PhoneNumber.Contains(searchString))));
     }
     else if (searchSallary == "ზრდადი >" && searchString == null && searchCity == null)
     {
         return(View(_vacancyRepo.GetAllJob(jobVacancy)
                     .OrderByDescending(e => e.Published)
                     .OrderBy(e => e.Sallary)));
     }
     else if (searchSallary == "კლებადი <" && searchString == null && searchCity == null)
     {
         return(View(_vacancyRepo.GetAllJob(jobVacancy)
                     .OrderByDescending(e => e.Published)
                     .OrderByDescending(e => e.Sallary)));
     }
     else if (searchCity != null && searchString == null && searchSallary == null)
     {
         return(View(_vacancyRepo.GetAllJob(jobVacancy)
                     .OrderByDescending(e => e.Published)
                     .Where(e => e.City.ToString().StartsWith(searchCity))));
     }
     else if (searchCity != null && searchString != null && searchSallary == null)
     {
         return(View(_vacancyRepo.GetAllJob(jobVacancy)
                     .OrderByDescending(e => e.Published)
                     .Where(e => e.City.ToString()
                            .StartsWith(searchCity))
                     .Where(e => e.JobName.StartsWith(searchString) ||
                            e.PhoneNumber.Contains(searchString))));
     }
     else if (searchSallary == "ზრდადი >" && searchString != null && searchCity == null)
     {
         return(View(_vacancyRepo.GetAllJob(jobVacancy)
                     .OrderByDescending(e => e.Published)
                     .OrderBy(e => e.Sallary)
                     .Where(e => e.JobName.StartsWith(searchString) ||
                            e.PhoneNumber.Contains(searchString))));
     }
     else if (searchSallary == "კლებადი <" && searchString != null && searchCity == null)
     {
         return(View(_vacancyRepo.GetAllJob(jobVacancy)
                     .OrderByDescending(e => e.Published)
                     .OrderByDescending(e => e.Sallary)
                     .Where(e => e.JobName.StartsWith(searchString) ||
                            e.PhoneNumber.Contains(searchString))));
     }
     else if (searchSallary == "ზრდადი >" && searchString == null && searchCity != null)
     {
         return(View(_vacancyRepo.GetAllJob(jobVacancy)
                     .OrderByDescending(e => e.Published)
                     .OrderBy(e => e.Sallary)
                     .Where(e => e.City.ToString().StartsWith(searchCity))));
     }
     else if (searchSallary == "კლებადი <" && searchString == null && searchCity != null)
     {
         return(View(_vacancyRepo.GetAllJob(jobVacancy)
                     .OrderByDescending(e => e.Published)
                     .OrderByDescending(e => e.Sallary)
                     .Where(e => e.City.ToString().StartsWith(searchCity))));
     }
     return(View(_vacancyRepo.GetAllJob(jobVacancy).OrderByDescending(e => e.Published)));
 }
 public async Task<IHttpActionResult> Post(JobVacancy job)
 {
     await _dbContext.AddAsync(job);
     await _dbContext.SaveChangesAsync();
     return Ok(job);
 }
 public IActionResult GetAllVacancy(JobVacancy jobVacancy)
 {
     return(View(_vacancyRepo.GetAllJob(jobVacancy).OrderByDescending(e => e.Published)));
 }
示例#30
0
 public Task <int> NewJobVacancy(JobVacancy jobVacancy)
 {
     context.Add(jobVacancy);
     return(context.SaveChangesAsync());
 }