public async Task GetSchedule()
        {
            if (!CrossConnectivity.Current.IsConnected)
            {
                // Optionally, you can show a warning saying 
                // the client is not connected
                return;
            }

            try
            {
                var client = new ServiceClient();
                var schedule = await client.GetScheduleForCity(_cityId);

                if (schedule != null)
                {
                    await Task.Run(() => from slot in schedule.Slots
                                         orderby slot.StartTime
                                         group slot by slot.DayFormatted
                        into slotGroup
                                         select new Grouping<string, Slot>(slotGroup.Key, slotGroup)).ContinueWith(r =>
                                     {
                                         GroupedSlots = new ObservableCollection<Grouping<string, Slot>>(r.Result);
                                     });
                }
            }
            catch (Exception)
            {
                ServiceError = true;
            }
        }
 private async Task<List<City>> GetRemoteCitiesAsync()
 {
     var client = new ServiceClient();
     var cities = await client.GetCities();
     return cities;
 }