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 })); }
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)); }