/// <summary> /// Gets the incrementors. /// </summary> /// <returns>An array containing the incrementors</returns> public BaseIncrementor[] GetIncrementors() { BaseIncrementor[] ret = new BaseIncrementor[Count]; _incrementors.Values.CopyTo(ret, 0); return(ret); }
public void AddFrom(Assembly asm) { Logger.Write("Locating incrementors in assembly \"" + asm.FullName + "\" ...", LogLevel.Debug); List <Type> typesThatDeriveFromType = ReflectionHelper.GetTypesThatDeriveFromType(asm, typeof(BaseIncrementor), false, false); Logger.Write("Located " + typesThatDeriveFromType.Count + " incrementors.", LogLevel.Debug); foreach (Type current in typesThatDeriveFromType) { if (current != typeof(BuiltInBaseIncrementor.NoneIncrementor)) { Logger.Write("Creating instance of incrementor type \"" + current.FullName + "\".", LogLevel.Info); BaseIncrementor baseIncrementor = (BaseIncrementor)Activator.CreateInstance(current); this._incrementors.Add(baseIncrementor.Name, baseIncrementor); } } }
/// <summary> /// Locates BaseIncrementors in the given assembly and add them to the collection. /// </summary> /// <param name="asm">The assembly.</param> public void AddFrom(Assembly asm) { Logger.Write("Locating incrementors in assembly \"" + asm.FullName + "\" ...", LogLevel.Debug); List <Type> types = ReflectionHelper.GetTypesThatDeriveFromType(asm, typeof(BaseIncrementor), false, false); Logger.Write("Located " + types.Count + " incrementors.", LogLevel.Debug); foreach (Type t in types) { if (t == typeof(BuiltInBaseIncrementor.NoneIncrementor)) // Don't add the null incrementor; this is done in the constructor. { continue; } Logger.Write("Creating instance of incrementor type \"" + t.FullName + "\".", LogLevel.Info); BaseIncrementor incrementor = (BaseIncrementor)Activator.CreateInstance(t); _incrementors.Add(incrementor.Name, incrementor); } }
internal StringVersion Increment(StringVersion currentVersion, DateTime buildStartDate, DateTime projectStartDate, SolutionItem solutionItem) { IncrementContext incrementContext = new IncrementContext(currentVersion, buildStartDate, projectStartDate, solutionItem.Filename); BaseIncrementor[] array = new BaseIncrementor[] { this.Major, this.Minor, this.Build, this.Revision }; for (int i = 0; i < 4; i++) { BaseIncrementor baseIncrementor = array[i]; if (baseIncrementor != null) { VersionComponent versionComponent = (VersionComponent)i; baseIncrementor.Increment(incrementContext, versionComponent); if (!incrementContext.Continue) { break; } } } return incrementContext.NewVersion; }
internal void FromOldIncrementStyle(OLD_IncrementStyle major, OLD_IncrementStyle minor, OLD_IncrementStyle build, OLD_IncrementStyle revision) { this.Major = BuildVersionIncrementor.Instance.Incrementors[major]; this.Minor = BuildVersionIncrementor.Instance.Incrementors[minor]; this.Build = BuildVersionIncrementor.Instance.Incrementors[build]; this.Revision = BuildVersionIncrementor.Instance.Incrementors[revision]; }
internal void FromGlobalVariable(string value) { if (!string.IsNullOrEmpty(value)) { if (value.Contains(".")) { string[] array = value.Split(".".ToCharArray()); if (array.Length != 4) { throw new ApplicationException("Invalid versioning style \"" + value + "\"."); } this.Major = BuildVersionIncrementor.Instance.Incrementors[array[0]]; this.Minor = BuildVersionIncrementor.Instance.Incrementors[array[1]]; this.Build = BuildVersionIncrementor.Instance.Incrementors[array[2]]; this.Revision = BuildVersionIncrementor.Instance.Incrementors[array[3]]; } else { OLD_BuildVersioningStyleType oLD_BuildVersioningStyleType = (OLD_BuildVersioningStyleType)Enum.Parse(typeof(OLD_BuildVersioningStyleType), value); OLD_IncrementStyle major = OLD_IncrementStyle.None; OLD_IncrementStyle minor = OLD_IncrementStyle.None; OLD_IncrementStyle revision = OLD_IncrementStyle.None; OLD_IncrementStyle build; switch (oLD_BuildVersioningStyleType) { case OLD_BuildVersioningStyleType.DeltaBaseDate: build = OLD_IncrementStyle.DeltaBaseDate; revision = OLD_IncrementStyle.TimeStamp; break; case OLD_BuildVersioningStyleType.YearDayOfYear_Timestamp: build = OLD_IncrementStyle.YearDayOfYear; revision = OLD_IncrementStyle.TimeStamp; break; case OLD_BuildVersioningStyleType.DeltaBaseYear: build = OLD_IncrementStyle.DeltaBaseYearDayOfYear; revision = OLD_IncrementStyle.TimeStamp; break; case OLD_BuildVersioningStyleType.YearDayOfYear_AutoIncrement: build = OLD_IncrementStyle.YearDayOfYear; revision = OLD_IncrementStyle.Increment; break; case OLD_BuildVersioningStyleType.AutoIncrementBuildVersion: build = OLD_IncrementStyle.Increment; break; default: throw new ApplicationException("Unknown (old) versioning type: " + oLD_BuildVersioningStyleType.ToString()); } this.FromOldIncrementStyle(major, minor, build, revision); } } else { this.Major = (this.Minor = (this.Build = (this.Revision = null))); } }
public BaseIncrementor[] GetIncrementors() { BaseIncrementor[] array = new BaseIncrementor[this.Count]; this._incrementors.Values.CopyTo(array, 0); return(array); }
public BaseIncrementor[] GetIncrementors() { BaseIncrementor[] array = new BaseIncrementor[this.Count]; this._incrementors.Values.CopyTo(array, 0); return array; }