public static UserApiGetResponse FromUser(User user, IEnumerable <Invitation> invitations = null) { var response = new UserApiGetResponse() { CurrentUser = user.Id }; response.Families = user.Families?.Select(f => ApiFamily.FromFamily(f)).ToArray() ?? new ApiFamily[] { }; response.Users = user.Families ?.SelectMany(f => f.Members) .Concat(new [] { user }) .Distinct() .Select(u => ApiUser.FromUser(u)) .ToArray() ?? new ApiUser[] { }; response.Invitations = invitations != null ? invitations.Select(i => ApiInvitation.FromInvitation(i)).ToArray() : new ApiInvitation[] { }; response.Lists = user.Families ?.SelectMany(f => f.Lists ?? new ShoppingList[] { }) .Distinct() .Select(l => ApiList.FromList(l)) .ToArray() ?? new ApiList[] { }; return(response); }