Restore SEBPatch

This commit is contained in:
2025-06-01 11:56:28 +02:00
parent 8c656e3137
commit 00707825b4
1009 changed files with 5005 additions and 6502 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
* Copyright (c) 2025 ETH Zürich, IT Services
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -18,11 +18,11 @@ namespace SafeExamBrowser.Core.OperationModel
/// <summary>
/// Default implementation of the <see cref="IOperationSequence"/>.
/// </summary>
public class OperationSequence : IOperationSequence
public class OperationSequence<T> : IOperationSequence where T : IOperation
{
protected ILogger logger;
protected Queue<IOperation> operations = new Queue<IOperation>();
protected Stack<IOperation> stack = new Stack<IOperation>();
protected Queue<T> operations = new Queue<T>();
protected Stack<T> stack = new Stack<T>();
public event ActionRequiredEventHandler ActionRequired
{
@@ -38,10 +38,10 @@ namespace SafeExamBrowser.Core.OperationModel
remove { operations.ForEach(o => o.StatusChanged -= value); }
}
public OperationSequence(ILogger logger, Queue<IOperation> operations)
public OperationSequence(ILogger logger, IEnumerable<T> operations)
{
this.logger = logger;
this.operations = new Queue<IOperation>(operations);
this.operations = new Queue<T>(operations);
}
public virtual OperationResult TryPerform()

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
* Copyright (c) 2025 ETH Zürich, IT Services
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2024 ETH Zürich, IT Services
* Copyright (c) 2025 ETH Zürich, IT Services
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
@@ -17,13 +17,10 @@ namespace SafeExamBrowser.Core.OperationModel
/// <summary>
/// Default implementation of the <see cref="IRepeatableOperationSequence"/>.
/// </summary>
public class RepeatableOperationSequence : OperationSequence, IRepeatableOperationSequence
public class RepeatableOperationSequence<T> : OperationSequence<T>, IRepeatableOperationSequence where T : IRepeatableOperation
{
private new Queue<IRepeatableOperation> operations;
public RepeatableOperationSequence(ILogger logger, Queue<IRepeatableOperation> operations) : base(logger, new Queue<IOperation>(operations))
public RepeatableOperationSequence(ILogger logger, IEnumerable<T> operations) : base(logger, operations)
{
this.operations = new Queue<IRepeatableOperation>(operations);
}
public OperationResult TryRepeat()