/// <summary> /// Determines if one of <c>AssemblyVersionType</c> assembly infos /// should be updated. /// </summary> /// <param name="projectInfo"> /// <c>ProjectInfo</c> for the project that is considered. /// </param> /// <param name="assemblyVersionType"> /// <c>AssemblyVersionType</c> for which version update is determined. /// </param> /// <param name="highestProjectVersion"> /// Highest <c>ProjectVersion</c> used as a reference for update. /// </param> /// <returns> /// <c>true</c> if version should be incremented. /// </returns> private bool ShouldUpdateOneOfAssemblyVersionTypes(ProjectInfo projectInfo, AssemblyVersionType assemblyVersionType, ProjectVersion highestProjectVersion) { Debug.Assert(assemblyVersionType == AssemblyVersionType.AssemblyVersion || assemblyVersionType == AssemblyVersionType.AssemblyFileVersion || assemblyVersionType == AssemblyVersionType.AssemblyInformationalVersion); // first check if corresponding assembly version type exists at all if (projectInfo.CurrentAssemblyVersions[assemblyVersionType] == ProjectVersion.Empty) { return(false); } // else, depending on settings switch (m_numberingOptions.BatchCommandIncrementScheme) { case (BatchCommandIncrementScheme.IncrementModifiedIndependently): return(projectInfo.IsMarkedForUpdate(assemblyVersionType)); case (BatchCommandIncrementScheme.IncrementAllIndependently): return(true); case (BatchCommandIncrementScheme.IncrementModifiedOnlyAndSynchronize): int resetBuildAndRevisionValues = (int)m_numberingOptions.ResetBuildAndRevisionTo; return(projectInfo.Modified || ProjectVersion.ApplyVersionPattern(highestProjectVersion.ToString(), projectInfo.CurrentAssemblyVersions[assemblyVersionType].ToString(), resetBuildAndRevisionValues) != projectInfo.CurrentAssemblyVersions[assemblyVersionType].ToString());//projectInfo.CurrentAssemblyVersions[assemblyVersionType] < highestProjectVersion; case (BatchCommandIncrementScheme.IncrementAllAndSynchronize): int buildAndRevisionResetValue = (int)m_numberingOptions.ResetBuildAndRevisionTo; return(ProjectVersion.ApplyVersionPattern(highestProjectVersion.ToString(), projectInfo.CurrentAssemblyVersions[assemblyVersionType].ToString(), buildAndRevisionResetValue) != projectInfo.CurrentAssemblyVersions[assemblyVersionType].ToString()); // projectInfo.CurrentAssemblyVersions[assemblyVersionType] < highestProjectVersion; } Debug.Assert(false, "Not supported option"); return(false); }
public void CreateProjectVersion2() { var version = new ProjectVersion(1, 1); Assert.NotNull(version); Assert.IsTrue(version.Major == 1); Assert.IsTrue(version.Minor == 1); Assert.IsTrue(version.ToString().Equals("1.1")); }
public void ReturnToString() { var version = new ProjectVersion(); Assert.IsTrue(version.ToString(0).Equals(String.Empty)); Assert.Throws <ArgumentException>(() => version.ToString(1)); Assert.Throws <ArgumentException>(() => version.ToString(2)); version = new ProjectVersion(1, 1, 1); Assert.IsTrue(version.ToString(3).Equals("1.1.1")); version = new ProjectVersion(1, 1, 1, 1); Assert.IsTrue(version.ToString(4).Equals("1.1.1.1")); version = new ProjectVersion(1, 1); Assert.Throws <ArgumentException>(() => version.ToString(3)); version = new ProjectVersion(1, 1, 1); Assert.Throws <ArgumentException>(() => version.ToString(4)); version = new ProjectVersion(1, 1, 1, 1); Assert.Throws <ArgumentException>(() => version.ToString(9999)); }
public void CreateProjectVersion1() { var version = new ProjectVersion { Major = 1, Minor = 0, Build = 0, Revision = 1 }; Assert.NotNull(version); Assert.IsTrue(version.ToString(1).Equals("1")); }
/// <summary> /// Provides the updated version as a string. /// </summary> /// <param name="projectInfo"> /// <c>ProjectInfo</c> for the project that is updated. /// </param> /// <param name="assemblyVersionType"> /// <c>AssemblyVersionType</c> for which version update is done. /// </param> /// <param name="highestProjectVersion"> /// Highest <c>ProjectVersion</c> used as a reference for update. /// </param> /// <returns> /// New version as a string. /// </returns> public string ProvideNewVersion(ProjectInfo projectInfo, AssemblyVersionType assemblyVersionType, ProjectVersion highestProjectVersion) { Debug.Assert(assemblyVersionType != AssemblyVersionType.All); switch (m_numberingOptions.BatchCommandIncrementScheme) { case BatchCommandIncrementScheme.IncrementModifiedIndependently: case BatchCommandIncrementScheme.IncrementAllIndependently: if (m_numberingOptions.SynchronizeAllVersionTypes && !projectInfo.ToUpdate) { return(projectInfo.CurrentAssemblyVersions.HighestProjectVersion.ToString()); } return(projectInfo.ToBecomeAssemblyVersions[assemblyVersionType].ToString()); case (BatchCommandIncrementScheme.IncrementAllAndSynchronize): case (BatchCommandIncrementScheme.IncrementModifiedOnlyAndSynchronize): int resetBuildAndRevisionValues = (int)m_numberingOptions.ResetBuildAndRevisionTo; return(ProjectVersion.ApplyVersionPattern(highestProjectVersion.ToString(), projectInfo.CurrentAssemblyVersions[assemblyVersionType].ToString(), resetBuildAndRevisionValues));// highestProjectVersion.ToString(); } Debug.Assert(false, "Not supported option"); return(null); }
public void SynchronizeAllVersions(bool includeProjectsNotForUpdate, bool allListViews) { m_disableCheckSynchronization = true; ProjectVersion highestToUpdateVersion = ProcessListViewsReturningHighestProjectVersion(new ProcessProjectsListViewReturningProjectVersionDelegate(ProjectsListView.GetHighestToUpdateVersion), allListViews, includeProjectsNotForUpdate); if (!includeProjectsNotForUpdate && highestToUpdateVersion.ContainsWildCard()) { highestToUpdateVersion = ProcessListViewsReturningHighestProjectVersion(new ProcessProjectsListViewReturningProjectVersionDelegate(ProjectsListView.GetHighestToUpdateVersion), allListViews, true); } ProcessListViews(new ProcessProjectsListViewDelegate(ProjectsListView.MarkProjectsWithLowerVersion), allListViews, highestToUpdateVersion); ProcessListViews(new ProcessProjectsListViewDelegate(ProjectsListView.ApplyVersion), allListViews, highestToUpdateVersion.ToString(true)); m_disableCheckSynchronization = false; }