public virtual bool TryCombination(AssetFileCombination combination) { var combinationCount = combination.Files.Count(); if (combinationCount > _subjects.Count) return false; var assetFile = combination.Files.First(); var index = _subjects.IndexOf(assetFile); if (index < 0) return false; var list = TryFindSequenceStartingWith(assetFile, combinationCount); if (list == null) return false; for (int i = 0; i < list.Count; i++) { if (list[i] != combination.FileAt(i)) return false; } replaceFilesWithCombination(combination, index); return true; }
public virtual bool TryCombination(AssetFileCombination combination) { var combinationCount = combination.Files.Count(); if (combinationCount > _subjects.Count) { return(false); } var assetFile = combination.Files.First(); var index = _subjects.IndexOf(assetFile); if (index < 0) { return(false); } var list = TryFindSequenceStartingWith(assetFile, combinationCount); if (list == null) { return(false); } for (int i = 0; i < list.Count; i++) { if (list[i] != combination.FileAt(i)) { return(false); } } replaceFilesWithCombination(combination, index); return(true); }
private void replaceFilesWithCombination(AssetFileCombination combination, int index) { combination.Files.Each(f => _subjects.Remove(f)); _subjects.Insert(index, combination); }
public void StoreCombination(MimeType mimeType, AssetFileCombination combination) { _combinations[mimeType][combination.Name] = combination; }