/// <summary>
 /// Goes to previous hospital.
 /// </summary>
 public void GoToPreviousHospital()
 {
     using (ApplicationCursor.SetCursor(Cursors.Wait))
     {
         var prevHospitalIx = CurrentHospitalIx - 1;
         if (prevHospitalIx < 0)
         {
             return;
         }
         CurrentHospitalId = EditingHospitalIdsList.ElementAt(prevHospitalIx);
         OnHospitalsEditing(EditingHospitalIdsList);
     }
 }
 /// <summary>
 /// Goes to next hospital.
 /// </summary>
 public void GoToNextHospital()
 {
     using (ApplicationCursor.SetCursor(Cursors.Wait))
     {
         var nextHospitalIx = CurrentHospitalIx + 1;
         if (nextHospitalIx >= EditingHospitalIdsList.Count)
         {
             return;
         }
         CurrentHospitalId = EditingHospitalIdsList.ElementAt(nextHospitalIx);
         OnHospitalsEditing(EditingHospitalIdsList);
     }
 }
        /// <summary>
        /// Saves the go to next hospital.
        /// </summary>
        public async void SaveGoToNextHospital()
        {
            using (ApplicationCursor.SetCursor(Cursors.Wait))
            {
                HospitalToSave = CurrentHospitalViewModel;
                var result = await OnSave2(false, true);

                if (result)
                {
                    var nextHospitalIx = CurrentHospitalIx + 1;
                    if (nextHospitalIx >= EditingHospitalIdsList.Count)
                    {
                        return;
                    }
                    CurrentHospitalId = EditingHospitalIdsList.ElementAt(nextHospitalIx);
                    OnHospitalsEditing(EditingHospitalIdsList);
                }
            }
        }
        /// <summary>
        /// Called when the implementer has been navigated to.
        /// </summary>
        /// <param name="navigationContext">The navigation context.</param>
        public override void OnNavigatedTo(NavigationContext navigationContext)
        {
            AvailableCounties = null;
            //CurrentHospitalViewModel.AvailableStates = null;
            AvailableStates          = null;
            CurrentHospitalViewModel = null;

            using (ApplicationCursor.SetCursor(Cursors.Wait))
            {
                CurrentHospitalId = (navigationContext.Parameters["HospitalId"] != null && int.Parse(navigationContext.Parameters["HospitalId"]) > 0)
                                            ? int.Parse(navigationContext.Parameters["HospitalId"])
                                            : -1;
                IsEditingHospitalsList = (navigationContext.Parameters["IsHospitalsListEditing"] != null && bool.Parse(navigationContext.Parameters["IsHospitalsListEditing"]));

                var hospIdsList = navigationContext.Parameters["HospitalIds"] != null ? navigationContext.Parameters["HospitalIds"].Split(',').ToList() : new List <string>();

                if (hospIdsList.Any())
                {
                    if (EditingHospitalIdsList == null)
                    {
                        EditingHospitalIdsList = new List <int>();
                    }
                    EditingHospitalIdsList.Clear();

                    hospIdsList.ForEach(id => EditingHospitalIdsList.Add(int.Parse(id)));

                    CurrentHospitalIx = EditingHospitalIdsList.Contains(CurrentHospitalId) ? EditingHospitalIdsList.FindIndex(id => id == CurrentHospitalId) : 0;
                }

                //if (!IsEditingHospitalsList)
                {
                    IsCreatingNewHospital = CurrentHospitalId == -1;
                    LoadModel(CurrentHospitalId);
                    InitializeHospitalModel(ConfigService, CurrentHospitalId);
                }
            }
        }