Compare commits
2 Commits
bc8c0396a6
...
d989fdf2f2
| Author | SHA1 | Date | |
|---|---|---|---|
| d989fdf2f2 | |||
| 885261b384 |
@@ -1,6 +1,7 @@
|
||||
using LiquidCode.Domain.Enums;
|
||||
using LiquidCode.Domain.Interfaces.Services;
|
||||
using LiquidCode.Infrastructure.External.S3;
|
||||
using LiquidCode.Shared.Constants;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
namespace LiquidCode.Domain.Services;
|
||||
@@ -69,14 +70,15 @@ public class MediaService : IMediaService
|
||||
|
||||
public MediaType GetMediaType(string fileName)
|
||||
{
|
||||
var extension = Path.GetExtension(fileName).ToLowerInvariant();
|
||||
var extension = Path.GetExtension(fileName);
|
||||
|
||||
return extension switch
|
||||
{
|
||||
".jpg" or ".jpeg" or ".png" or ".gif" or ".bmp" or ".tiff" or ".webp" => MediaType.Images,
|
||||
".mp4" or ".avi" or ".mkv" or ".mov" or ".wmv" or ".flv" or ".webm" => MediaType.Videos,
|
||||
".mp3" or ".wav" or ".flac" or ".aac" or ".ogg" or ".wma" => MediaType.Audio,
|
||||
".zip" or ".rar" or ".7z" or ".tar" or ".gz" or ".bz2" => MediaType.Archives,
|
||||
".txt" or ".md" or ".markdown" or ".tex" or ".latex" => MediaType.Documents,
|
||||
_ when MediaTypeExtensions.ImageExtensions.Contains(extension) => MediaType.Images,
|
||||
_ when MediaTypeExtensions.VideoExtensions.Contains(extension) => MediaType.Videos,
|
||||
_ when MediaTypeExtensions.AudioExtensions.Contains(extension) => MediaType.Audio,
|
||||
_ when MediaTypeExtensions.ArchiveExtensions.Contains(extension) => MediaType.Archives,
|
||||
_ when MediaTypeExtensions.DocumentExtensions.Contains(extension) => MediaType.Documents,
|
||||
_ => MediaType.Other
|
||||
};
|
||||
}
|
||||
|
||||
74
LiquidCode/Shared/Constants/MediaTypeExtensions.cs
Normal file
74
LiquidCode/Shared/Constants/MediaTypeExtensions.cs
Normal file
@@ -0,0 +1,74 @@
|
||||
namespace LiquidCode.Shared.Constants;
|
||||
|
||||
/// <summary>
|
||||
/// Константы для определения типов медиа файлов
|
||||
/// </summary>
|
||||
public static class MediaTypeExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// Расширения для изображений
|
||||
/// </summary>
|
||||
public static readonly HashSet<string> ImageExtensions = new(StringComparer.OrdinalIgnoreCase)
|
||||
{
|
||||
".jpg",
|
||||
".jpeg",
|
||||
".png",
|
||||
".gif",
|
||||
".bmp",
|
||||
".tiff",
|
||||
".webp"
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Расширения для видео
|
||||
/// </summary>
|
||||
public static readonly HashSet<string> VideoExtensions = new(StringComparer.OrdinalIgnoreCase)
|
||||
{
|
||||
".mp4",
|
||||
".avi",
|
||||
".mkv",
|
||||
".mov",
|
||||
".wmv",
|
||||
".flv",
|
||||
".webm"
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Расширения для аудио
|
||||
/// </summary>
|
||||
public static readonly HashSet<string> AudioExtensions = new(StringComparer.OrdinalIgnoreCase)
|
||||
{
|
||||
".mp3",
|
||||
".wav",
|
||||
".flac",
|
||||
".aac",
|
||||
".ogg",
|
||||
".wma"
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Расширения для архивов
|
||||
/// </summary>
|
||||
public static readonly HashSet<string> ArchiveExtensions = new(StringComparer.OrdinalIgnoreCase)
|
||||
{
|
||||
".zip",
|
||||
".rar",
|
||||
".7z",
|
||||
".tar",
|
||||
".gz",
|
||||
".bz2"
|
||||
};
|
||||
|
||||
/// <summary>
|
||||
/// Расширения для текстовых документов (включая JSON)
|
||||
/// </summary>
|
||||
public static readonly HashSet<string> DocumentExtensions = new(StringComparer.OrdinalIgnoreCase)
|
||||
{
|
||||
".txt",
|
||||
".md",
|
||||
".markdown",
|
||||
".tex",
|
||||
".latex",
|
||||
".json"
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user