public virtual IActionResult ProjectProfessorsSelect(ProjectProfessorSearchModel searchModel) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageProjects)) { return(AccessDeniedKendoGridJson()); } //try to get a project with the specified id var project = _projectService.GetProjectById(searchModel.ProjectId); //?? throw new ArgumentException("No project found with the specified id"); //prepare model if (project != null) { var model = _projectModelFactory.PrepareProjectProfessorListModel(searchModel, project); return(Json(model)); } else { return(Json(new ProjectProfessorListModel())); } }
public ProjectProfessorListModel PrepareProjectProfessorListModel(ProjectProfessorSearchModel searchModel, Project project) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (project == null) { throw new ArgumentNullException(nameof(project)); } //get researcher educations //chai //var researcherEducations = researcher.ResearcherEducations.OrderByDescending(edu => edu.Degree).ToList(); var projectProfessors = _projectService.GetAllProjectProfessors(project.Id).ToList(); //prepare list model var model = new ProjectProfessorListModel { Data = projectProfessors.PaginationByRequestModel(searchModel).Select(x => { //fill in model values from the entity // var title = (x.Professor.Title != null) ? x.Professor.Title.TitleNameTH : string.Empty; // var fullName = (x.Professor != null) ? $"{title}{x.Professor.FirstName} {x.Professor.LastName}" : string.Empty; var projectProfessorModel = new ProjectProfessorModel { Id = x.Id, ProjectId = x.ProjectId, ProfessorId = x.ProfessorId, ProfessorTypeId = x.ProfessorTypeId, ProfessorTypeName = x.ProfessorType.GetAttributeOfType <EnumMemberAttribute>().Value, ProfessorName = x.ProfessorName, }; return(projectProfessorModel); }), Total = projectProfessors.Count }; return(model); }
public virtual ProjectProfessorSearchModel PrepareProjectProfessorSearchModel(ProjectProfessorSearchModel searchModel, Project project) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } if (project == null) { throw new ArgumentNullException(nameof(project)); } searchModel.ProjectId = project.Id; //prepare page parameters searchModel.SetGridPageSize(); return(searchModel); }