public TimeEntriesLogViewSource(
            ObservableGroupedOrderedCollection <TimeEntryViewModel> collection,
            string cellIdentifier,
            ITimeService timeService,
            ISchedulerProvider schedulerProvider)
            : base(collection, cellIdentifier)
        {
            Ensure.Argument.IsNotNull(timeService, nameof(timeService));
            Ensure.Argument.IsNotNull(schedulerProvider, nameof(schedulerProvider));

            this.timeService       = timeService;
            this.schedulerProvider = schedulerProvider;

            if (!UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
            {
                deleteTableViewRowAction = UITableViewRowAction.Create(
                    UITableViewRowActionStyle.Destructive,
                    Resources.Delete,
                    handleDeleteTableViewRowAction);
                deleteTableViewRowAction.BackgroundColor = Foundation.MvvmCross.Helper.Color.TimeEntriesLog.DeleteSwipeActionBackground.ToNativeColor();
            }

            ContinueTap     = continueTapSubject.AsDriver(schedulerProvider);
            SwipeToContinue = swipeToContinueSubject.AsDriver(schedulerProvider);
            SwipeToDelete   = swipeToDeleteSubject.AsDriver(schedulerProvider);
            FirstCell       = firstCellSubject.AsDriver(schedulerProvider);
        }