Ejemplo n.º 1
0
        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);
        }