Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }