Exemplo n.º 1
0
        /// <summary>
        /// Deletes the PluginStatus set as parameter.
        /// Sends StatusChanging & StatusChanged
        /// </summary>
        /// <param name="status">The <see cref="PluginStatus"/> to remove</param>
        /// <returns>True if deletion has been completed, false otherwise</returns>
        internal bool OnDestroy(PluginStatus status)
        {
            if (CanChange(ChangeStatus.Delete, status.PluginId, status.Status))
            {
                if (_pluginStatusDic.ContainsValue(status))
                {
                    _pluginStatusDic.Remove(status.PluginId);

                    Change(ChangeStatus.Delete, status.PluginId, status.Status);
                    return(true);
                }
            }
            return(false);
        }
Exemplo n.º 2
0
 public void SetStatus( Guid pluginId, ConfigPluginStatus status )
 {
     PluginStatus currentPluginStatus;
     if ( _pluginStatusDic.TryGetValue( pluginId, out currentPluginStatus ) )
     {
         currentPluginStatus.Status = status;
     }
     else if ( CanChange( ChangeStatus.Add, pluginId, status ) )
     {
         PluginStatus newStatus = new PluginStatus( this, pluginId, status );
         _pluginStatusDic.Add( pluginId, newStatus );
         Change( ChangeStatus.Add, pluginId, status );
     }
 }
Exemplo n.º 3
0
        public void SetStatus(Guid pluginId, ConfigPluginStatus status)
        {
            PluginStatus currentPluginStatus;

            if (_pluginStatusDic.TryGetValue(pluginId, out currentPluginStatus))
            {
                currentPluginStatus.Status = status;
            }
            else if (CanChange(ChangeStatus.Add, pluginId, status))
            {
                PluginStatus newStatus = new PluginStatus(this, pluginId, status);
                _pluginStatusDic.Add(pluginId, newStatus);
                Change(ChangeStatus.Add, pluginId, status);
            }
        }
Exemplo n.º 4
0
        public void ReadContent(IStructuredReader sr)
        {
            XmlReader r = sr.Xml;

            r.Read();
            Dictionary <Guid, PluginStatus> newContent = new Dictionary <Guid, PluginStatus>();

            while (r.IsStartElement("PluginStatus"))
            {
                Guid guid = new Guid(r.GetAttribute("Guid"));
                ConfigPluginStatus status = (ConfigPluginStatus)Enum.Parse(typeof(ConfigPluginStatus), r.GetAttribute("Status"));
                newContent[guid] = new PluginStatus(this, guid, status);
                r.Skip();
            }
            _pluginStatusDic.Clear();
            _pluginStatusDic.AddRange(newContent);

            //may eventually be replaced by some code in SolvedPluginConfiguration
            //Without that, SolvedPluginConfiguration's ResolveConfiguration method is not called
            Change(ChangeStatus.ContainerUpdate, Guid.Empty, 0);
        }
Exemplo n.º 5
0
        public void ReadContent( IStructuredReader sr )
        {
            XmlReader r = sr.Xml;
            r.Read();
            Dictionary<Guid,PluginStatus> newContent = new Dictionary<Guid, PluginStatus>();
            while( r.IsStartElement( "PluginStatus" ) )
            {
                Guid guid = new Guid( r.GetAttribute( "Guid" ) );
                ConfigPluginStatus status = (ConfigPluginStatus)Enum.Parse( typeof( ConfigPluginStatus ), r.GetAttribute( "Status" ) );
                newContent[guid] = new PluginStatus( this, guid, status );
                r.Skip();
            }
            _pluginStatusDic.Clear();
            _pluginStatusDic.AddRange( newContent );

            //may eventually be replaced by some code in SolvedPluginConfiguration
            //Without that, SolvedPluginConfiguration's ResolveConfiguration method is not called
            Change(ChangeStatus.ContainerUpdate, Guid.Empty, 0);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Deletes the PluginStatus set as parameter.
        /// Sends StatusChanging & StatusChanged
        /// </summary>
        /// <param name="status">The <see cref="PluginStatus"/> to remove</param>
        /// <returns>True if deletion has been completed, false otherwise</returns>
        internal bool OnDestroy( PluginStatus status )
        {
            if( CanChange( ChangeStatus.Delete, status.PluginId, status.Status ) )
            {
                if( _pluginStatusDic.ContainsValue( status ) )
                {
                    _pluginStatusDic.Remove( status.PluginId );

                    Change( ChangeStatus.Delete, status.PluginId, status.Status );
                    return true;
                }
            }
            return false;
        }