public ActionResult Download(int id) { // create a generator, passing the repository as a parameter SmartDocument document = _repository.Documents.FirstOrDefault(x => x.DocumentId == id); if (document != null) { switch (document.Type) { case SmartDocument.SmartDocumentType.PPA: var ppaFactory = new SmartPPAFactory(_repository, document); return(File(ppaFactory.GenerateDocument(), "application/vnd.openxmlformats-officedocument.wordprocessingml.document", document.FileName)); case SmartDocument.SmartDocumentType.JobDescription: var jobFactory = new SmartJobDescriptionFactory(_repository, document); return(File(jobFactory.GenerateDocument(), "application/vnd.openxmlformats-officedocument.wordprocessingml.document", document.FileName)); case SmartDocument.SmartDocumentType.AwardForm: var awardFactory = new SmartAwardFactory(_repository, document); return(File(awardFactory.GenerateDocument(), "application/vnd.openxmlformats-officedocument.wordprocessingml.document", document.FileName)); case SmartDocument.SmartDocumentType.PAF: var pafFactory = new SmartPAFFactory(_repository, document); return(File(pafFactory.GenerateDocument(), "application/vnd.openxmlformats-officedocument.wordprocessingml.document", document.FileName)); default: return(NotFound()); } } else { return(NotFound()); } }
public IActionResult Edit(int id) { SmartDocument smartJob = _repository.JobDescriptionForms.FirstOrDefault(x => x.DocumentId == id); SmartJobDescriptionFactory factory = new SmartJobDescriptionFactory(_repository, smartJob); SmartJobDescriptionViewModel vm = factory.GetViewModelFromXML(); vm.JobList = _repository.Jobs.Select(x => new JobDescriptionListItem(x)).ToList(); vm.Users = _repository.Users.Select(x => new UserListItem(x)).ToList(); vm.Components = _repository.Components.ToList(); // return the view ViewData["Title"] = "Edit Job Description"; return(View(vm)); }
public IActionResult Edit(int id, [Bind( "DocumentId," + "FirstName," + "LastName," + "DepartmentIdNumber," + "PositionNumber," + "DepartmentDivision," + "DepartmentDivisionCode," + "WorkPlaceAddress," + "AuthorUserId," + "SupervisedByEmployee," + "JobId" )] SmartJobDescriptionViewModel form) { // if the querystring parameter id doesn't match the POSTed DcocumentId, return 404 if (id != form.DocumentId) { return(NotFound()); } if (!ModelState.IsValid) { // Model Validation failed // next, re-populate the VM drop down lists form.JobList = _repository.Jobs.Select(x => new JobDescriptionListItem(x)).ToList(); form.Users = _repository.Users.Select(x => new UserListItem(x)).ToList(); form.Components = _repository.Components.ToList(); ViewData["Title"] = "Edit Job Description: Error"; return(View(form)); } else { // validation success, create new generator and pass repo SmartJobDescriptionFactory factory = new SmartJobDescriptionFactory(_repository); if (form.JobId != 0) { JobDescription job = new JobDescription(_repository.Jobs.FirstOrDefault(x => x.JobId == form.JobId)); form.job = job; } else { return(NotFound()); } // call generator method to pass form data factory.UpdateSmartJobDescription(form); // redirect to success view with PPA as querystring param return(RedirectToAction("SaveSuccess", new { id = factory._jobDescription.DocumentId })); } }