Beispiel #1
0
        public PartialFindResult <UserForApiContract> GetList(
            string query                = "",
            UserGroupId groups          = UserGroupId.Nothing,
            DateTime?joinDateAfter      = null,
            DateTime?joinDateBefore     = null,
            NameMatchMode nameMatchMode = NameMatchMode.Auto,
            int start                 = 0,
            int maxResults            = 10,
            bool getTotalCount        = false,
            UserSortRule?sort         = null,
            bool includeDisabled      = false,
            bool onlyVerified         = false,
            string knowsLanguage      = null,
            UserOptionalFields fields = UserOptionalFields.None)
        {
            var queryParams = new UserQueryParams {
                Common              = new CommonSearchParams(SearchTextQuery.Create(query, nameMatchMode), false, false),
                Group               = groups,
                IncludeDisabled     = includeDisabled,
                OnlyVerifiedArtists = onlyVerified,
                KnowsLanguage       = knowsLanguage,
                JoinDateAfter       = joinDateAfter,
                JoinDateBefore      = joinDateBefore,
                Sort   = sort ?? UserSortRule.Name,
                Paging = new PagingProperties(start, maxResults, getTotalCount)
            };

            return(queries.GetUsers(queryParams, user => new UserForApiContract(user, userIconFactory, fields)));
        }
Beispiel #2
0
 public PartialFindResult <UserForApiContract> GetList(
     string query                = "",
     UserGroupId groups          = UserGroupId.Nothing,
     NameMatchMode nameMatchMode = NameMatchMode.Auto,
     int start                 = 0,
     int maxResults            = 10,
     bool getTotalCount        = false,
     UserSortRule?sort         = null,
     bool includeDisabled      = false,
     bool onlyVerified         = false,
     string knowsLanguage      = null,
     UserOptionalFields fields = UserOptionalFields.None)
 {
     return(queries.GetUsers(SearchTextQuery.Create(query, nameMatchMode), groups, includeDisabled, onlyVerified, knowsLanguage, sort ?? UserSortRule.Name,
                             new PagingProperties(start, maxResults, getTotalCount), user => new UserForApiContract(user, userIconFactory, fields)));
 }
Beispiel #3
0
        public UserForApiContract(User user, IUserIconFactory iconFactory, UserOptionalFields optionalFields)
            : base(user)
        {
            Active      = user.Active;
            GroupId     = user.GroupId;
            MemberSince = user.CreateDate;

            if (optionalFields.HasFlag(UserOptionalFields.MainPicture) && !string.IsNullOrEmpty(user.Email))
            {
                var thumbUrl = iconFactory.GetIconUrl(user);

                MainPicture = new EntryThumbForApiContract {
                    UrlThumb = thumbUrl,
                };
            }
        }
Beispiel #4
0
 public RatedSongForUserForApiContract[] GetRatings(int songId, UserOptionalFields userFields, ContentLanguagePreference lang)
 {
     return(repository.HandleQuery(ctx => ctx.Load <Song>(songId).UserFavorites.Select(r => new RatedSongForUserForApiContract(r, userIconFactory, userFields)).ToArray()));
 }
Beispiel #5
0
 public UserForApiContract GetOne(int id, UserOptionalFields fields = UserOptionalFields.None) => queries.GetOne(id, fields);
Beispiel #6
0
 public UserForApiContract GetCurrent(UserOptionalFields fields = UserOptionalFields.None) => queries.GetUser(permissionContext.LoggedUserId, fields);
Beispiel #7
0
 public IEnumerable <RatedSongForUserForApiContract> GetRatings(int id, UserOptionalFields userFields,
                                                                ContentLanguagePreference lang = ContentLanguagePreference.Default)
 {
     return(queries.GetRatings(id, userFields, lang));
 }
Beispiel #8
0
 public UserForApiContract GetOne(int id, UserOptionalFields fields = UserOptionalFields.None)
 {
     return(queries.HandleQuery(ctx => new UserForApiContract(ctx.Load(id), userIconFactory, fields)));
 }
 public RatedSongForUserForApiContract(FavoriteSongForUser ratedSong, IUserIconFactory userIconFactory, UserOptionalFields userFields,
                                       IUserPermissionContext userPermissionContext)
 {
     Date   = ratedSong.Date;
     Rating = ratedSong.Rating;
     if (ratedSong.User.Options.PublicRatings || userPermissionContext.HasPermission(PermissionToken.ViewHiddenRatings))
     {
         User = new UserForApiContract(ratedSong.User, userIconFactory, userFields);
     }
 }
Beispiel #10
0
        public UserForApiContract(User user, string fallbackName, IUserIconFactory iconFactory, UserOptionalFields optionalFields)
            : base(user, fallbackName)
        {
            if (user == null)
            {
                return;
            }

            Active         = user.Active;
            GroupId        = user.GroupId;
            MemberSince    = user.CreateDate;
            VerifiedArtist = user.VerifiedArtist;

            if (optionalFields.HasFlag(UserOptionalFields.KnownLanguages))
            {
                KnownLanguages = user.KnownLanguages.Select(l => new UserKnownLanguageContract(l)).ToArray();
            }

            if (optionalFields.HasFlag(UserOptionalFields.MainPicture) && !string.IsNullOrEmpty(user.Email) && iconFactory != null)
            {
                MainPicture = iconFactory.GetIcons(user, ImageSizes.All);
            }

            if (optionalFields.HasFlag(UserOptionalFields.OldUsernames))
            {
                OldUsernames = user.OldUsernames.Select(n => new OldUsernameContract(n)).ToArray();
            }
        }
Beispiel #11
0
 public UserForApiContract(User user, IUserIconFactory iconFactory, UserOptionalFields optionalFields)
     : this(user, null, iconFactory, optionalFields)
 {
 }
 public RatedSongForUserForApiContract(FavoriteSongForUser ratedSong, IUserIconFactory userIconFactory, UserOptionalFields userFields)
 {
     this.Date   = ratedSong.Date;
     this.Rating = ratedSong.Rating;
     if (ratedSong.User.Options.PublicRatings)
     {
         User = new UserForApiContract(ratedSong.User, userIconFactory, userFields);
     }
 }