コード例 #1
0
        public static IList <EventType> UndeployTypes(ICollection <String> referencedTypes,
                                                      StatementEventTypeRef statementEventTypeRef,
                                                      EventAdapterService eventAdapterService,
                                                      FilterService filterService)
        {
            var undeployedTypes = new List <EventType>();

            foreach (String typeName in referencedTypes)
            {
                bool typeInUse = statementEventTypeRef.IsInUse(typeName);
                if (typeInUse)
                {
                    if (Log.IsDebugEnabled)
                    {
                        Log.Debug("Event type '" + typeName + "' is in use, not removing type");
                    }
                    continue;
                }

                if (Log.IsDebugEnabled)
                {
                    Log.Debug("Event type '" + typeName + "' is no longer in use, removing type");
                }
                var type = eventAdapterService.GetEventTypeByName(typeName);
                if (type != null)
                {
                    var spi = (EventTypeSPI)type;
                    if (!spi.Metadata.IsApplicationPreConfigured)
                    {
                        eventAdapterService.RemoveType(typeName);
                        undeployedTypes.Add(spi);
                        filterService.RemoveType(spi);
                    }
                }
            }
            return(undeployedTypes);
        }