1 // ByteFX.Data data access components for .Net
\r
2 // Copyright (C) 2002-2004 ByteFX, Inc.
\r
4 // This library is free software; you can redistribute it and/or
\r
5 // modify it under the terms of the GNU Lesser General Public
\r
6 // License as published by the Free Software Foundation; either
\r
7 // version 2.1 of the License, or (at your option) any later version.
\r
9 // This library is distributed in the hope that it will be useful,
\r
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
\r
12 // Lesser General Public License for more details.
\r
14 // You should have received a copy of the GNU Lesser General Public
\r
15 // License along with this library; if not, write to the Free Software
\r
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
\r
20 namespace ByteFX.Data.Common
\r
23 /// Summary description for Version.
\r
25 internal struct DBVersion
\r
31 public DBVersion( int major, int minor, int build)
\r
38 public static DBVersion Parse( string versionString )
\r
41 int index = versionString.IndexOf('.', start);
\r
42 if (index == -1) throw new Exception("Version string not in acceptable format");
\r
43 int major = Convert.ToInt32( versionString.Substring(start, index-start).Trim());
\r
46 index = versionString.IndexOf('.', start);
\r
47 if (index == -1) throw new Exception("Version string not in acceptable format");
\r
48 int minor = Convert.ToInt32( versionString.Substring(start, index-start).Trim());
\r
52 while (i < versionString.Length && Char.IsDigit( versionString, i ))
\r
54 int build = Convert.ToInt32( versionString.Substring(start, i-start).Trim());
\r
56 return new DBVersion( major, minor, build );
\r
59 public bool isAtLeast(int major, int minor, int build)
\r
61 if (this.major > major) return true;
\r
62 if (this.major == major && this.minor > minor) return true;
\r
63 if (this.major == major && this.minor == minor && this.build >= build) return true;
\r