public void OnXmlDeserialization(object param) { PlainName = Name.ToString(); if (Author != null) { AuthorName = Author.Name.ToString(); } if (string.IsNullOrEmpty(GUID)) { ID = new Identifier(Identifier); } else { ID = new Identifier(Identifier, Guid.Parse(GUID)); } if (Files != null) { AvailableVersions.Clear(); foreach (var file in Files) { if (file.Platform == param.ToString() && (!file.NeedValidation || file.Validated)) { AvailableVersions.Add(file.Version, file.FetchURL); } } } }
/// <summary> /// Open the specified database file /// </summary> /// <param name="databaseFile">Database file name to open</param> /// <param name="password">Password of database file</param> public bool Open(string databaseFile, string password) { Close(); FileName = Path.GetFullPath(databaseFile); Password = password; bool ok = false; Version version = GetSdfVersion(FileName); if (version == null) { foreach (Version ver in AvailableVersions.Reverse <Version>()) { ok = OpenConnection(ver, databaseFile, password); if (ok || BadPassword) { break; } } } else { ok = OpenConnection(version, databaseFile, password); if (!ok && (!BadPassword || password != null)) { GlobalText.ShowError("UnableToOpen", LastError); } } return(ok); }
public PackageControlModel(PackageKey packageKey, IEnumerable <PackageKey> availableVersions) { Name = packageKey.Id; Version = packageKey.Version; AvailableVersions = availableVersions.Select(x => x.Version) .ToList(); FixVersionIndex = string.IsNullOrEmpty(Version) ? -1 : AvailableVersions.IndexOf(Version); }
private Version GetSdfVersion(string filePath) { UInt32 sdfCodeVersion; using (var reader = new BinaryReader(File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))) { reader.BaseStream.Seek(16, SeekOrigin.Begin); sdfCodeVersion = reader.ReadUInt32(); } return(AvailableVersions.FirstOrDefault(version => version.SdfCodeVersion == sdfCodeVersion)); }