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()

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

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

View File

@@ -9,7 +9,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyDescription("Safe Exam Browser")]
[assembly: AssemblyCompany("ETH Zürich")]
[assembly: AssemblyProduct("SafeExamBrowser.Core")]
[assembly: AssemblyCopyright("Copyright © 2024 ETH Zürich, IT Services")]
[assembly: AssemblyCopyright("Copyright © 2025 ETH Zürich, IT Services")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from

View File

@@ -64,6 +64,7 @@
<Compile Include="Operations\DelegateOperation.cs" />
<Compile Include="OperationModel\OperationSequence.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ResponsibilityModel\ResponsibilityCollection.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SafeExamBrowser.Communication.Contracts\SafeExamBrowser.Communication.Contracts.csproj">