1
0
mirror of https://github.com/SirLecram/HospitalServerManager synced 2024-07-17 10:25:30 +02:00
admissionManager/ViewModel/DataProvider/NavigationPageTypeProvider.cs

33 lines
1.1 KiB
C#
Raw Permalink Normal View History

using HospitalServerManager.InterfacesAndEnums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HospitalServerManager.ViewModel.DataProvider
{
class NavigationPageTypeProvider : TypeProvider
{
private IValidateIfInterfaceIsImplemented InterfaceValidator = null;
public NavigationPageTypeProvider(IValidateIfInterfaceIsImplemented validateInterface) { InterfaceValidator = validateInterface; }
public NavigationPageTypeProvider(IValidateIfInterfaceIsImplemented validateInterface, List<Type> typeToRegister)
: this(validateInterface)
{
typeToRegister.ForEach(x => RegisterType(x));
}
public NavigationPageTypeProvider(IValidateIfInterfaceIsImplemented validateInterface, Type typeToRegister)
: this(validateInterface, new List<Type> { typeToRegister }) { }
public override void RegisterType(Type typeToRegister)
{
if (!InterfaceValidator.ValidateIfTypeImplementInterface(typeToRegister, typeof(IPageNavigateable)))
throw new ArgumentException("Registred type have to implement IPageNavigateable interface!");
base.RegisterType(typeToRegister);
}
}
}