public RootAttachmentsProviderConfig(SubjectType typeOfSubject, string subjectIdentifier, AttachmentType attachmentType) { TypeOfSubject = typeOfSubject; AttachmentType = attachmentType; Predicate = attachmentModel => { bool isFiltered = attachmentModel.HostType == TypeOfSubject.ToAttachmentHostType() && attachmentModel.HostId == subjectIdentifier; return(isFiltered); }; if (attachmentType == AttachmentType.Note) { DecoratorTransform = NoteDecoratorTransform; } else if (attachmentType == AttachmentType.Photo) { DecoratorTransform = PhotoDecoratorTransform; } else if (attachmentType == AttachmentType.PhotoAlbum) { DecoratorTransform = PhotoAlbumDecoratorTransform; } else { throw new NotImplementedException(); } }