public ObservableCollection<SerialModel> Load(IListFileParser listFileParser) { var temp = new ObservableCollection<SerialModel>(); if (File.Exists(cashFileName)) { try { using (var fs = new FileStream(cashFileName, FileMode.Open, FileAccess.Read)) { using (var bw = new BinaryReader(fs)) { while (bw.BaseStream.Position != bw.BaseStream.Length) { var filename = bw.ReadString(); var info = bw.ReadString(); var referenseTofile = bw.ReadString(); var size = bw.ReadString(); var title = createImage(bw.ReadBytes(bw.ReadInt32())); var countofseries = bw.ReadInt32(); List<FileModel> listofModels = new List<FileModel>(); for (int i = 0; i < countofseries; i++) { var sfName = bw.ReadString(); var sfPathToDownload = bw.ReadString(); var sfSerialName = bw.ReadString(); var sfSerialSize = bw.ReadString(); var sfDownloadStatus = (DownloadStatus)bw.ReadInt32(); listofModels.Add(new FileModel(sfName, sfPathToDownload, sfSerialSize, sfSerialName, subscribeManager.DownLoadManagerModel, sfDownloadStatus)); } var sm = new SerialModel(new SeriaInfo(referenseTofile, filename, size, title, info, true), subscribeManager, listFileParser); sm.SetSerialListFromCach(listofModels); temp.Add(sm); } } } } catch (Exception) { //TODO } } return temp; }