void IWizardStep.InitializeStep(WizardArgs wizardArgs) { var args = (InstallModulesWizardArgs)wizardArgs; // create new checkbox list Product instanceProduct = args.Product; if (instanceProduct == null) { return; } var modules = ProductManager.Modules.Where(m => m.IsMatchRequirements(instanceProduct)).OrderByDescending(m => m.SortOrder); IEnumerable <string> moduleNames = modules.GroupBy(module => module.Name).Select(moduleGroup => moduleGroup.Key); ProductInCheckbox[] productCheckboxes = moduleNames.Select(moduleName => new ProductInCheckbox(moduleName, modules.Where(module => module.Name.EqualsIgnoreCase(moduleName)).OrderByDescending(m => m.VersionAndRevision).ToArray())).ToArray(); this.productFamilies = new ObservableCollection <ProductInCheckbox>(productCheckboxes); this.unfilteredProductFamilies = new ObservableCollection <ProductInCheckbox>(productCheckboxes); foreach (Product module in args.Modules) { Product alreadySelectedModule = module; ProductInCheckbox checkBoxItem = productCheckboxes.SingleOrDefault(cbi => cbi.Name.Equals(alreadySelectedModule.Name, StringComparison.OrdinalIgnoreCase)); if (checkBoxItem != null) { checkBoxItem.IsChecked = checkBoxItem.Name == module.Name || module.Name.EqualsIgnoreCase("Sitecore Analytics"); checkBoxItem.Value = module; } } this.DoSearch(this.SearchTextBox.Text = string.Empty); this.sitecoreModules.ItemsSource = this.productFamilies; }
public void InitializeStep(WizardArgs wizardArgs) { WizardArgs = wizardArgs; var args = (InstallModulesWizardArgs)wizardArgs; _CheckBoxItems.Clear(); foreach (var folder in EnvironmentHelper.FilePackageFolders) { Append(folder); } _UnfilteredCheckBoxItems = new ObservableCollection <ProductInCheckbox>(_CheckBoxItems); foreach (var module in args._Modules) { Product alreadySelectedModule = module; ProductInCheckbox checkBoxItem = _CheckBoxItems.SingleOrDefault(cbi => cbi.Value.PackagePath.Equals(alreadySelectedModule.PackagePath, StringComparison.OrdinalIgnoreCase)); if (checkBoxItem != null) { checkBoxItem.IsChecked = true; } } if (args is InstallWizardArgs) { foreach (var cbi in _CheckBoxItems.NotNull()) { if ((WindowsSettings.AppInstallDefaultCustomPackages.Value ?? string.Empty).Split('|').Any(s => cbi.Name.EqualsIgnoreCase(s))) { cbi.IsChecked = true; } } } DoSearch(SearchTextBox.Text = string.Empty); }
private void SelectAddedPackage(ProductInCheckbox family, Product product) { family.IsChecked = true; family.Value = product; }
private static Product GetProduct(ProductInCheckbox module, Product product) { return(module.Scope.FirstOrDefault(version => version.Version.Equals(product.Version, StringComparison.InvariantCultureIgnoreCase) && version.Revision.Equals(product.Revision, StringComparison.InvariantCultureIgnoreCase))); }
public void CustomButtonClick() { var openDialog = new OpenFileDialog { CheckFileExists = true, Filter = "Sitecore Package or ZIP Archive (*.zip)|*.zip", Title = "Choose Package", Multiselect = true }; if (openDialog.ShowDialog(Window.GetWindow(this)) != true) { return; } foreach (var path in openDialog.FileNames) { var fileName = Path.GetFileName(path); if (string.IsNullOrEmpty(fileName)) { continue; } List <ProductInCheckbox> products = null; Product addedProduct; Product.TryParse(path, out addedProduct); if (addedProduct == null || string.IsNullOrEmpty(addedProduct.Name) || string.IsNullOrEmpty(addedProduct.Version) || string.IsNullOrEmpty(addedProduct.Revision)) { WindowHelper.ShowMessage("Selected file is not a Sitecore module package"); return; } var family = this.GetProductFamily(addedProduct.OriginalName); if (family == null) { FileSystem.FileSystem.Local.File.Copy(path, Path.Combine(ProfileManager.Profile.LocalRepository, fileName)); Product.TryParse(Path.Combine(ProfileManager.Profile.LocalRepository, fileName), out addedProduct); products = this.productFamilies.ToList(); products.Add(family = new ProductInCheckbox(addedProduct.Name, new[] { addedProduct })); this.isProductFamiliesChanged = true; } else { var product = GetProduct(family, addedProduct); if (product == null) { var location = FileSystem.FileSystem.Local.Directory.GetParent(family.Scope.FirstOrDefault().IsNotNull().PackagePath).FullName; FileSystem.FileSystem.Local.File.Copy(path, Path.Combine(location, fileName)); Product.TryParse(Path.Combine(location, fileName), out addedProduct); products = this.productFamilies.Where(item => !item.Name.Equals(family.Name, StringComparison.InvariantCultureIgnoreCase)).ToList(); products.Insert(this.productFamilies.IndexOf(family), family = new ProductInCheckbox(family.Name, family.Scope.Add(addedProduct).ToArray())); this.isProductFamiliesChanged = true; } else { var location = FileSystem.FileSystem.Local.Directory.GetParent(product.PackagePath).FullName; FileSystem.FileSystem.Local.File.DeleteIfExists(product.PackagePath); FileSystem.FileSystem.Local.File.Copy(path, Path.Combine(location, fileName)); addedProduct = product; } } ProductManager.Initialize(ProfileManager.Profile.LocalRepository); this.SelectAddedPackage(family, addedProduct); if (this.isProductFamiliesChanged) { this.RefreshDataSource(products); } } }
public void CustomButtonClick() { var openDialog = new OpenFileDialog { CheckFileExists = true, Filter = "Sitecore Package or ZIP Archive (*.zip)|*.zip", Title = "Choose Package", Multiselect = true }; if (openDialog.ShowDialog(Window.GetWindow(this)) != true) { return; } foreach (var path in openDialog.FileNames) { var fileName = Path.GetFileName(path); if (string.IsNullOrEmpty(fileName)) { continue; } List<ProductInCheckbox> products = null; Product addedProduct; Product.TryParse(path, out addedProduct); if (addedProduct == null || string.IsNullOrEmpty(addedProduct.Name) || string.IsNullOrEmpty(addedProduct.Version) || string.IsNullOrEmpty(addedProduct.Revision)) { WindowHelper.ShowMessage("Selected file is not a Sitecore module package"); return; } var family = this.GetProductFamily(addedProduct.OriginalName); if (family == null) { FileSystem.FileSystem.Local.File.Copy(path, Path.Combine(ProfileManager.Profile.LocalRepository, fileName)); Product.TryParse(Path.Combine(ProfileManager.Profile.LocalRepository, fileName), out addedProduct); products = this.productFamilies.ToList(); products.Add(family = new ProductInCheckbox(addedProduct.Name, new[] { addedProduct })); this.isProductFamiliesChanged = true; } else { var product = GetProduct(family, addedProduct); if (product == null) { var location = FileSystem.FileSystem.Local.Directory.GetParent(family.Scope.FirstOrDefault().IsNotNull().PackagePath).FullName; FileSystem.FileSystem.Local.File.Copy(path, Path.Combine(location, fileName)); Product.TryParse(Path.Combine(location, fileName), out addedProduct); products = this.productFamilies.Where(item => !item.Name.Equals(family.Name, StringComparison.InvariantCultureIgnoreCase)).ToList(); products.Insert(this.productFamilies.IndexOf(family), family = new ProductInCheckbox(family.Name, family.Scope.Add(addedProduct).ToArray())); this.isProductFamiliesChanged = true; } else { var location = FileSystem.FileSystem.Local.Directory.GetParent(product.PackagePath).FullName; FileSystem.FileSystem.Local.File.DeleteIfExists(product.PackagePath); FileSystem.FileSystem.Local.File.Copy(path, Path.Combine(location, fileName)); addedProduct = product; } } ProductManager.Initialize(ProfileManager.Profile.LocalRepository); this.SelectAddedPackage(family, addedProduct); if (this.isProductFamiliesChanged) { this.RefreshDataSource(products); } } }
private static Product GetProduct(ProductInCheckbox module, Product product) { return module.Scope.FirstOrDefault(version => version.Version.Equals(product.Version, StringComparison.InvariantCultureIgnoreCase) && version.Revision.Equals(product.Revision, StringComparison.InvariantCultureIgnoreCase)); }