2021.3/CS10/Namespaces/BlockScoped/BlockScopedNamespace.cs (39 lines of code) (raw):
#pragma warning disable 8509
#pragma warning disable 8618
#pragma warning disable 8524
// ReSharper disable UnusedMember.Global
// ReSharper disable UnusedMember.Local
// ReSharper disable UnusedType.Global
//Alt+Enter on the "CS10.Namespaces.BlockScoped" name, "To block-scoped namespace"
namespace CS10.Namespaces.BlockScoped;
public class Employees
{
private readonly List<Person> _supportEngineers;
private readonly List<Person> _softwareEngineers;
public Employees(List<Person> supportEngineers, List<Person> softwareEngineers)
{
_supportEngineers = supportEngineers;
_softwareEngineers = softwareEngineers;
}
public IEnumerable<Person> AllEmployees
{
get
{
var employees = new List<Person>();
employees.AddRange(_supportEngineers);
employees.AddRange(_softwareEngineers);
return employees;
}
}
public void AddEmployee(Person person, Role role)
{
var targetList = role switch
{
Role.SupportEngineer => _supportEngineers,
Role.SoftwareEngineer => _softwareEngineers,
};
targetList.Add(person);
}
}
public enum Role
{
SupportEngineer,
SoftwareEngineer
}