Inheritance: UITableViewCell
        public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
        {
            if (ViewModel.CanLoadMore && !ViewModel.IsBusy && ViewModel.Trips.Count > 0 && indexPath.Row == ViewModel.Trips.Count - 1)
            {
                ViewModel.ExecuteLoadMorePastTripsCommandAsync().ContinueWith((t) =>
                {
                    InvokeOnMainThread(delegate { TableView.ReloadData(); });
                }, scheduler: System.Threading.Tasks.TaskScheduler.Current);
            }

            var trip = ViewModel.Trips[indexPath.Row];

            if (string.IsNullOrEmpty(trip.MainPhotoUrl))
            {
                var cell = tableView.DequeueReusableCell(TripCellIdentifier) as TripTableViewCell;

                if (cell == null)
                {
                    cell = new TripTableViewCell(new NSString(TripCellIdentifier));
                }

                cell.LocationName = trip.Name;
                cell.TimeAgo      = trip.TimeAgo;
                cell.Distance     = trip.TotalDistance;

                return(cell);
            }
            else
            {
                var cell = tableView.DequeueReusableCell(TripCellWithImageIdentifier) as TripTableViewCellWithImage;

                if (cell == null)
                {
                    cell = new TripTableViewCellWithImage(new NSString(TripCellWithImageIdentifier));
                }

                cell.DisplayImage.SetImage(new NSUrl(trip.MainPhotoUrl));
                cell.LocationName = trip.Name;
                cell.TimeAgo      = trip.TimeAgo;
                cell.Distance     = trip.TotalDistance;

                return(cell);
            }
        }
        public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
        {
			if (ViewModel.CanLoadMore && !ViewModel.IsBusy && ViewModel.Trips.Count > 0 && indexPath.Row == ViewModel.Trips.Count - 1)
			{
				ViewModel.ExecuteLoadMorePastTripsCommandAsync().ContinueWith((t) =>
				{
					InvokeOnMainThread(delegate { TableView.ReloadData(); });
				}, scheduler: System.Threading.Tasks.TaskScheduler.Current);
			}

			var trip = ViewModel.Trips[indexPath.Row];
			if (string.IsNullOrEmpty(trip.MainPhotoUrl))
			{
				var cell = tableView.DequeueReusableCell(TripCellIdentifier) as TripTableViewCell;

				if (cell == null)
				{
					cell = new TripTableViewCell(new NSString(TripCellIdentifier));
				}

				cell.LocationName = trip.Name;
				cell.TimeAgo = trip.TimeAgo;
				cell.Distance = trip.TotalDistance;

				return cell;
			}
			else
			{
				var cell = tableView.DequeueReusableCell(TripCellWithImageIdentifier) as TripTableViewCellWithImage;

				if (cell == null)
				{
					cell = new TripTableViewCellWithImage(new NSString(TripCellWithImageIdentifier));
				}

				cell.DisplayImage.SetImage(new NSUrl(trip.MainPhotoUrl));
				cell.LocationName = trip.Name;
				cell.TimeAgo = trip.TimeAgo;
				cell.Distance = trip.TotalDistance;

				return cell;
			}
        }