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;
}