private static void test() { MovieDatas md = new MovieDatas().Deserialize(@"C:\inetpub\wwwroot\AVSyncer\AVSyncer\uncAV.xml"); MovieManager mm = md.Transform(); md = null; Console.Write(""); }
private static void DB2Xml() { Database db = Database.getInstance(); MovieDatas md = new MovieDatas(); //md.Version = DateTime.Now.Ticks.ToString(); md.Version = DateTime.Now.Year + "." + DateTime.Now.Month + "." + DateTime.Now.Day + "." + (int)DateTime.Now.TimeOfDay.TotalMinutes; //DateTime.Now.TimeOfDay.TotalMinutes md.MakerList = initMakerList(); md.LabelList = initLabelList(); md.SeriesList = initSeriesList(); md.ActressList = initActressList(); md.MovieList = initMovieList(); md.ActressMovieList = initAMList(); md.Serialize(fileName); if (File.Exists(newFileName)) { File.Delete(newFileName); } File.Copy(fileName, newFileName, true); }
public bool IsUpdateAvailable() { lock (_lock) { if (_wantUpdate.HasValue) { return(_wantUpdate.Value); } GetUpdateInfo(); bool wantUpdate = false; List <Assembly> assemblies = new List <Assembly>(); foreach (SimpleUpdateInfo info in _updateManifest.Manifest) { var assemblyFullName = info.AssemblyFullName.ToString(); var assemblyName = assemblyFullName.Substring(0, assemblyFullName.IndexOf(',')); try { Assembly asm = Assembly.Load(assemblyName); if (info.ImageName == asm.ManifestModule.Name) { log.Debug("Manifest assembly:" + asm.GetName().Name); assemblies.Add(asm); } } catch { } } _assemblies = new List <Assembly>(); List <Assembly> forceUpdateAsm = new List <Assembly>(); foreach (Assembly asm in assemblies) { wantUpdate = false; string CurrentVersion = asm.GetName().Version.ToString(); var CurrentVersionInts = CurrentVersion.Split(".".ToCharArray()).ToList <String>(). ConvertAll(s => Convert.ToInt32(s)); foreach (SimpleUpdateInfo info in _updateManifest.Manifest) { if (info.ImageName == asm.ManifestModule.Name) { if (info.ForceUpdate) { log.Debug("Update Available:" + info.AssemblyFullName); forceUpdateAsm.Add(asm); } else { var LatestVersionInts = info.LatestAvailableVersion.Split(".".ToCharArray()). ToList <String>().ConvertAll(s => Convert.ToInt32(s)); for (int i = 0; i < CurrentVersionInts.Count; i++) { if (i < LatestVersionInts.Count) { if (CurrentVersionInts[i] < LatestVersionInts[i]) { log.Debug("Update Available:" + info.AssemblyFullName); _assemblies.Add(asm); wantUpdate = true; } else if (CurrentVersionInts[i] > LatestVersionInts[i]) { break; } } if (wantUpdate) { break; } } if (wantUpdate) { break; } } } } } List <FileInfo> dbxmls = new List <FileInfo>(); dbxmls.Add(new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, uncAV))); _dbxmls = new List <FileInfo>(); foreach (FileInfo xml in dbxmls) { wantUpdate = false; MovieDatas md = new MovieDatas().Deserialize(xml.FullName); string CurrentVersion = md.Version; var CurrentVersionInts = CurrentVersion.Split(".".ToCharArray()).ToList <String>(). ConvertAll(s => Convert.ToInt32(s)); foreach (SimpleUpdateInfo info in _updateManifest.Manifest) { if (info.ImageName == xml.Name + ".zip") { if (info.ForceUpdate) { log.Debug("Update Available:{0}" + info.AssemblyFullName); _dbxmls.Add(xml); } else { var LatestVersionInts = info.LatestAvailableVersion.Split(".".ToCharArray()). ToList <String>().ConvertAll(s => Convert.ToInt32(s)); for (int i = 0; i < CurrentVersionInts.Count; i++) { if (i < LatestVersionInts.Count) { if (CurrentVersionInts[i] < LatestVersionInts[i]) { log.Debug("Update Available:{0}" + info.AssemblyFullName); _dbxmls.Add(xml); wantUpdate = true; } else if (CurrentVersionInts[i] > LatestVersionInts[i]) { break; } } if (wantUpdate) { break; } } if (wantUpdate) { break; } } } } } if (_assemblies.Count > 0 || _dbxmls.Count > 0) { wantUpdate = true; _updateManifest.UpdateIsAvailableAndValid = true; _assemblies.AddRange(forceUpdateAsm); } _wantUpdate = new Nullable <bool>(wantUpdate); } return(_wantUpdate.Value); }
private void ReadDirectory() { if (!Directory.Exists(_dir)) { throw new Exception("Directory doesn't exists!"); } _updateManifest = new UpdateManifest(); _updateManifest.Manifest = new List <SimpleUpdateInfo>(); if (File.Exists(_dir + ".zip")) { File.Delete(_dir + ".zip"); } List <String> archivedImages = new List <String>(); ZipFile zip = new ZipFile(_dir + ".zip"); String[] ave = { "AVSyncer.exe$", ".dll", "uncAV.xml$" }; String[] force = { "log4net.dll", "Ionic.Zip.Reduced.dll" }; var entries = Directory.EnumerateFileSystemEntries(_dir); var fp = new List <String>(); foreach (var entry in entries) { Boolean isRecognize = false; Boolean isForceUpdate = false; foreach (String p in ave) { foreach (String s in matches(p, entry, 0)) { isRecognize = true; break; } if (isRecognize) { break; } } foreach (String p in force) { foreach (String s in matches(p, entry, 0)) { isForceUpdate = true; break; } if (isForceUpdate) { break; } } if (isRecognize && File.Exists(entry)) { byte[] chunk = File.ReadAllBytes(entry); Assembly a = null; SimpleUpdateInfo info = null; try { a = System.Reflection.Assembly.Load(chunk); info = new SimpleUpdateInfo() { Archived = false, AssemblyFullName = a.GetName().FullName, ImageName = Path.GetFileName(entry), LatestAvailableVersion = ExtractVersion(a.GetName().FullName), Hash = ComputeHash(entry), HashType = GetHashAlgorithm().GetType().ToString(), TimeStamp = File.GetLastWriteTime(entry), ForceUpdate = isForceUpdate }; zip.AddFile(entry, "CurrentVersion"); } catch (BadImageFormatException) { FileInfo file = new FileInfo(entry); String ImageName = entry + ".zip"; archivedImages.Add(ImageName); if (File.Exists(ImageName)) { File.Delete(ImageName); } ZipFile unczip = new ZipFile(ImageName); unczip.AddFile(entry, ""); unczip.Save(); if (file.Name == "uncAV.xml") { MovieDatas md = new MovieDatas().Deserialize(entry); info = new SimpleUpdateInfo() { Archived = true, AssemblyFullName = file.Name + ".zip, version=" + md.Version, ImageName = Path.GetFileName(entry) + ".zip", LatestAvailableVersion = md.Version, Hash = ComputeHash(ImageName), HashType = GetHashAlgorithm().GetType().ToString(), TimeStamp = File.GetLastWriteTime(entry), ForceUpdate = isForceUpdate }; zip.AddFile(ImageName, "CurrentVersion"); } else { info = new SimpleUpdateInfo() { Archived = false, AssemblyFullName = file.Name, ImageName = Path.GetFileName(entry), LatestAvailableVersion = "0.0.0.0", Hash = ComputeHash(entry), HashType = GetHashAlgorithm().GetType().ToString(), TimeStamp = File.GetLastWriteTime(entry), ForceUpdate = isForceUpdate }; } } catch (Exception e) { System.Console.WriteLine(e.Message); } _updateManifest.Manifest.Add(info); } } zip.Save(); foreach (String image in archivedImages) { File.Delete(image); } _updateManifest.CodeBase = _url; }