private void UpdateOtherPackages(SitecoreConfigModel sitecoreConfigModel, ProjectModel prj, IEnumerable <PackageModel> pkgToUpdate, IEnumerable <PackageModel> prjPkgs, Action <int, object> progressReport) { progressReport(-1, $"Updating other packages for {prj.Name}"); foreach (var oldPkg in pkgToUpdate) { var newPkg = sitecoreConfigModel.OtherPackages.FirstOrDefault(pkg => pkg.Id == oldPkg.Id); if (newPkg == null) { progressReport(-1, $"Sitecore {sitecoreConfigModel.SitecoreVersion} config does not have an equivelant for {oldPkg.Id}. Reinstalling the same version"); newPkg = oldPkg; } // this will be a pain if the user mistakenly upgrade packages first //else if(newPkg.Version == oldPkg.Version) //{ // projectsUpdateList.State = $"Package {oldPkg.Id} is already up to date with version {oldPkg.Version} "; // continue; //} try { pkgMnger.UpdatePackage(prj.DteProject, newPkg, false); progressReport(-1, $"Package {oldPkg.Id} updated to version {newPkg.Version} "); } catch (Exception e) { progressReport(-1, "Could not install a package " + e.Message); } } progressReport(100, $"done with othe packages for {prj.Name}"); }
private void UpdateGlassPackages(SitecoreConfigModel sitecoreConfigModel, ProjectModel prj, IEnumerable <PackageModel> pkgToUpdate, IEnumerable <PackageModel> prjPkgs, Action <int, object> progressReport) { var glassVersionText = sitecoreConfigModel.GlassVersion; foreach (var oldPkg in pkgToUpdate) { var glsPkgNameWithoutVersion = string.IsNullOrEmpty(projectsUpdateList.CurrentGlassVersion) ? oldPkg.Id : oldPkg.Id.Replace(projectsUpdateList.CurrentGlassVersion, string.Empty); var newPkg = sitecoreConfigModel.GlassPackages. FirstOrDefault( pkg => pkg.Id.Replace(glassVersionText, string.Empty) .Equals(glsPkgNameWithoutVersion, StringComparison.OrdinalIgnoreCase)); if (newPkg == null) { progressReport(-1, $"Sitecore {sitecoreConfigModel.SitecoreVersion} config does not have an equivelant for {oldPkg.Id}. Reinstalling the same version"); newPkg = oldPkg; } else { progressReport(-1, "uninstalling " + oldPkg.Id); try { pkgMnger.UninstallPackage(prj.DteProject, oldPkg, false); } catch (Exception e) { progressReport(-1, "Could not uninstall a package " + e.Message); } } // this will be a pain if the user mistakenly upgrade packages first //else if(newPkg.Version == oldPkg.Version) //{ // projectsUpdateList.State = $"Package {oldPkg.Id} is already up to date with version {oldPkg.Version} "; // continue; //} try { pkgMnger.UpdatePackage(prj.DteProject, newPkg, false); progressReport(-1, $"installed {newPkg.Id} version {newPkg.Version} "); } catch (Exception e) { progressReport(-1, "Could not install a package " + e.Message); } } progressReport(-1, $"done with glass upgrade for {prj.Name}"); }
public static SitecoreConfigModel GetSitecoreConfigModel(string sitecoreVersion) { var result = new SitecoreConfigModel(); var otherPackages = new List <PackageModel>(); var config = new XmlDocument(); try { config.Load(Path.Combine(PackageConfigFolderPath, $"{sitecoreVersion}.xml")); foreach (XmlNode node in config.DocumentElement.ChildNodes) { if (node.Name == "SitecorePkgVersion") { result.SitecoreVersion = node.Attributes["Value"].Value; } else if (node.Name == "Framework") { result.Framework = new FrameworkModel { Id = uint.Parse(node.Attributes["id"].Value), Name = node.Attributes["name"].Value }; } else if (node.Name == "UnicornPackages") { result.UnicornPackages = ReadChildPackages(node); } else if (node.Name == "GlassPackages") { result.GlassVersion = node.Attributes["version"].Value; result.GlassPackages = ReadChildPackages(node); } else if (node.Name == "MSPackages") { result.MSPackages = ReadChildPackages(node); } else { otherPackages.AddRange(ReadChildPackages(node)); } } result.OtherPackages = otherPackages; } catch (Exception e) { result.Error = "Could not read configuration for file " + Path.Combine(PackageConfigFolderPath, $"{sitecoreVersion}.xml") + e.Message + Environment.NewLine + e.StackTrace; } return(result); }
UpdateSCPackages(SitecoreConfigModel sitecoreConfigModel, ProjectModel prj, IEnumerable <PackageModel> pkgToUpdate, IEnumerable <PackageModel> prjPkgs, Action <int, object> progressReport) { progressReport(-1, $"Updating Sitecore packages for {prj.Name}"); foreach (var oldPkg in pkgToUpdate) { try { var tempPkg = oldPkg; if (tempPkg.Id.EndsWith(".NoReferences")) { progressReport(-1, "uninstalling " + tempPkg.Id); pkgMnger.UninstallPackage(prj.DteProject, tempPkg, false); tempPkg.Id = oldPkg.Id.Replace(".NoReferences", string.Empty); } else if (tempPkg.Id.StartsWith("Sitecore.XA") && tempPkg.Version != sitecoreConfigModel.SXAVersion) { progressReport(-1, "uninstalling " + tempPkg.Id); pkgMnger.UninstallPackage(prj.DteProject, tempPkg, false); tempPkg.Version = sitecoreConfigModel.SXAVersion; progressReport(-1, "installing " + tempPkg.Id + " with version " + tempPkg.Version); pkgMnger.UpdateScPackage(prj.DteProject, tempPkg, false); progressReport(-1, $"done with Sitecore for {prj.Name}"); continue; } else if (tempPkg.Version != sitecoreConfigModel.SitecoreVersion) { progressReport(-1, "uninstalling " + tempPkg.Id); pkgMnger.UninstallPackage(prj.DteProject, tempPkg, false); } tempPkg.Version = sitecoreConfigModel.SitecoreVersion; progressReport(-1, "installing " + tempPkg.Id + " with version " + tempPkg.Version); pkgMnger.UpdateScPackage(prj.DteProject, tempPkg, false); }catch (Exception e) { progressReport(-1, "Could not install a package " + e.Message); } } progressReport(-1, $"done with Sitecore for {prj.Name}"); }