public override List<HeliosInterface> GetInterfaceInstances(HeliosInterfaceDescriptor descriptor, HeliosProfile profile) { List<HeliosInterface> interfaces = new List<HeliosInterface>(); if (descriptor == null) { ConfigManager.LogManager.LogWarning("Descriptor is null passed into UniqueHeliosInterfaceFactory.GetInterfaceInstances."); } else { if (IsUnique(descriptor, profile)) { HeliosInterface newInterface = (HeliosInterface)Activator.CreateInstance(descriptor.InterfaceType); if (newInterface == null) { ConfigManager.LogManager.LogWarning("New interface is null."); } interfaces.Add(newInterface); } else { ConfigManager.LogManager.LogInfo("Unique interface already exists in profile " + descriptor.Name); } } return interfaces; }
public override List<HeliosInterface> GetAutoAddInterfaces(HeliosInterfaceDescriptor descriptor, HeliosProfile profile) { List<HeliosInterface> interfaces = new List<HeliosInterface>(); if (descriptor != null && descriptor.AutoAdd && IsUnique(descriptor, profile)) { interfaces.Add((HeliosInterface)Activator.CreateInstance(descriptor.InterfaceType)); } return interfaces; }
public virtual List<HeliosInterface> GetInterfaceInstances(HeliosInterfaceDescriptor descriptor, HeliosProfile profile) { List<HeliosInterface> interfaces = new List<HeliosInterface>(); if (descriptor != null) { interfaces.Add((HeliosInterface)Activator.CreateInstance(descriptor.InterfaceType)); } return interfaces; }
private bool IsUnique(HeliosInterfaceDescriptor descriptor, HeliosProfile profile) { foreach (HeliosInterface heliosInterface in profile.Interfaces) { HeliosInterfaceDescriptor interfaceDescriptor = ConfigManager.ModuleManager.InterfaceDescriptors[heliosInterface.GetType()]; if (interfaceDescriptor.TypeIdentifier.Equals(descriptor.TypeIdentifier)) { // If any existing interfaces in the profile have the same type identifier do not add them. return false; } } return true; }