public EntryWrapper(ContentEntry entry, bool isNew) {
                Entry = entry;
                InstallEntry = true;
                IsNew = isNew;

                if (isNew) return;
                _updateOptionsList = entry.Type.GetUpdateOptions().ToArray();
                SelectedOption = _updateOptionsList[0];
            }
Ejemplo n.º 2
0
        public virtual async Task InstallEntryToAsync(ContentEntry entry, Func <string, bool> filter, string destination,
                                                      IProgress <string> progress, CancellationToken cancellation)
        {
            var list = (await GetFileEntriesAsync()).ToList();

            if (entry.Type == ContentType.Car ||
                entry.Type == ContentType.Track ||
                entry.Type == ContentType.Showroom)
            {
                foreach (var fileInfo in list)
                {
                    var filename = fileInfo.Filename;
                    if (entry.Path != string.Empty && !FileUtils.IsAffected(entry.Path, filename))
                    {
                        continue;
                    }

                    var subFilename = filename.SubstringExt(entry.Path.Length);
                    if (subFilename.StartsWith(@"\"))
                    {
                        subFilename = subFilename.Substring(1);
                    }

                    if (filter == null || filter(subFilename))
                    {
                        progress?.Report(subFilename);
                        if (cancellation.IsCancellationRequested)
                        {
                            return;
                        }

                        var path = Path.Combine(destination, subFilename);
                        Directory.CreateDirectory(Path.GetDirectoryName(path) ?? destination);

                        await fileInfo.CopyTo(path);
                    }
                }
            }
            else if (entry.Type == ContentType.CarSkin)
            {
            }
            else if (entry.Type == ContentType.Font)
            {
                var bitmapExtension = Path.GetExtension(entry.Path);

                var mainEntry = list.GetByPathOrDefault(entry.Path.ApartFromLast(bitmapExtension) + FontObject.FontExtension);
                await mainEntry.CopyTo(destination);

                var bitmapDestination = destination.ApartFromLast(FontObject.FontExtension) + bitmapExtension;
                await list.GetByPathOrDefault(entry.Path).CopyTo(bitmapDestination);
            }
            else
            {
                throw new ArgumentOutOfRangeException();
            }
        }
Ejemplo n.º 3
0
        public virtual async Task InstallEntryToAsync(ContentEntry entry, Func<string, bool> filter, string destination,
                IProgress<string> progress, CancellationToken cancellation) {
            var list = (await GetFileEntriesAsync()).ToList();

            if (entry.Type == ContentType.Car ||
                    entry.Type == ContentType.Track ||
                    entry.Type == ContentType.Showroom) {
                foreach (var fileInfo in list) {
                    var filename = fileInfo.Filename;
                    if (entry.Path != string.Empty && !FileUtils.IsAffected(entry.Path, filename)) continue;

                    var subFilename = filename.SubstringExt(entry.Path.Length);
                    if (subFilename.StartsWith(@"\")) subFilename = subFilename.Substring(1);

                    if (filter == null || filter(subFilename)) {
                        progress?.Report(subFilename);
                        if (cancellation.IsCancellationRequested) return;

                        var path = Path.Combine(destination, subFilename);
                        Directory.CreateDirectory(Path.GetDirectoryName(path) ?? destination);

                        await fileInfo.CopyTo(path);
                    }
                }
            } else if (entry.Type == ContentType.CarSkin) {
                
            } else if (entry.Type == ContentType.Font) {
                var bitmapExtension = Path.GetExtension(entry.Path);

                var mainEntry = list.GetByPathOrDefault(entry.Path.ApartFromLast(bitmapExtension) + FontObject.FontExtension);
                await mainEntry.CopyTo(destination);

                var bitmapDestination = destination.ApartFromLast(FontObject.FontExtension) + bitmapExtension;
                await list.GetByPathOrDefault(entry.Path).CopyTo(bitmapDestination);
            } else {
                throw new ArgumentOutOfRangeException();
            }
        }