Task <Message[]> GetClientGroupMessages(GroupKind groupKind) { switch (groupKind) { case GroupKind.None: var tcs = new TaskCompletionSource <Message[]>(); tcs.SetResult(new Message[0]); return(tcs.Task); case GroupKind.MyFeed: return(client.GetMyFeed()); case GroupKind.AllMessages: return(client.GetAllMessages()); case GroupKind.Popular: return(client.GetPopular()); case GroupKind.WithMedia: return(client.GetWithMedia()); default: throw new ArgumentException("groupKind"); } }