Example #1
0
        /// <summary>
        /// Removes an extension from the current session.
        /// </summary>
        /// <param name="extension">Extension</param>
        public void Remove(IExtension extension)
        {
            var fullName = extension.Name + " (id: " + extension.UniqueId + ")";
            if (!extensions.Contains(extension))
            {
                Log("ExtensionManager does not contain " + fullName + " extension");
                return;
            }

            extensions.Remove(extension);
            try
            {
                extension.Dispose();
            }
            catch (Exception ex)
            {
                Log(fullName + " extension cannot be disposed properly: " + ex.Message);
            }

            Log(fullName + " extension is removed");
            if (ExtensionRemoved != null)
            {
                ExtensionRemoved(extension);
            }
        }
Example #2
0
        /// <summary>
        /// Removes an extension from the current session.
        /// </summary>
        /// <param name="extension">Extension</param>
        public void Remove(IExtension extension)
        {
            var fullName = extension.Name + " (id: " + extension.UniqueId + ")";

            if (!extensions.Contains(extension))
            {
                Log("ExtensionManager does not contain " + fullName + " extension");
                return;
            }

            extensions.Remove(extension);
            try
            {
                extension.Dispose();
            }
            catch (Exception ex)
            {
                Log(fullName + " extension cannot be disposed properly: " + ex.Message);
            }

            Log(fullName + " extension is removed");
            if (ExtensionRemoved != null)
            {
                ExtensionRemoved(extension);
            }
        }
Example #3
0
        private void Flow()
        {
            try
            {
                isRunning = true;
                instance  = (IExtension)Activator.CreateInstance(extensionType);
                Result    = instance.Main(Args);
            }
            catch (ThreadAbortException)
            {
                Result = null;
            }
            catch (Exception e)
            {
                var appManager = LakeProvider.Lake.Get <IAppManager>();
                Result = e;
                SLogger <ExtensionTask> .Warn($"{extensionType.Name}-extension error", e.InnerException);

                string fmt = appManager.GetPublicResouce <string>("OpenFxExceptionMsgTitleFmt");
                fmt = string.Format(fmt, Wrapper.Info.Name);
                string sketch = appManager.GetPublicResouce <string>("OpenFxExceptionSketch");
                appManager.ShowException(fmt, sketch, e.GetType() == typeof(TargetInvocationException) ? e.InnerException : e);
            }
            finally
            {
                instance.Dispose();
                isRunning = false;
                Finished?.Invoke(this, new TaskFinishedEventArgs(this));
            }
        }
Example #4
0
        public void Dispose(IExtension extension)
        {
            extension.Dispose();

            if (!extension.IsRunning && _extensionsRunning.Contains(extension))
            {
                _extensionsRunning.Remove(extension);
            }
        }
Example #5
0
        public void Remove(IExtension extension)
        {
            var fullName = extension.Name + " (id: " + extension.UniqueId + ")";
            if (!extensions.Contains(extension))
            {
                Log("ExtensionManager does not contain " + fullName + " extension");
                return;
            }

            extensions.Remove(extension);
            extension.Dispose();
            Log(fullName + " extension is removed");
            if (ExtensionRemoved != null)
            {
                ExtensionRemoved(extension);
            }
        }
Example #6
0
        public void Remove(IExtension extension)
        {
            var fullName = extension.Name + " (id: " + extension.UniqueId + ")";

            if (!extensions.Contains(extension))
            {
                Log("ExtensionManager does not contain " + fullName + " extension");
                return;
            }

            extensions.Remove(extension);
            extension.Dispose();
            Log(fullName + " extension is removed");
            if (ExtensionRemoved != null)
            {
                ExtensionRemoved(extension);
            }
        }