private ResourceType GetResourceType(string fileName, ResourceType type) { var ext = Path.GetExtension(fileName)?.ToLower(); if (type == ResourceType.ImageJpeg || type == ResourceType.ImagePng) { if (ext == ".png") { return(ResourceType.ImagePng); } else { return(ResourceType.ImageJpeg); } } else if (type == ResourceType.LutCube || type == ResourceType.LutPng) { if (ext == ".png") { return(ResourceType.LutPng); } else { return(ResourceType.LutCube); } } else { return(type); } }
internal string AddResource(string fileName, byte[] data, ResourceType type) { var name = Path.GetFileNameWithoutExtension(fileName); var res = _coreData.Create <IResource>(); var now = DateTime.UtcNow; res.LastUse = now; res.Data = data; res.Info = new ResourceInfo { Added = now, Type = GetResourceType(fileName, type), Name = name, DataHash = GetHash(data) }; var id = IdGenerator.New(); SaveToFile(id, data); lock (_cache) _cache[id] = data; _coreData.Root.Resources[id] = res; return(id); }