Example #1
0
        public ActionResult EditVacancy(PageEditVacancyWhithResponseViewModel model)
        {
            Vacancy updateVacancy = dbContext.Vacancies.Include(v => v.Employer.AccountUser)
                                    .Include(v => v.Employer.Company)
                                    .Include(v => v.City)
                                    .Include(i => i.TypeEmployment)
                                    .Include(i => i.ExperienceOfWork)
                                    .FirstOrDefault(i => i.Id == model.Id);

            updateVacancy.Name = model.NameVacancy;


            // --------------------------------- City  ----------------------------
            var newCity = dbContext.Cities.Include(i => i.Vacancies).ThenInclude(i => i.City)
                          .Include(i => i.Companies).ThenInclude(i => i.City)
                          .FirstOrDefault(city => city.Id == model.CityId);

            updateVacancy.City = newCity;

            // --------------------------------- FieldActivity  ----------------------------
            var field = dbContext.FieldActivities.Include(i => i.Vacancies)
                        .FirstOrDefault(f => f.Id == model.FieldId);


            updateVacancy.FieldActivity = field;

            // --------------------------------- Employments  ---------------------------

            var typeEmployment = dbContext.Employments.Include(e => e.Vacancies)
                                 .FirstOrDefault(emp => emp.Id == model.EmploymentId);

            updateVacancy.TypeEmployment = typeEmployment;

            // --------------------------------- ExperianceOfWork  ---------------------------

            var experience = dbContext.ExperienceOfWorks.Include(e => e.Vacancies)
                             .FirstOrDefault(e => e.Id == model.ExperienceOfWorkId);

            updateVacancy.ExperienceOfWork = experience;

            if (updateVacancy.Status == "Архів" && model.IsPublication == true)
            {
                updateVacancy.Status   = "Опублікована";
                updateVacancy.IsActive = true;
            }
            else if (updateVacancy.Status == "Опублікована" && model.IsPublication == true)
            {
                updateVacancy.Status   = "Архів";
                updateVacancy.IsActive = false;
            }


            updateVacancy.Description            = model.Description;
            updateVacancy.Requirement            = model.Requirement;
            updateVacancy.Responsibilities       = model.Responsibilities;
            updateVacancy.ForeignLanguages       = model.ForeignLanguages;
            updateVacancy.AdditionalRequirements = model.AdditionalRequirements;


            updateVacancy.IsUseCompanyContact  = model.UseCompanyContact;
            updateVacancy.IsUsePersonalContact = model.UsePersonalContact;

            //// todo model.Status

            if (model.UseCompanyContact)
            {
                updateVacancy.EmailPerson       = updateVacancy.Employer.Company.Email;
                updateVacancy.PhoneNumberPerson = updateVacancy.Employer.Company.PhoneNumber;

                updateVacancy.ContactNamePerson = updateVacancy.Employer.Company.Email;

                updateVacancy.IsUseCompanyContact = true;
            }
            else if (model.UsePersonalContact)
            {
                updateVacancy.EmailPerson       = updateVacancy.Employer.Contact.Email;
                updateVacancy.PhoneNumberPerson = updateVacancy.Employer.Contact.Phone;

                updateVacancy.ContactNamePerson = updateVacancy.Employer.Contact.Email;

                updateVacancy.IsUsePersonalContact = true;
            }
            else
            {
                updateVacancy.EmailPerson       = model.Email;
                updateVacancy.PhoneNumberPerson = model.PhoneNumber;
                updateVacancy.ContactNamePerson = model.ContactPerson;
            }



            dbContext.Vacancies.Update(updateVacancy);
            dbContext.SaveChanges();

            return(RedirectToAction(nameof(EditVacancy), new { vacancyId = updateVacancy.Id }));
        }
Example #2
0
        public ActionResult EditVacancy(Guid vacancyId)
        {
            var vacancy = dbContext.Vacancies.Include(v => v.Employer.AccountUser)
                          .Include(v => v.FieldActivity).Include(v => v.Employer.Company)
                          .Include(v => v.TypeEmployment)
                          .Include(v => v.ExperienceOfWork)
                          .Include(v => v.City)
                          .FirstOrDefault(v => v.Id == vacancyId);


            var cities = dbContext.Cities.Include(f => f.Vacancies).Select(city => new SelectListItem()
            {
                Value = city.Id.ToString(),
                Text  = city.Name
            }).ToList();


            var fields = dbContext.FieldActivities.Include(f => f.Vacancies).Select(field => new SelectListItem()
            {
                Value = field.Id.ToString(),
                Text  = field.Name
            }).ToList();

            var employments = dbContext.Employments.Include(f => f.Vacancies).Select(emp => new SelectListItem()
            {
                Value = emp.Id.ToString(),
                Text  = emp.Name
            }).ToList();


            var experiencesOfWork = dbContext.ExperienceOfWorks.Include(e => e.Vacancies).Select(ex => new SelectListItem()
            {
                Value = ex.Id.ToString(),
                Text  = ex.NameField
            }).ToList();


            var employer = vacancy.Employer;

            var model = new PageEditVacancyWhithResponseViewModel();

            model.Id          = vacancy.Id;
            model.NameVacancy = vacancy.Name;
            model.Cities      = cities;
            model.CityId      = vacancy.CityId;

            model.FieldsActivity = fields;
            model.FieldId        = vacancy.FieldActivityId;

            model.Employments  = employments;
            model.EmploymentId = vacancy.TypeEmployment.Id;

            model.ExperiencesOfWork  = experiencesOfWork;
            model.ExperienceOfWorkId = vacancy.ExperienceOfWork.Id;

            model.EmployerName = vacancy.Employer.AccountUser.Email;
            model.EmployerId   = vacancy.Employer.Id;

            model.DateCreate = vacancy.DateCreate;

            model.DatePublication = vacancy.DatePublication;
            model.Status          = vacancy.Status;

            model.Description            = vacancy.Description;
            model.Requirement            = vacancy.Requirement;
            model.Responsibilities       = vacancy.Responsibilities;
            model.ForeignLanguages       = vacancy.ForeignLanguages;
            model.AdditionalRequirements = vacancy.AdditionalRequirements;


            if (vacancy.IsUseCompanyContact || vacancy.IsUsePersonalContact)
            {
                model.PhoneNumber = vacancy.Employer?.Company?.PhoneNumber;
                model.Email       = vacancy.Employer?.Company?.Email;
            }
            else
            {
                model.ContactPerson = vacancy.ContactNamePerson;
                model.PhoneNumber   = vacancy.PhoneNumberPerson;
                model.Email         = vacancy.EmailPerson;
            }


            // }


            return(View("/Arrea/Employer/Views/Employee/EditVacancyWhithResponse.cshtml", model));
        }