Beispiel #1
0
        public List <FileObject> GenerateFileList()
        {
            WoWRepository repository = RepositoriesManager.GetRepositoryByMfil(WoWRegeneration.CurrentSession.MFil);

            var tmp = new List <FileObject>();

            foreach (string line in Lines)
            {
                if (IsLineARepositorFile(repository, line))
                {
                    var file = new FileObject {
                        Path = GetFilePath(line)
                    };
                    if (file.Path == null)
                    {
                        continue;
                    }
                    file.Url  = line;
                    file.Info = GetFileInfo(repository, line);
                    if (IsAcceptedFile(repository, file))
                    {
                        tmp.Add(file);
                    }
                }
            }

            return(tmp);
        }
Beispiel #2
0
        public Session(string mfil, string locale, string os) : this()
        {
            Mfil   = mfil;
            Locale = locale;
            OS     = os;

            Repository rep = RepositoriesManager.GetRepositoryByMfil(mfil) ?? throw new Exception("Unknown mfil file");

            WoWRepositoryName = rep.VersionName;
        }
        private static void EntryPointResumeSession(Session previousSession)
        {
            CurrentSession = previousSession;

            IWoWRepository repository = RepositoriesManager.GetRepositoryByMfil(CurrentSession.MFil);
            ManifestFile   manifest   = ManifestFile.FromRepository(repository);

            CurrentSession.SaveSession();

            StartProcess(manifest);
        }
Beispiel #4
0
    public RepositoriesPageViewModel(INavigationService navigationService, ISecuredDataProvider securedDataProvider)
    {
        _navigationService = navigationService;
        var token = securedDataProvider.Retreive(ConstantsService.ProviderName, UserManager.GetLastUser());

        _session = new Session(UserManager.GetLastUser(), token.Properties.First().Value);
        var navigationParameters = new NavigationParameters {
            { "Session", _session }
        };

        _repositoriesManager = new RepositoriesManager(_session);
        Repositories         = NotifyTask.Create(GetRepositoriesAsync());
    }
        private static void StartProcess(ManifestFile manifest)
        {
            Program.Log("Generating file list");
            IWoWRepository    repository = RepositoriesManager.GetRepositoryByMfil(CurrentSession.MFil);
            List <FileObject> files      = manifest.GenerateFileList();

            var downloader = new FileDownloader(repository, files);

            downloader.Start();
            CurrentSession.SessionCompleted = true;
            CurrentSession.SaveSession();
            CurrentSession.Destroy();
            Program.Log("Download Complete !!", ConsoleColor.Green);
        }
        public Session(string mfil, string locale, string os)
            : this()
        {
            MFil   = mfil;
            Locale = locale;
            Os     = os;
            WoWRepository rep = RepositoriesManager.GetRepositoryByMfil(mfil);

            if (rep == null)
            {
                throw new Exception("Unknow mfil file");
            }
            WoWRepositoryName = rep.GetVersionName();
        }
Beispiel #7
0
        private static void StartProcess(ManifestFile manifest)
        {
            Program.Log("Generating file list");

            Repository        repository = RepositoriesManager.GetRepositoryByMfil(CurrentSession.Mfil);
            List <FileObject> files      = manifest.GenerateFileList();

            using (var downloader = new FileDownloader(repository, files))
                downloader.Start();

            using (var installer = new Installer(repository))
                installer.Start();

            CurrentSession.Delete();

            Program.Log("Download Complete !!", ConsoleColor.Green);
        }
Beispiel #8
0
        public static Repository SelectRepository(RepoType type)
        {
            var repos = RepositoriesManager.GetByType(type);

            Program.Log("Which version of World of Warcraft do you want to restore :");
            Program.Log();

            for (int i = 0; i < repos.Count; i++)
            {
                Program.Log("[" + (i + 1).ToString("000") + "] " + repos[i].VersionName);
            }

            Program.Log();
            Program.Log("Select version :");
            int selectedIndex = HandleUserParams(repos.Count);

            return(repos[selectedIndex]);
        }
Beispiel #9
0
 public UsersRepository(RepositoriesManager manager) : base(manager)
 {
 }
Beispiel #10
0
 public RepositoryBase(RepositoriesManager manager)
 {
     mManager    = manager;
     mConnection = new NpgsqlConnection(mManager.ConnectionString);
 }
Beispiel #11
0
 public TeamsRepository(RepositoriesManager manager) : base(manager)
 {
 }
Beispiel #12
0
        public List <FileObject> GenerateFileList()
        {
            Repository repository = RepositoriesManager.GetRepositoryByMfil(MFILDownloader.CurrentSession.Mfil);

            BaseUrl = repository.BaseUrl;

            var fileObjects = new List <FileObject>();

            for (int i = 0; i < Lines.Count; i++)
            {
                if (IsLineARepositorFile(Lines[i]))
                {
                    string path = GetToken(i, "path=");
                    string name = GetToken(i, "name=");
                    string size = GetToken(i, "size=");

                    if (path == null || name == null)
                    {
                        continue;
                    }

                    string fileinfo = path.Replace("locale_", "");
                    string filepath = GetFilePath(i);

                    if (repository.Type == RepoType.Direct)
                    {
                        // direct download
                        fileObjects.Add(new FileObject()
                        {
                            Info = fileinfo,
                            Path = filepath,
                            Url  = Lines[i]
                        });
                    }
                    else
                    {
                        string fileurl = Path.Combine(BaseUrl, ServerPaths[path], name);

                        // each MPQ has upto 30 parts of varying size
                        for (int j = 0; j < 30; j++)
                        {
                            fileObjects.Add(new FileObject()
                            {
                                Info = fileinfo,
                                Path = filepath + "." + j,
                                Url  = fileurl + "." + j,
                            });
                        }
                    }
                }
            }

            // Add the manifest itself
            fileObjects.Add(new FileObject()
            {
                Path = repository.Type == RepoType.Direct ? ".mfil." : repository.MfilName,
                Url  = BaseUrl + repository.MfilName,
            });

            // remove invalid objects
            fileObjects.RemoveAll(x => !IsAcceptedFile(repository, x));
            return(fileObjects);
        }
Beispiel #13
0
 public TournamentsRepository(RepositoriesManager manager) : base(manager)
 {
 }
 public RepositoriesHelper(CookbookContext _context)
 {
     _repositoriesManager = new RepositoriesManager(_context);
 }
Beispiel #15
0
 public PartiesRepository(RepositoriesManager manager) : base(manager)
 {
 }