public override View GetView(int position, View convertView, ViewGroup parent)
        {
            var item = courses[position];

            if (convertView == null)
            {
                convertView = context.LayoutInflater.Inflate(Resource.Layout.CourseRowView, null);
            }

            var checkInButton = convertView.FindViewById <Button>(Resource.Id.checkInButton);

            convertView.FindViewById <TextView>(Resource.Id.checkInTimeTextView).Text = item.CheckInTime;
            convertView.FindViewById <TextView>(Resource.Id.courseTextView).Text      = item.CourseTitle;
            checkInButton.Enabled = item.IsEligibleForCheckIn;

            if (item.AlreadyCheckedIn)
            {
                checkInButton.Text = "Checked";
            }

            checkInButton.Click += async(sender, args) =>
            {
                var currentItem = courses[position];
                var result      = await _service.CheckInCourse(new CheckInCourseModel
                {
                    UserName = currentItem.UserName,
                    CourseId = currentItem.CourseId
                });

                if (!result.HasError)
                {
                    checkInButton.Text    = "Checked";
                    checkInButton.Enabled = false;
                }

                var message = result.HasError ? "Unable to check in, please try again" : "Course check in is succesfull";

                var alert = new AlertDialog.Builder(context);
                alert.SetTitle("Check In");
                alert.SetMessage(message);
                alert.SetPositiveButton("Ok", (senderAlert, args1) =>
                {
                });
                Dialog dialog = alert.Create();
                dialog.Show();
            };
            return(convertView);
        }