/// <summary> /// Determines if given mediadata is indexable /// </summary> /// <param name="media"></param> /// <returns></returns> public virtual bool AllowIndexing(MediaData media) { if (media == null) { return(false); } bool allowed = true; var ext = media.SearchFileExtension(); if (!string.IsNullOrWhiteSpace(ext)) { allowed = _AttachmentSettings?.SupportedFileExtensions?.Any(x => string.Compare(ext, x.Trim().TrimStart('.'), true) == 0) == true; } if (allowed && _AttachmentSettings.EnableFileSizeLimit) { long fileByteSize = -1; if (media?.BinaryData != null) { using (var stream = media.BinaryData.OpenRead()) { fileByteSize = stream.Length; } } allowed = _AttachmentSettings.FileSizeLimit <= fileByteSize; } return(allowed); }
/// <summary> /// Determines if given mediadata is indexable /// </summary> /// <param name="media"></param> /// <returns></returns> public virtual bool AllowIndexing(MediaData media) { if (media == null || !_attachmentSettings.EnableAttachmentPlugins) { return(false); } var allowed = true; var ext = media.SearchFileExtension(); if (!string.IsNullOrWhiteSpace(ext)) { allowed = _attachmentSettings?.SupportedFileExtensions?.Any(x => string.Compare(ext, x.Trim().TrimStart('.'), StringComparison.OrdinalIgnoreCase) == 0) == true; } if (!allowed || !_attachmentSettings.EnableFileSizeLimit) { return(allowed); } long fileByteSize = -1; if (media.BinaryData != null) { using (var stream = media.BinaryData.OpenRead()) { fileByteSize = stream.Length; } } allowed = fileByteSize > 1 && _attachmentSettings.FileSizeLimit <= fileByteSize; return(allowed); }