/// <summary> /// Upgrades version to the particular version /// </summary> /// <remarks>It internally calls the Downgrade of the immediate lower version, and so on</remarks> /// <param name="source"></param> /// <param name="version"></param> /// <returns>downgraded version</returns> private dynamic DowngradeVersionTo(dynamic source, VersionNumbers version) { var targetObj = source; var targetVersion = VersionCache.GetVersion(targetObj.GetType()); while (targetVersion > version) { var tempObj = targetObj.Downgrade(); if (tempObj == null) { break; } targetVersion = VersionCache.GetVersion(tempObj.GetType()); targetObj = tempObj; } return(targetObj); }
public static VersionNumbers GetVersionNumbers(string pVersionString) { string tVersion = "Unknown"; string[] aVersion; VersionNumbers vn = new VersionNumbers(); if (string.IsNullOrEmpty(pVersionString)) { return(vn); } aVersion = pVersionString.Split('.'); if (aVersion.Length > 0) { tVersion = aVersion[0]; vn.major = uint.Parse(aVersion[0]); } if (aVersion.Length > 1) { tVersion += "." + aVersion[1]; vn.minor = uint.Parse(aVersion[1]); } if (aVersion.Length > 2) { tVersion += "." + aVersion[2].PadLeft(4, '0'); vn.patch = uint.Parse(aVersion[2]); } if (aVersion.Length > 3) { tVersion += "." + aVersion[3].PadLeft(4, '0'); vn.build = uint.Parse(aVersion[3]); } return(vn);; }//string GetVersionNumbers(Version pVersion)