Resolved blocked service UI bug (#134)

This commit is contained in:
Michael Green
2023-09-23 20:59:01 -07:00
committed by GitHub
parent 586f2c69d8
commit d6d6a5d808
2 changed files with 13 additions and 19 deletions

View File

@@ -36,7 +36,7 @@ namespace gaseous_server
List<ProcessQueue.QueueItem> ActiveList = new List<ProcessQueue.QueueItem>(); List<ProcessQueue.QueueItem> ActiveList = new List<ProcessQueue.QueueItem>();
ActiveList.AddRange(ProcessQueue.QueueItems); ActiveList.AddRange(ProcessQueue.QueueItems);
foreach (ProcessQueue.QueueItem qi in ActiveList) { foreach (ProcessQueue.QueueItem qi in ActiveList) {
if (CheckProcessBlockList(qi) == true) { if (CheckIfProcessIsBlockedByOthers(qi) == false) {
qi.BlockedState(false); qi.BlockedState(false);
if (DateTime.UtcNow > qi.NextRunTime || qi.Force == true) if (DateTime.UtcNow > qi.NextRunTime || qi.Force == true)
{ {
@@ -69,31 +69,25 @@ namespace gaseous_server
_timer?.Dispose(); _timer?.Dispose();
} }
private bool CheckProcessBlockList(ProcessQueue.QueueItem queueItem) private bool CheckIfProcessIsBlockedByOthers(ProcessQueue.QueueItem queueItem)
{
if (queueItem.Blocks.Count > 0)
{ {
foreach (ProcessQueue.QueueItem qi in ProcessQueue.QueueItems) foreach (ProcessQueue.QueueItem qi in ProcessQueue.QueueItems)
{ {
if (qi.ItemState == ProcessQueue.QueueItemState.Running) {
// other service is running, check if queueItem is blocked by it
if ( if (
( qi.Blocks.Contains(queueItem.ItemType) ||
queueItem.Blocks.Contains(qi.ItemType) || qi.Blocks.Contains(ProcessQueue.QueueItemType.All)
queueItem.Blocks.Contains(ProcessQueue.QueueItemType.All)
) &&
qi.ItemState == ProcessQueue.QueueItemState.Running
) )
{ {
Console.WriteLine(queueItem.ItemType.ToString() + " is blocked by " + qi.ItemType.ToString());
return true;
}
}
}
return false; return false;
} }
} }
return true;
}
else
{
return true;
}
}
}
} }

View File

@@ -64,7 +64,7 @@
var itemStateName; var itemStateName;
var itemLastStart; var itemLastStart;
if (result[i].IsBlocked == false) { if (result[i].isBlocked == false) {
switch (result[i].itemState) { switch (result[i].itemState) {
case 'NeverStarted': case 'NeverStarted':
itemStateName = "Never started"; itemStateName = "Never started";