private async Task<Tuple<AppointmentId, AppointmentItemWrapper>[]> GetAppointmentsWithId (AppointmentId[] ids)
 {
   return (await Task.WhenAll (ids.Select (async i => Tuple.Create( i, await GetOrNull (i) )))).Where (a => a.Item2 != null).ToArray();
 }
 private async Task<AppointmentItemWrapper[]> GetAppointments(AppointmentId[] ids)
 {
   return (await Task.WhenAll(ids.Select(GetOrNull).Where(a => a != null))).ToArray();
 }