public static Dictionary <string, object> LocalLoadItems(string directoryPath, HashSet <string> configItems) { var items = new Dictionary <string, object>(); foreach (var fileUnixPath in ItemsFactory.SupportedEfsFilePaths) { var item = ItemsFactory.CreateEfsFile(fileUnixPath); var itemType = item.GetType(); if (configItems == null || configItems.Contains(itemType.Name)) { var filePath = fileUnixPath.Replace('/', '\\'); var fileAttribute = EfsFileAttributeUtils.Get(itemType); var path = fileAttribute == null ? $"{directoryPath}{filePath}" : PathUtils.BuildPath(directoryPath, filePath, fileAttribute.Permissions, fileAttribute.IsItemFile ? DirectoryEntryType.ItemFile : DirectoryEntryType.File, false); if (!File.Exists(path)) { path = $"{directoryPath}{filePath}"; } if (File.Exists(path)) { using (var stream = FileUtils.LocalOpenRead(path)) { ItemsBinarySerializer.Deserialize(item, stream); stream.Close(); } } items.Add(itemType.Name, item); } } foreach (var nvItemId in ItemsFactory.SupportedNvItemIds) { var item = ItemsFactory.CreateNvItem(nvItemId); var itemType = item.GetType(); if (configItems == null || configItems.Contains(itemType.Name)) { var nvItemFileName = PathUtils.GetNvItemFileName((ushort)nvItemId); var path = Path.Combine(directoryPath, nvItemFileName); if (File.Exists(path)) { using (var stream = FileUtils.LocalOpenRead(path)) { ItemsBinarySerializer.Deserialize(item, stream); stream.Close(); } } items.Add(itemType.Name, item); } } return(items); }
public static Dictionary <string, object> PhoneLoadItems(QcdmManager manager, HashSet <string> configItems) { var items = new Dictionary <string, object>(); foreach (var filePath in ItemsFactory.SupportedEfsFilePaths) { var item = ItemsFactory.CreateEfsFile(filePath); var itemType = item.GetType(); if (configItems == null || configItems.Contains(itemType.Name)) { if (manager.Efs.FileExists(filePath)) { using (var stream = FileUtils.PhoneOpenRead(manager, filePath)) { ItemsBinarySerializer.Deserialize(item, stream); stream.Close(); } } items.Add(itemType.Name, item); } } foreach (var nvItemId in ItemsFactory.SupportedNvItemIds) { var item = ItemsFactory.CreateNvItem(nvItemId); var itemType = item.GetType(); if (configItems == null || configItems.Contains(itemType.Name)) { using (var stream = NvOpenRead(manager, (ushort)nvItemId)) { if (stream != null) { ItemsBinarySerializer.Deserialize(item, stream); stream.Close(); } } items.Add(itemType.Name, item); } } return(items); }
public static Dictionary <string, object> PhoneLoadItems(QcdmManager manager, int subscription) { var items = new Dictionary <string, object>(); foreach (var filePath in ItemsFactory.SupportedEfsFilePaths) { var realFilePath = PathUtils.GetEfsFilePath(filePath, subscription); if (manager.Efs.FileExists(realFilePath)) { var item = ItemsFactory.CreateEfsFile(filePath); var itemType = item.GetType(); using (var stream = FileUtils.PhoneOpenRead(manager, realFilePath)) { ItemsBinarySerializer.Deserialize(item, stream); stream.Close(); } items.Add(itemType.Name, item); } } foreach (var nvItemId in ItemsFactory.SupportedNvItemIds) { var item = ItemsFactory.CreateNvItem(nvItemId); var itemType = item.GetType(); using (var stream = NvOpenRead(manager, (ushort)nvItemId)) { if (stream != null) { ItemsBinarySerializer.Deserialize(item, stream); stream.Close(); items.Add(itemType.Name, item); } } } return(items); }