/// <summary>
        /// Sets the current active assignment
        /// </summary>
        /// <param name="visible"></param>
        private void SetAssignment(bool visible)
        {
            if (visible)
            {
                assignmentMapViewLayout.Visibility = ViewStates.Visible;
                assignment = assignmentViewModel.ActiveAssignment;

                buttonLayout.Visibility = ViewStates.Gone;
                timerLayout.Visibility  = ViewStates.Visible;

                var adapter = new SpinnerAdapter <AssignmentStatus> (assignmentViewModel.AvailableStatuses, this, Resource.Layout.SimpleSpinnerItem);
                adapter.TextColor     = Resources.GetColor(Resource.Color.greyspinnertext);
                adapter.Background    = Resources.GetColor(Resource.Color.assignmentblue);
                activeSpinner.Adapter = adapter;
                activeSpinner.SetSelection(assignmentViewModel.AvailableStatuses.ToList().IndexOf(assignment.Status));
                activeSpinner.SetBackgroundResource(Resource.Drawable.triangleblue);
                spinnerImage.SetImageResource(Resource.Drawable.EnrouteImage);

                number.Text    = assignment.Priority.ToString();
                job.Text       = string.Format("#{0} {1}\n{2}", assignment.JobNumber, assignment.StartDate.ToShortDateString(), assignment.CompanyName);
                name.Text      = assignment.ContactName;
                phone.Text     = assignment.ContactPhone;
                address.Text   = string.Format("{0}\n{1}, {2} {3}", assignment.Address, assignment.City, assignment.State, assignment.Zip);
                timerText.Text = assignmentViewModel.Hours.ToString(@"hh\:mm\:ss");
            }
            else
            {
                assignmentMapViewLayout.Visibility = ViewStates.Gone;
            }
        }
        public override View GetView(int position, View convertView, ViewGroup parent)
        {
            Assignment assignment = null;
            var        view       = convertView;

            if (view == null)
            {
                LayoutInflater inflator = (LayoutInflater)Context.GetSystemService(Context.LayoutInflaterService);
                view = inflator.Inflate(resourceId, null);
            }

            if (assignments.Count > position)
            {
                assignment = assignments [position];
            }

            if (assignment == null)
            {
                return(view);
            }

            var number            = view.FindViewById <TextView> (Resource.Id.assignmentItemNumber);
            var job               = view.FindViewById <TextView> (Resource.Id.assignmentJob);
            var name              = view.FindViewById <TextView> (Resource.Id.assignmentName);
            var phone             = view.FindViewById <TextView> (Resource.Id.assignmentPhone);
            var address           = view.FindViewById <TextView> (Resource.Id.assignmentAddress);
            var buttonLayout      = view.FindViewById <LinearLayout> (Resource.Id.assignmentButtonLayout);
            var timerLayout       = view.FindViewById <LinearLayout> (Resource.Id.assignmentTimerLayout);
            var timerlinearLayout = view.FindViewById <LinearLayout> (Resource.Id.timerLinearLayout);
            var spinner           = view.FindViewById <Spinner> (Resource.Id.assignmentStatus);
            var spinnerImage      = view.FindViewById <ImageView> (Resource.Id.assignmentStatusImage);
            var accept            = view.FindViewById <Button> (Resource.Id.assignmentAccept);
            var decline           = view.FindViewById <Button> (Resource.Id.assignmentDecline);
            var phoneButton       = view.FindViewById <RelativeLayout> (Resource.Id.assignmentPhoneLayout);
            var mapButton         = view.FindViewById <RelativeLayout> (Resource.Id.assignmentAddressLayout);

            mapButton.SetOnClickListener(this);
            phoneButton.SetOnClickListener(this);
            accept.SetOnClickListener(this);
            decline.SetOnClickListener(this);

            accept.Tag    = position;
            decline.Tag   = position;
            mapButton.Tag = position;

            if (assignment.Status == AssignmentStatus.New)
            {
                buttonLayout.Visibility = ViewStates.Visible;
                timerLayout.Visibility  = ViewStates.Gone;
            }
            else
            {
                buttonLayout.Visibility      = ViewStates.Gone;
                timerLayout.Visibility       = ViewStates.Visible;
                timerlinearLayout.Visibility = Context.Resources.Configuration.Orientation == Orientation.Landscape ? ViewStates.Invisible : ViewStates.Gone;

                spinner.Focusable = false;
                spinner.Tag       = position;
                var adapter = new SpinnerAdapter <AssignmentStatus> (assignmentViewModel.AvailableStatuses, Context, Resource.Layout.SimpleSpinnerItem);
                adapter.TextColor  = Context.Resources.GetColor(Resource.Color.greyspinnertext);
                adapter.Background = Color.White;
                spinner.Adapter    = adapter;

                spinner.SetSelection(assignmentViewModel.AvailableStatuses.ToList().IndexOf(assignment.Status));
                spinner.SetBackgroundResource(Resource.Drawable.trianglewhite);
                spinnerImage.SetImageResource(Resource.Drawable.HoldImage);

                spinner.OnItemSelectedListener = this;
            }

            number.Text  = assignment.Priority.ToString();
            job.Text     = string.Format("#{0} {1}\n{2}", assignment.JobNumber, assignment.StartDate.ToShortDateString(), assignment.CompanyName);
            name.Text    = assignment.ContactName;
            phone.Text   = assignment.ContactPhone;
            address.Text = string.Format("{0}\n{1}, {2} {3}", assignment.Address, assignment.City, assignment.State, assignment.Zip);

            return(view);
        }