Beispiel #1
0
        private void Update(SoftwareViewModel viewModel, CancellationToken token)
        {
            MainViewModel.IsIndeterminate = true;

            var card     = CardViewModel.SelectedItem.Info;
            var card2    = GetCard2();
            var progress = new Progress <double>(OnProgressChanged);
            var software = SoftwareDetector.GetSoftware(card, progress, token);

            foreach (var item in software)
            {
                Logger.LogObject(LogLevel.Information, "Detected {0}", item);
            }

            var vms = new SoftwareItemViewModel[software.Length];

            for (var i = 0; i < software.Length; i++)
            {
                var modules = ModulesDetector.GetModules(card, card2, software[i], progress, token);
                Logger.LogObject(LogLevel.Information, "Detected {0}", modules);
                vms[i] = CreateItemViewModel(software[i], modules);
            }
            viewModel.Items = vms;

            viewModel.SelectedItem = viewModel.Items.Length == 1
                ? viewModel.Items.Single()
                : null;
            viewModel.IsSelect = viewModel.Items.Length > 1;

            var title = GetTitle(software);

            Logger.LogInformation(title);
            viewModel.Title = title;
        }
Beispiel #2
0
        private SoftwareInfo GetSoftware(byte[] buffer, string productName, string fileName, ZipEntry entry)
        {
            var software = SoftwareDetector.GetSoftware(buffer, null, default(CancellationToken));

            if (software == null)
            {
                Logger.LogError("Cannot detect software");
                return(null);
            }

            if (software.Camera != null)
            {
                ValidateSoftware(software, entry, productName, fileName);
                UpdateSoftware(software);
            }
            else
            {
                var created = entry.DateTime.ToUniversalTime();
                software.Product = ProductProvider.GetProduct(fileName, created);
                UpdateSoftware(software);
                software.Camera = GetCamera(productName, fileName);
            }

            return(software);
        }