private void LstDriverStoreEntries_ItemChecked(object sender, ItemCheckedEventArgs e) { IList checkedObjects = this.lstDriverStoreEntries.CheckedObjects; if (checkedObjects?.Count > 0) { long totalSize = 0; foreach (DriverStoreEntry item in checkedObjects) { totalSize += item.DriverSize; } this.ShowStatus( Status.Normal, string.Format(Language.Status_Selected_Drivers, checkedObjects.Count, DriverStoreEntry.GetBytesReadable(totalSize))); } else { this.ShowStatus(Status.Normal, Language.Status_No_Drivers_Selected); } }
private void UpdateCheckedItemSize() { IList checkedObjects = this.lstDriverStoreEntries.CheckedObjects; if (checkedObjects?.Count > 0) { long totalSize = 0; foreach (DriverStoreEntry item in checkedObjects) { totalSize += item.DriverSize; } this.ShowStatus( Status.Normal, string.Format(Language.Status_Selected_Drivers, checkedObjects.Count, DriverStoreEntry.GetBytesReadable(totalSize))); } else { this.ShowStatus(Status.Normal, Language.Status_No_Drivers_Selected); } this.buttonDeleteDriver.Enabled = this.lstDriverStoreEntries.CheckedObjects.Count > 0; this.cbForceDeletion.Enabled = this.buttonDeleteDriver.Enabled; }
private void LstDriverStoreEntries_ItemChecked(object sender, ItemCheckedEventArgs e) { IList checkedObjects = this.lstDriverStoreEntries.CheckedObjects; if (checkedObjects?.Count > 0) { long totalSize = 0; foreach (DriverStoreEntry item in checkedObjects) { totalSize += item.DriverSize; } this.ShowStatus($"Selected {checkedObjects.Count} Driver(s). Total size: {DriverStoreEntry.GetBytesReadable(totalSize)}.", Status.Normal); } else { this.ShowStatus($"Selected 0 Driver.", Status.Normal); } }
private void UpdateCheckedItemSize() { IList checkedObjects = this.lstDriverStoreEntries.CheckedObjects; if (checkedObjects?.Count > 0) { long totalSize = 0; List <string> driverList = new List <string>(); foreach (DriverStoreEntry item in checkedObjects) { totalSize += item.DriverSize; driverList.Add($"{item.DriverPublishedName} - {item.DriverFolderName} - {DriverStoreEntry.GetBytesReadable(item.DriverSize)}"); } string message = string.Format(Language.Status_Selected_Drivers, checkedObjects.Count, DriverStoreEntry.GetBytesReadable(totalSize)); this.ShowStatus( Status.Normal, message, message + Environment.NewLine + string.Join(Environment.NewLine, driverList)); } else { this.ShowStatus(Status.Normal, Language.Status_No_Drivers_Selected); } this.buttonDeleteDriver.Enabled = this.lstDriverStoreEntries.CheckedObjects.Count > 0; this.cbForceDeletion.Enabled = this.buttonDeleteDriver.Enabled; }
private async Task DeleteDriverStorePackages(List <DriverStoreEntry> driverStoreEntries) { StringBuilder details = new StringBuilder(); foreach (DriverStoreEntry item in driverStoreEntries) { details.AppendLine($"{item.DriverPublishedName} - {item.DriverFolderName} - {DriverStoreEntry.GetBytesReadable(item.DriverSize)}"); } bool force = this.cbForceDeletion.Checked; try { this.StartOperation(); this.ShowStatus( Status.Normal, Language.Status_Deleting_Packages, $"{Language.Status_Deleting_Packages}{Environment.NewLine}{details.ToString().Trim()}"); (bool allSucceeded, string detailResult, List <DriverStoreEntry> allDriverStoreEntries) = await Task.Run(() => { bool totalResult = true; StringBuilder sb = new StringBuilder(); if (driverStoreEntries.Count == 1) { totalResult = this.driverStore.DeleteDriver(driverStoreEntries[0], force); } else { foreach (DriverStoreEntry entry in driverStoreEntries) { bool succeeded = this.driverStore.DeleteDriver(entry, force); string resultTxt = string.Format( succeeded ? Language.Message_Delete_Success : Language.Message_Delete_Fail, entry.DriverPublishedName, entry.DriverFolderName); Trace.TraceInformation(resultTxt); sb.AppendLine(resultTxt); totalResult &= succeeded; } } var updatedDriverStoreEntries = totalResult ? new List <DriverStoreEntry>() : this.driverStore.EnumeratePackages(); return(totalResult, sb.ToString(), updatedDriverStoreEntries); }).ConfigureAwait(true); if (allSucceeded) { this.lstDriverStoreEntries.RemoveObjects(driverStoreEntries); } else { this.lstDriverStoreEntries.SetObjects(allDriverStoreEntries); this.UpdateColumnSize(); } string resultText; if (allSucceeded) { if (driverStoreEntries.Count == 1) { resultText = string.Format( Language.Message_Delete_Package, driverStoreEntries[0].DriverInfName, driverStoreEntries[0].DriverPublishedName); } else { resultText = string.Format( Language.Message_Delete_Packages, driverStoreEntries.Count.ToString()); } this.ShowStatus(Status.Success, resultText); } else { string fullResult = null; if (driverStoreEntries.Count == 1) { resultText = string.Format( Language.Message_Delete_Package_Error, driverStoreEntries[0].DriverInfName, driverStoreEntries[0].DriverPublishedName); if (!force) { resultText += Environment.NewLine + Language.Tip_Driver_In_Use; } } else { resultText = Language.Message_Delete_Packages_Error; if (!force) { resultText += Environment.NewLine + Language.Tip_Driver_In_Use; } fullResult = $"{resultText}{Environment.NewLine}{detailResult}"; } this.ShowStatus(Status.Error, resultText, fullResult, true); } this.cbForceDeletion.Checked = false; } catch (Exception ex) { this.ShowStatus(Status.Error, ex.Message, ex.ToString(), true); } finally { this.EndOperation(); } }
private async Task DeleteDriverStoreEntries(List <DriverStoreEntry> driverStoreEntries) { StringBuilder msgWarning = new StringBuilder(); if (driverStoreEntries?.Count > 0) { if (driverStoreEntries.Count == 1) { msgWarning.AppendFormat( this.cbForceDeletion.Checked ? Language.Message_ForceDelete_Single_Package : Language.Message_Delete_Single_Package, driverStoreEntries[0].DriverPublishedName, driverStoreEntries[0].DriverFolderName); } else { msgWarning.AppendFormat( this.cbForceDeletion.Checked ? Language.Message_ForceDelete_Multiple_Packages : Language.Message_Delete_Multiple_Packages, driverStoreEntries.Count); msgWarning.AppendLine(); foreach (DriverStoreEntry item in driverStoreEntries) { msgWarning.AppendLine($"{item.DriverPublishedName} - {item.DriverFolderName} - {DriverStoreEntry.GetBytesReadable(item.DriverSize)}"); } } msgWarning.AppendLine().Append(Language.Message_Sure); if (DialogResult.OK == this.ShowMessageBox( msgWarning.ToString(), Language.Message_Title_Warning, MessageBoxButtons.OKCancel, MessageBoxIcon.Warning)) { await this.DeleteDriverStorePackages(driverStoreEntries).ConfigureAwait(true); } } }