예제 #1
0
    internal Result <ICameraFile> Create(
        CameraFilePath filePath,
        IEnumerable <ITag> metadata)
    {
        switch (filePath.GetExtension().ToLowerInvariant())
        {
        case ".jpg":
        case ".jpeg":
        case ".cr2":
            return(ImageFile.Create(filePath, metadata));

        case ".dng":
            return(DngImageFile.Create(filePath, metadata));

        case ".mp4":
        case ".mov":
            return(VideoFile.Create(filePath, metadata));

        default:
            throw new InvalidPathException($"Unknown file type {filePath}");
        }
    }