private uint Initialize(Assembly ConsumerAssembly, uint ApiVersion) { // locate IDhcpServerCalloutConsumer var consumer = ConsumerAssembly.GetTypes() .Where(t => typeof(ICalloutConsumer).IsAssignableFrom(t) && !t.IsValueType && !t.IsAbstract && t.GetConstructor(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic, null, Type.EmptyTypes, null) != null) .FirstOrDefault(); if (consumer == null) { return(0xBU); // assembly does not implement consumer } consumerInstance = (ICalloutConsumer)Activator.CreateInstance(consumer); if (consumerInstance is INewPacket newPacketHandler) { this.newPacketHandler = newPacketHandler; } if (consumerInstance is IPacketDrop packetDropHandler) { this.packetDropHandler = packetDropHandler; } if (consumerInstance is IPacketSend packetSendHandler) { this.packetSendHandler = packetSendHandler; } if (consumerInstance is IAddressDelete addressDeleteHandler) { this.addressDeleteHandler = addressDeleteHandler; } if (consumerInstance is IAddressOffer addressOfferHandler) { this.addressOfferHandler = addressOfferHandler; } if (consumerInstance is IHandleOptions handleOptionsHandler) { this.handleOptionsHandler = handleOptionsHandler; } if (consumerInstance is IDeleteClient deleteClientHandler) { this.deleteClientHandler = deleteClientHandler; } // call consumer initialize consumerInstance.Initialize((int)ApiVersion); return(0x0U); // ERROR_SUCCESS }
public ClientsController( IGetClients getClients, IGetClientById getClientById, IUpsertClient upsertClient, IDeleteClient deleteClient) { this.getClients = getClients; this.getClientById = getClientById; this.upsertClient = upsertClient; this.deleteClient = deleteClient; this.createValidator = new CreateClientModelValidator(); this.updateValidator = new UpdateClientModelValidator(); }