//Get bower packages from reading bower.json public override IEnumerable <Package> GetPackages(params string[] o) { var packages = new List <Package>(); AuditFileInfo config_file = this.AuditEnvironment.ConstructFile(this.PackageManagerConfigurationFile); JObject json = (JObject)JToken.Parse(config_file.ReadAsText()); if (json.Properties().Any(j => j.Name == "name") && json.Properties().Any(j => j.Name == "version")) { packages.AddRange(GetDeveloperPackages( json.Properties().First(j => j.Name == "name").Value.ToString(), json.Properties().First(j => j.Name == "version").Value.ToString())); } JObject dependencies = (JObject)json["dependencies"]; JObject dev_dependencies = (JObject)json["devDependencies"]; if (dev_dependencies != null) { packages.AddRange(dev_dependencies.Properties().SelectMany(d => GetDeveloperPackages(d.Name, d.Value.ToString()))); } if (dependencies != null) { packages.AddRange(dependencies.Properties().SelectMany(d => GetDeveloperPackages(d.Name, d.Value.ToString()))); } if (!string.IsNullOrEmpty(PackageSourceLockFile)) { NpmPackagesLock lockfile = JsonConvert.DeserializeObject <NpmPackagesLock>(File.ReadAllText(PackageSourceLockFile)); foreach (var requirement in lockfile.dependencies) { var packageRoot = GetPackagesObject(requirement.Key, requirement.Value); foreach (var tmpPackage in packageRoot) { if (!packages.Contains(tmpPackage)) { packages.Add(tmpPackage); } } /* * var packageRoot = GetDeveloperPackages(requirement.Key, requirement.Value.version); * * if(requirement.Value.requires != null) * { * foreach(var item in requirement.Value.requires) * { * var tmpPackage = GetDeveloperPackages(item.Key, item.Value); * packageRoot.AddRange(tmpPackage); * } * } */ } } return(packages); }
/// <summary> /// This function is called when we actually want to upload audit data /// </summary> /// <param name="selectedOnly"></param> private void UploadAudits(bool selectedOnly) { // Build a list of the Audit Files that are to be uploaded _listToUpload.Clear(); if (selectedOnly) { foreach (UltraListViewItem item in lvAudits.SelectedItems) { // The tag is the info object about the audit file AuditFileInfo auditFileInfo = item.Tag as AuditFileInfo; AuditDataFile auditDataFile = auditFileInfo.AuditFile; if (auditDataFile != null) { _listToUpload.Add(auditDataFile); } } } else { // Add all items foreach (UltraListViewItem item in lvAudits.Items) { AuditFileInfo auditFileInfo = item.Tag as AuditFileInfo; AuditDataFile auditDataFile = auditFileInfo.AuditFile; if (auditDataFile != null) { _listToUpload.Add(auditDataFile); } } } // Have we any items to upload? if (_listToUpload.Count == 0) { MessageBox.Show("There are no audits selected to upload", "Upload Error"); return; } // Whilst the upload is running we must not allow the user to exit this form bnClose.Visible = false; bnClose.Enabled = false; bnCancel.Visible = true; bnUpload.Enabled = false; bnUploadAll.Enabled = false; // Update the status bar text to show what's happening now lblProgress.Text = "Preparing to upload " + _listToUpload.Count.ToString() + " assets..."; // We actually use the worker thread to perform the uploads for us so start it here _startUploadTime = DateTime.Now; this.backgroundWorkerUpload.RunWorkerAsync(); }
/// <summary> /// Refresh the list of files in the specified folder /// </summary> private void RefreshList() { // Clear the list view initially lvAudits.BeginUpdate(); lvAudits.Items.Clear(); // If we have no data folder then we may as well just exit _uploadFolder = tbAuditFolder.Text; if (_uploadFolder != "") { // build a temporary list of matching files List <AuditFileInfo> listAuditFiles = new List <AuditFileInfo>(); AuditUploader auditLoader = new AuditUploader(_uploadFolder, _licenseCount); auditLoader.EnumerateFiles(listAuditFiles); // sort the list by audit scan date listAuditFiles.Sort(); UltraListViewItem[] items = new UltraListViewItem[listAuditFiles.Count]; for (int i = 0; i < listAuditFiles.Count; i++) { AuditFileInfo thisAuditFile = listAuditFiles[i]; UltraListViewSubItem[] subItemArray = new UltraListViewSubItem[3]; subItemArray[0] = new UltraListViewSubItem(); subItemArray[0].Value = thisAuditFile.Assetname; subItemArray[1] = new UltraListViewSubItem(); subItemArray[1].Value = thisAuditFile.AuditDate.ToString(); subItemArray[2] = new UltraListViewSubItem(); subItemArray[2].Value = thisAuditFile.StatusAsText; // UltraListViewItem item = new UltraListViewItem(thisAuditFile.Filename, subItemArray); item.Tag = thisAuditFile; item.Key = thisAuditFile.AuditFile.FileName; items[i] = item; } lvAudits.Items.AddRange(items); // Also build a list of LYNC audit files which should be uploaded LyncAuditFileList listLyncAudits = new LyncAuditFileList(); listLyncAudits.Populate(_uploadFolder); // then add to the file list control foreach (LyncAuditFile lyncAuditFile in listLyncAudits.LyncAuditFiles) { AuditDataFile thisAuditFile = lyncAuditFile.ConvertedFile(); if (thisAuditFile == null) { continue; } // We need an AuditFileInfo object for this file AuditFileInfo auditFileInfo = new AuditFileInfo(); auditFileInfo.Assetname = thisAuditFile.AssetName; auditFileInfo.AuditDate = thisAuditFile.AuditDate; auditFileInfo.AuditFile = thisAuditFile; auditFileInfo.Filename = lyncAuditFile.FileName; UltraListViewSubItem[] subItemArray = new UltraListViewSubItem[3]; subItemArray[0] = new UltraListViewSubItem(); subItemArray[0].Value = auditFileInfo.Assetname; subItemArray[1] = new UltraListViewSubItem(); subItemArray[1].Value = auditFileInfo.AuditDate.ToString(); subItemArray[2] = new UltraListViewSubItem(); subItemArray[2].Value = auditFileInfo.StatusAsText; // UltraListViewItem item = new UltraListViewItem(auditFileInfo.Filename, subItemArray); item.Tag = auditFileInfo; item.Key = auditFileInfo.Filename; lvAudits.Items.Add(item); } } lvAudits.EndUpdate(); }