public static byte[] Get(string name) { var dic = GetFileList(); if (dic == null) { return((byte[])DataCache.Get(name)); } if (dic.ContainsKey(name)) { var list = dic[name]; var input = new List <byte[]>(); var cache = DataCache; list = list.OrderBy(x => x.Item2).ToList(); for (int i = 0; i < list.Count; i++) { input.Add(cache.Get(list[i].Item1) as byte[]); } var holder = new CachingObjectHolder(name, input); return(CacheHelper.Join(holder)); } else { return((byte[])DataCache.Get(name)); } }
public static byte[] Join(CachingObjectHolder cachingObjectHolder) { var totalByteSize = cachingObjectHolder.Partials.Sum(x => x.Length); var output = new byte[totalByteSize]; var globalCounter = 0; for (int i = 0; i < cachingObjectHolder.Partials.Count; i++) { for (int j = 0; j < cachingObjectHolder.Partials[i].Length; j++) { output[globalCounter] = cachingObjectHolder.Partials[i][j]; globalCounter++; } } return(output); }