CAESGenome.Models.UserViewModel.CreateForPi C# (CSharp) Méthode

CreateForPi() public static méthode

public static CreateForPi ( IRepositoryFactory repositoryFactory, User user = null ) : UserViewModel
repositoryFactory IRepositoryFactory
user User
Résultat UserViewModel
        public static UserViewModel CreateForPi(IRepositoryFactory repositoryFactory, User user = null)
        {
            var viewModel = new UserViewModel()
                {
                    User = user ?? new User(),
                    Universities = repositoryFactory.UniversityRepository.Queryable.OrderBy(a => a.Name)
                                        .Select(a => new SelectListItem() { Text = a.Name, Value = a.Id.ToString() })
                                        .ToList(),
                    Departments = new List<SelectListItem>()
                };

            if (user != null)
            {
                if (user.University != null)
                {
                    viewModel.Departments =
                        repositoryFactory.DepartmentRepository.Queryable.Where(a => a.University == user.University)
                            .OrderBy(a => a.Name)
                            .Select(a => new SelectListItem() {Text = a.Name, Value = a.Id.ToString()})
                            .ToList();

                    var uni = viewModel.Universities.FirstOrDefault(a => a.Value == user.University.Id.ToString());
                    uni.Selected = true;
                }

                if (user.Department != null)
                {
                    var dept = viewModel.Departments.FirstOrDefault(a => a.Value == user.Department.Id.ToString());
                    dept.Selected = true;
                }

                viewModel.IsPi = Roles.IsUserInRole(user.UserName, RoleNames.PI);
                viewModel.IsStaff = Roles.IsUserInRole(user.UserName, RoleNames.Staff);
            }

            return viewModel;
        }