public UserIconLink_UserForApiContractViewModel(UserForApiContract user, int size = ImageHelper.UserTinyThumbSize, bool userInfo = false, bool tooltip = false)
 {
     User     = user;
     Size     = size;
     UserInfo = userInfo;
     Tooltip  = tooltip;
 }
        public DiscussionTopicContract(DiscussionTopic topic, IUserIconFactory userIconFactory, DiscussionTopicOptionalFields fields)
        {
            ParamIs.NotNull(() => topic);

            Author   = new UserForApiContract(topic.Author, userIconFactory, UserOptionalFields.MainPicture);
            Created  = topic.Created.ToUniversalTime();
            FolderId = topic.Folder.Id;
            Id       = topic.Id;
            Locked   = topic.Locked;
            Name     = topic.Name;

            if (fields.HasFlag(DiscussionTopicOptionalFields.Comments))
            {
                Comments = topic.Comments.Select(c => new CommentForApiContract(c, userIconFactory)).ToArray();
            }

            if (fields.HasFlag(DiscussionTopicOptionalFields.CommentCount))
            {
                CommentCount = topic.Comments.Count;
            }

            if (fields.HasFlag(DiscussionTopicOptionalFields.Content))
            {
                Content = topic.Content;
            }

            if (fields.HasFlag(DiscussionTopicOptionalFields.LastComment) && topic.Comments.Any())
            {
                LastComment = new CommentForApiContract(topic.Comments.MaxItem(c => c.Created),
                                                        userIconFactory, includeMessage: false);
            }
        }
        public SongListForApiContract(SongList list, ContentLanguagePreference languagePreference, IUserIconFactory userIconFactory, IAggregatedEntryImageUrlFactory imagePersister,
                                      SongListOptionalFields fields) : base(list)
        {
            ParamIs.NotNull(() => list);

            Author    = new UserForApiContract(list.Author, userIconFactory, UserOptionalFields.None);
            Deleted   = list.Deleted;
            EventDate = list.EventDate;
            Status    = list.Status;

            if (fields.HasFlag(SongListOptionalFields.Description))
            {
                Description = list.Description;
            }

            if (fields.HasFlag(SongListOptionalFields.Events))
            {
                Events = list.Events.Select(e => new ReleaseEventForApiContract(e, languagePreference, ReleaseEventOptionalFields.Venue, imagePersister)).OrderBy(e => e.Date).ThenBy(e => e.Name).ToArray();
            }

            if (fields.HasFlag(SongListOptionalFields.MainPicture))
            {
                MainPicture = list.Thumb != null ? new EntryThumbForApiContract(list.Thumb, imagePersister) : null;
            }

            if (fields.HasFlag(SongListOptionalFields.Tags))
            {
                Tags = list.Tags.ActiveUsages.Select(u => new TagUsageForApiContract(u, languagePreference)).OrderByDescending(u => u.Count).ToArray();
            }
        }
        public SongListForApiContract(SongList list, IUserIconFactory userIconFactory, IEntryImagePersister imagePersister,
                                      bool ssl, SongListOptionalFields fields) : base(list)
        {
            ParamIs.NotNull(() => list);

            Author    = new UserForApiContract(list.Author, userIconFactory, UserOptionalFields.None);
            EventDate = list.EventDate;

            if (fields.HasFlag(SongListOptionalFields.MainPicture))
            {
                MainPicture = (list.Thumb != null ? new EntryThumbForApiContract(list.Thumb, imagePersister, ssl) : null);
            }
        }
Example #5
0
        public SongListContract(SongList list, IUserPermissionContext permissionContext)
            : base(list)
        {
            ParamIs.NotNull(() => list);

            Author      = new UserForApiContract(list.Author);
            CanEdit     = EntryPermissionManager.CanEditSongList(permissionContext, list);
            Deleted     = list.Deleted;
            Description = list.Description;
            EventDate   = list.EventDate;
            Status      = list.Status;
            Thumb       = (list.Thumb != null ? new EntryThumbContract(list.Thumb) : null);
            Version     = list.Version;
        }
Example #6
0
        public AlbumReviewContract(AlbumReview review, IUserIconFactory userIconFactory) : this()
        {
            if (review == null)
            {
                throw new ArgumentNullException(nameof(review));
            }

            Id           = review.Id;
            AlbumId      = review.Album.Id;
            Date         = review.Date;
            LanguageCode = review.LanguageCode;
            Text         = review.Text;
            Title        = review.Title;
            User         = new UserForApiContract(review.User, userIconFactory, UserOptionalFields.MainPicture);
        }
        public ActivityEntryForApiContract(ActivityEntry activityEntry, EntryForApiContract entryForApiContract,
                                           IUserIconFactory userIconFactory,
                                           IUserPermissionContext permissionContext,
                                           ActivityEntryOptionalFields fields)
        {
            CreateDate = activityEntry.CreateDate.ToUniversalTime();
            EditEvent  = activityEntry.EditEvent;

            if (activityEntry.Author != null &&
                ((permissionContext.IsLoggedIn && (permissionContext.LoggedUserId == activityEntry.Author.Id || permissionContext.HasPermission(PermissionToken.DisableUsers))) ||
                 !activityEntry.Author.AnonymousActivity))
            {
                Author = new UserForApiContract(activityEntry.Author, userIconFactory, UserOptionalFields.MainPicture);
            }

            if (fields.HasFlag(ActivityEntryOptionalFields.ArchivedVersion) && activityEntry.ArchivedVersionBase != null)
            {
                ArchivedVersion = new ArchivedObjectVersionForApiContract(activityEntry.ArchivedVersionBase);
            }

            Entry = entryForApiContract;
        }
        public DiscussionFolderContract(DiscussionFolder folder, DiscussionFolderOptionalFields fields,
                                        IUserIconFactory userIconFactory)
        {
            ParamIs.NotNull(() => folder);

            Description = folder.Description;
            Id          = folder.Id;
            Name        = folder.Name;

            if (fields.HasFlag(DiscussionFolderOptionalFields.LastTopic) && folder.Topics.Any())
            {
                var lastTopic = folder.Topics.ToArray().MaxItem(t => t.Created);

                LastTopicAuthor = new UserForApiContract(lastTopic.Author, lastTopic.AuthorName, userIconFactory, UserOptionalFields.MainPicture);
                LastTopicDate   = folder.Topics.Max(t => t.Created).ToUniversalTime();
            }

            if (fields.HasFlag(DiscussionFolderOptionalFields.TopicCount))
            {
                TopicCount = folder.Topics.Count();
            }
        }
 public UserIconLinkOrName_UserForApiContractViewModel(UserForApiContract user, string name, int size = 20)
 {
     User = user;
     Name = name;
     Size = size;
 }