add options to update and clear direct links

This commit is contained in:
2024-10-03 10:46:16 +02:00
parent 3ec94fa22d
commit 690355266c
10 changed files with 205 additions and 4 deletions

View File

@@ -1,5 +1,4 @@
using ModpackUpdater.Apps.Manager.Api.Model;
using ModpackUpdater.Apps.Manager.Features.Tools;
using ModpackUpdater.Apps.Manager.Ui;
using ModpackUpdater.Manager;
using Pilz.UI.Extensions;
@@ -24,6 +23,7 @@ internal static class SharedFunctions
var failed = false;
var msg = default(string);
var factory = new ModpackFactory();
var rows = new Dictionary<GridViewRowInfo, InstallAction>();
for (var i = 0; i < selectedRows.Length; i++)
@@ -36,7 +36,6 @@ internal static class SharedFunctions
{
try
{
var factory = new ModpackFactory();
var result = await factory.ResolveSourceUrl(action);
failed = string.IsNullOrWhiteSpace(result);
}
@@ -107,4 +106,52 @@ internal static class SharedFunctions
return true;
}
public static void FindNewDirectLinks(IMainApi api, params InstallAction[] actions)
{
var mainForm = api.MainWindow as MainForm;
var gridView = mainForm?.Controls.Find("radGridView_Actions", true).FirstOrDefault() as RadGridView;
var rwb = mainForm?.Controls.Find("radWaitingBar_Actions", true).FirstOrDefault() as RadWaitingBar;
var factory = new ModpackFactory();
rwb?.StartWaiting();
gridView?.BeginUpdate();
foreach (var action in actions)
{
if (action.SourceType != SourceType.DirectLink)
{
Task.Run(async () =>
{
action.SourceUrl = await factory.ResolveSourceUrl(action);
}).Wait();
api.UpdateItem(action);
}
}
gridView?.EndUpdate();
rwb?.StopWaiting();
}
public static void ClearDirectLinks(IMainApi api, params InstallAction[] actions)
{
var mainForm = api.MainWindow as MainForm;
var gridView = mainForm?.Controls.Find("radGridView_Actions", true).FirstOrDefault() as RadGridView;
var rwb = mainForm?.Controls.Find("radWaitingBar_Actions", true).FirstOrDefault() as RadWaitingBar;
rwb?.StartWaiting();
gridView?.BeginUpdate();
foreach (var action in actions)
{
if (action.SourceType != SourceType.DirectLink)
{
action.SourceUrl = null;
api.UpdateItem(action);
}
}
gridView?.EndUpdate();
rwb?.StopWaiting();
}
}