Exemplo n.º 1
0
 public Extension(IAppExtension extension, IAppServiceConnectionFactory connectionFactory)
 {
     _connectionFactory = connectionFactory;
     AppExtension       = extension;
     UniqueId           = extension.GetUniqueId();
     _state             = ExtensionState.Uninitialized;
 }
Exemplo n.º 2
0
        private async Task LoadExtension(IAppExtension extension)
        {
            if (!extension.Package.VerifyIsOK() || !_allowedPackageSignatureKinds.Contains(extension.Package.SignatureKind))
            {
                //TODO: Log
                return;
            }

            var identifier = extension.GetUniqueId();

            var existingExtension = Extensions.FirstOrDefault(e => e.UniqueId == identifier);

            if (existingExtension == null)
            {
                var newExtension = new Extension <TMessage, TResponse>(extension, _connectionFactory);
                Extensions.Add(newExtension);
                await newExtension.Initialize();

                newExtension.Load();
            }
            else
            {
                existingExtension.Unload();
                await existingExtension.Update(extension);
            }
        }