Пример #1
0
        public TimeRecordController(ITimeRecordBLL timeRecordBLL, IRepository<TimeRecord> timeRecordRepository, IUserBLL userBLL, ITimeRecordCalendarGenerator timeRecordCalendarGenerator)
        {
            Check.Require(timeRecordBLL != null);
            Check.Require(timeRecordCalendarGenerator != null);

            _timeRecordBLL = timeRecordBLL;
            _timeRecordRepository = timeRecordRepository;
            _userBLL = userBLL;
            _timeRecordCalendarGenerator = timeRecordCalendarGenerator;
        }
Пример #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;
        }