Exemplo n.º 1
0
        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);
        }