예제 #1
0
        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;
        }
예제 #2
0
        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);
        }
예제 #3
0
        private void replaceFilesWithCombination(AssetFileCombination combination, int index)
        {
            combination.Files.Each(f => _subjects.Remove(f));

            _subjects.Insert(index, combination);
        }
예제 #4
0
 public void StoreCombination(MimeType mimeType, AssetFileCombination combination)
 {
     _combinations[mimeType][combination.Name] = combination;
 }
예제 #5
0
 public void StoreCombination(MimeType mimeType, AssetFileCombination combination)
 {
     _combinations[mimeType][combination.Name] = combination;
 }
예제 #6
0
        private void replaceFilesWithCombination(AssetFileCombination combination, int index)
        {
            combination.Files.Each(f => _subjects.Remove(f));

            _subjects.Insert(index, combination);
        }