Exemplo n.º 1
0
        private static void test()
        {
            MovieDatas   md = new MovieDatas().Deserialize(@"C:\inetpub\wwwroot\AVSyncer\AVSyncer\uncAV.xml");
            MovieManager mm = md.Transform();

            md = null;
            Console.Write("");
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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;
        }