/// <summary>
        /// Creates the user view model, including populating the lookups
        /// </summary>
        public static UserViewModel Create(IUserBLL userBLL, IRepository repository)
        {
            var viewModel = new UserViewModel
                                {
                                    Supervisors = userBLL.GetSupervisors().OrderBy(a => a.LastName).ToList(),
                                    Projects = userBLL.GetAllProjectsByUser(repository.OfType<Project>()).OrderBy(a => a.Name).ToList(),
                                    FundTypes = userBLL.GetAvailableFundTypes(repository.OfType<FundType>()).OrderBy(a => a.Name).ToList(),
                                    AvailableRoles = userBLL.GetVisibleRoles(),
                                    Subordinates = new List<User>()
                                };

            return viewModel;
        }
Example #2
0
        public static TimeRecordEntryViewModel Create(IRepository repository, IUserBLL userBLL, ITimeRecordBLL timeRecordBLL, TimeRecord timeRecord, ITimeRecordCalendarGenerator calendarGenerator)
        {
            var viewModel = new TimeRecordEntryViewModel
                                {
                                    TimeRecord = timeRecord,
                                    TotalHours =
                                        repository.OfType<TimeRecordEntry>()
                                            .Queryable
                                            .Where(x => x.Record.Id == timeRecord.Id)
                                            .Sum(x => x.Hours),
                                    CalendarDays = calendarGenerator.GenerateCalendar(timeRecord),
                                    Projects = userBLL.GetAllProjectsByUser(repository.OfType<Project>()).ToList(),
                                    FundTypes = userBLL.GetUser().FundTypes,
                                    ActivityCategories =
                                        repository.OfType<ActivityCategory>()
                                        .Queryable
                                        .Where(c => c.IsActive)
                                        .OrderBy(c => c.Name)
                                        .ToList(),
                                    AdjustmentEntries =
                                        repository.OfType<TimeRecordEntry>()
                                        .Queryable
                                        .Where(x => x.Record.Id == timeRecord.Id && x.AdjustmentDate != null)
                                        .OrderBy(x => x.AdjustmentDate)
                                        .ToList()
                                };

            return viewModel;
        }
        public static UserListViewModel Create(IUserBLL userBLL, IRepository<Project> projectRepository, int? filterProjectId)
        {
            var users = filterProjectId == null
                            ? userBLL.GetAllUsers()
                            : userBLL.GetAllUsers().Where(x => x.Projects.Contains(projectRepository.GetById(filterProjectId.Value)));

            var viewModel = new UserListViewModel
                                {
                                    Users = users.ToList(),
                                    Projects = userBLL.GetAllProjectsByUser(projectRepository).ToList(),
                                    SelectedFilterProjectId = filterProjectId
                                };

            return viewModel;
        }