예제 #1
0
        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 }));
            }
        }