Esempio n. 1
0
        private void BuildChildItems(XciItem parentItem)
        {
            var xci = parentItem.Xci;

            try
            {
                foreach (var xciPartitionType in Enum.GetValues <XciPartitionType>())
                {
                    try
                    {
                        if (!xci.HasPartition(xciPartitionType))
                        {
                            continue;
                        }
                    }
                    catch (Exception ex)
                    {
                        OnLoadingException(ex, parentItem);

                        var message = LocalizationManager.Instance.Current.Keys.LoadingError_FailedToCheckIfXciPartitionExists.SafeFormat(ex.Message);
                        parentItem.Errors.Add(TREE_LOADING_CATEGORY, message);
                        _logger.LogError(ex, message);
                        continue;
                    }

                    XciPartition xciPartition;
                    try
                    {
                        xciPartition = xci.OpenPartition(xciPartitionType);
                    }
                    catch (Exception ex)
                    {
                        OnLoadingException(ex, parentItem);

                        var message = LocalizationManager.Instance.Current.Keys.LoadingError_FailedToOpenXciPartition.SafeFormat(ex.Message);
                        parentItem.Errors.Add(TREE_LOADING_CATEGORY, message);
                        _logger.LogError(ex, message);
                        continue;
                    }

                    var xciPartitionItem = new XciPartitionItem(xciPartition, xciPartitionType, parentItem);
                    BuildChildItems(xciPartitionItem);

                    parentItem.ChildItems.Add(xciPartitionItem);
                }
            }
            catch (Exception ex)
            {
                OnLoadingException(ex, parentItem);

                var message = LocalizationManager.Instance.Current.Keys.LoadingError_FailedToLoadXciContent.SafeFormat(ex.Message);
                parentItem.Errors.Add(TREE_LOADING_CATEGORY, message);
                _logger.LogError(ex, message);
            }
        }
 public XciPartitionItemViewModel(XciPartitionItem xciPartitionItem, IServiceProvider serviceProvider)
     : base(xciPartitionItem, serviceProvider)
 {
     _xciPartitionItem = xciPartitionItem;
 }