public ActionResult Edit(int?id) { if (id == null) { return(NotFound()); } int userIdCurrentlyLoggedIn = Int32.Parse(User.Claims.FirstOrDefault(uc => uc.Type == ClaimTypes.NameIdentifier).Value); JobListing jobListing = _jobListingsRepository.GetJobListingById(id); Template templateFromDb = _templatesRepository.GetTemplateByJobId(id); bool isAllowedToSeeJobListing = _jobListingsRepository.isAllowedToModifyJobListing(userIdCurrentlyLoggedIn, jobListing.CompanyId); if (!isAllowedToSeeJobListing) { return(NotFound()); } List <Company> companiesAssignedToUserLoggedIn = _companiesRepository.GetCompaniesAssignedToUser(userIdCurrentlyLoggedIn); List <Category> categories = _categoriesRepository.GetCategories(); List <string> regions = new List <string> { "Africa", "Asia", "The Caribbean", "Central America", "Europe", "Oceania", "North America", "South America" }; List <string> types = new List <string> { "Full Time", "Part Time", "Remote", "Voluntary or carity acts" }; EditJobListingWithTemplateViewModel editJobListingWithTemplateViewModel = new EditJobListingWithTemplateViewModel { Title = jobListing.Title, Position = jobListing.Position, Type = jobListing.Type, Description = jobListing.Description, Location = jobListing.Location, JobListingId = userIdCurrentlyLoggedIn, CategoryId = jobListing.Category.CategoryId, CompanyId = jobListing.Company.CompanyId, Region = jobListing.Region, UserId = jobListing.JobFinderUser.UserId, IsActive = Convert.ToBoolean(jobListing.IsActive), Education = Convert.ToBoolean(templateFromDb.Education), WorkExperience = Convert.ToBoolean(templateFromDb.WorkExperience), Skills = Convert.ToBoolean(templateFromDb.Skills), OtherNotes = Convert.ToBoolean(templateFromDb.OtherNotes) }; ViewData["Companies"] = new SelectList(companiesAssignedToUserLoggedIn, "CompanyId", "Name"); ViewData["Categories"] = new SelectList(categories, "CategoryId", "Name"); ViewData["Regions"] = new SelectList(regions, regions); ViewData["Types"] = new SelectList(types, types); ViewBag.SelectedNav = "Dashboard"; return(View(editJobListingWithTemplateViewModel)); }
public ActionResult Edit(int id, [Bind("JobListingId, CompanyId, CategoryId,Title,Type,Position,Region,Location,Description,IsActive,WorkExperience,Education,Skills,OtherNotes")] EditJobListingWithTemplateViewModel editJobListingWithTemplateViewModel) { JobListing jobListingFromDb = _jobListingsRepository.GetJobListingById(id); int userIdCurrentlyLoggedIn = Int32.Parse(User.Claims.FirstOrDefault(uc => uc.Type == ClaimTypes.NameIdentifier).Value); if (!_jobListingsRepository.isAllowedToModifyJobListing(userIdCurrentlyLoggedIn, jobListingFromDb.CompanyId)) { return(NotFound()); } if (ModelState.IsValid) { jobListingFromDb.Location = editJobListingWithTemplateViewModel.Location; jobListingFromDb.Position = editJobListingWithTemplateViewModel.Position; jobListingFromDb.Region = editJobListingWithTemplateViewModel.Region; jobListingFromDb.Title = editJobListingWithTemplateViewModel.Title; jobListingFromDb.Type = editJobListingWithTemplateViewModel.Type; jobListingFromDb.Description = editJobListingWithTemplateViewModel.Description; jobListingFromDb.CategoryId = editJobListingWithTemplateViewModel.CategoryId; jobListingFromDb.CompanyId = editJobListingWithTemplateViewModel.CompanyId; jobListingFromDb.IsActive = Convert.ToByte(editJobListingWithTemplateViewModel.IsActive); if (!editJobListingWithTemplateViewModel.IsActive) { jobListingFromDb.JobListingClosedAt = DateTime.Now; } _jobListingsRepository.EditJobListing(jobListingFromDb); Template templateFromDb = _templatesRepository.GetTemplateByJobId(id); templateFromDb.WorkExperience = Convert.ToByte(editJobListingWithTemplateViewModel.WorkExperience); templateFromDb.Skills = Convert.ToByte(editJobListingWithTemplateViewModel.Skills); templateFromDb.Education = Convert.ToByte(editJobListingWithTemplateViewModel.Education); templateFromDb.OtherNotes = Convert.ToByte(editJobListingWithTemplateViewModel.OtherNotes); templateFromDb.JobListingId = id; templateFromDb.UserId = userIdCurrentlyLoggedIn; templateFromDb.TemplateUpdatedAt = DateTime.Now; _templatesRepository.EditTemplate(templateFromDb); ViewBag.SelectedNav = "Dashboard"; return(RedirectToAction(nameof(Index))); } ViewBag.SelectedNav = "Dashboard"; return(View(editJobListingWithTemplateViewModel)); }