public override AppointmentBookViewModel Convert(IAppointmentBookDataSource dataSource, DateTime timePeriodStart, TimePeriodType timeView, AppointmentBookViewModelFilter columnFilter) { DateTime startTime; DateTime endTime; switch (timeView) { case TimePeriodType.Monthly: startTime = timePeriodStart.ToBeginningOfMonth(); endTime = timePeriodStart.AddMonths(1).ToBeginningOfMonth(); break; default: startTime = timePeriodStart.ToMidnight(); endTime = timePeriodStart.ToNextDay().ToMidnight(); break; } return(new UnallocatedBookViewModel( "Unallocated", from appointment in dataSource.GetAppointments(new UnallocatedColumn()) select Convert(appointment), startTime, timeView )); }
public virtual AppointmentBookViewModel Convert(IAppointmentBookDataSource dataSource, DateTime timePeriodStart, TimePeriodType timeView, AppointmentBookViewModelFilter columnFilter) { return(new AppointmentBookViewModel( ConvertColumns(dataSource), timePeriodStart, timeView, columnFilter )); }
protected virtual IEnumerable <ColumnViewModel> ConvertColumns(IAppointmentBookDataSource dataSource) { var appointmentColumnViewModels = new List <ColumnViewModel>(); foreach (var column in dataSource.GetColumns()) { var appointmentViewModels = new List <AppointmentViewModel>(); foreach (var appointment in dataSource.GetAppointments(column)) { appointmentViewModels.Add(Convert(appointment)); } var columnViewModel = Convert(column, appointmentViewModels); appointmentColumnViewModels.Add(columnViewModel); } return(appointmentColumnViewModels); }
protected AppointmentBook(DataSourceToViewModelConverter viewModelGenerator) { _dataSource = null; _timePeriodType = TimePeriodType.DailyHourly; _timePeriodStart = DateTime.Now.ToMidnight(); _columnFilter = AppointmentBookViewModelFilter.All; _lastDraggedOver = Tuple.Create(int.MinValue, int.MinValue, false); ViewModelGenerator = viewModelGenerator; _resizing = false; base.AllowDrop = true; base.GiveFeedback += ResourceCalendar_DragGiveFeedback; base.DragEnter += ResourceCalendar_DragEnter; base.DragLeave += ResourceCalendar_DragLeave; base.DragOver += ResourceCalendar_DragOver; base.DragDrop += ResourceCalendar_DragDrop; }