Exemple #1
0
        public Entity New()
        {
            // Try to reuse a previously used entity ID.
            if (!_unusedEntityIDs.TryDequeue(out var entityID))
            {
                // If none are available, get the next fresh entity ID.
                // And resize the entities array if necessary.
                if (_nextUnusedID >= Capacity)
                {
                    Resize(Capacity << 1);
                }
                entityID = _nextUnusedID++;
            }

            ref var entry = ref _entities[entityID];

            entry.Occupied = true;
            entry.Generation++;
            Count++;

            var entity = new Entity(entityID, entry.Generation);

            OnEntityCreated?.Invoke(entity);
            return(entity);
        }
Exemple #2
0
        /// Creates a new entity or gets a reusable entity from the
        /// internal ObjectPool for entities.
        public TEntity CreateEntity()
        {
            TEntity entity;

            if (_reusableEntities.Count > 0)
            {
                entity = _reusableEntities.Pop();
                entity.Reactivate(_creationIndex++);
            }
            else
            {
                entity = _entityFactory();
                entity.Initialize(_creationIndex++, totalComponents, componentPools, contextInfo, _aercFactory(entity));
            }

            _entities.Add(entity);
            entity.Retain(this);
            _entitiesCache = null;

            entity.OnComponentAdded    += _cachedEntityChanged;
            entity.OnComponentRemoved  += _cachedEntityChanged;
            entity.OnComponentReplaced += _cachedComponentReplaced;
            entity.OnEntityReleased    += _cachedEntityReleased;
            entity.OnDestroyEntity     += _cachedDestroyEntity;

            OnEntityCreated?.Invoke(this, entity);

            return(entity);
        }
Exemple #3
0
    public static void Subscribe(bool isSubscribing)
    {
        OnEntityCreated.Subscribe(typeof(IdComponent), ReplaceId, isSubscribing);
#if (!ENTITAS_DISABLE_VISUAL_DEBUGGING && UNITY_EDITOR)
        OnEntityCreated.Subscribe(typeof(AuditComponent), AuditOnRetained, isSubscribing);
#endif
    }
Exemple #4
0
        /// <summary>
        /// Adds the specified entity
        /// </summary>
        /// <param name="entity">Entity</param>
        private void AddEntity(IEntity entity)
        {
            string key = entity.GUID.ToString();

            if (!entities.ContainsKey(key))
            {
                entities.Add(key, entity);
                OnEntityCreated?.Invoke(entity);
            }
        }
Exemple #5
0
        public int CreateEntity()
        {
            int ent;

            if (gaps.First != null)
            {
                ent = gaps.First.Value;
                gaps.RemoveFirst();
            }
            else
            {
                ent = EntityCount;
            }

            entities.AddValue(ent);
            OnEntityCreated?.Invoke(ent);
            return(ent);
        }
Exemple #6
0
        /// Creates a new entity or gets a reusable entity from the internal ObjectPool for entities.
        public virtual Entity <T> CreateEntity()
        {
            var entity = _reusableEntities.Count > 0 ? _reusableEntities.Pop() : new Entity <T>(_componentPools, _metaData);

            entity._isEnabled     = true;
            entity._creationIndex = _creationIndex++;
            entity.Retain(this);
            _entities.Add(entity);
            _entitiesCache = null;

            entity.OnComponentAdded    += _cachedUpdateGroupsComponentAddedOrRemoved;
            entity.OnComponentRemoved  += _cachedUpdateGroupsComponentAddedOrRemoved;
            entity.OnComponentReplaced += _cachedUpdateGroupsComponentReplaced;
            entity.OnEntityReleased    += _cachedOnEntityReleased;

            OnEntityCreated?.Invoke(this, entity);

            return(entity);
        }
            public virtual void RegisterEntity(Entity ent)
            {
                SubscribeToEntityEvents(ent);

                switch (ent.Team)
                {
                case EntityTeam.Players:
                    players.Add(ent);
                    OnPlayerCreated.Invoke(ent);
                    break;

                case EntityTeam.Allies:
                    allies.Add(ent);
                    break;

                case EntityTeam.Enemies:
                    enemies.Add(ent);
                    OnEnemyCreated.Invoke(ent);
                    break;
                }
                OnEntityCreated.Invoke(ent);
            }
Exemple #8
0
        public int CreateEntity(float x, float y, float rotation = 0f, int parentEntity = ROOT_ENTITY)
        {
            if (!IsAtEntityCapacity)
            {
                int entity = entities[EntityCount++];

                // All entities should have a transform by default. Anything that doesn't need a transform is better suited to being a separate process or system.
                AddComponent(entity, new Transform(x, y, rotation));

                Parent(entity, parentEntity);

                Console.WriteLine("Created " + entity);

                OnEntityCreated?.Invoke(entity);

                return(entity);
            }
            else
            {
                Console.WriteLine("The number of entities is already at capacity " + EntityCount + " / " + EntityCapacity);
                return(NO_ENTITY);
            }
        }
Exemple #9
0
        // TODO: Locks?
        public int Create()
        {
            if (EntityCountLong >= long.MaxValue)
            {
                throw new ArgumentOutOfRangeException("Entity limit reached");
            }

            var createdEntityId = _lastEntityId + 1;

            while (Exists(createdEntityId) || createdEntityId == NonExistingEntityId)
            {
                unchecked
                {
                    createdEntityId++;
                }
            }

            _lastEntityId = createdEntityId;
            _existingEntityIds.Add(createdEntityId);
            Interlocked.Increment(ref _entityCount);
            OnEntityCreated?.Invoke(this, new EntityIdEventArgs(createdEntityId));
            return(createdEntityId);
        }
Exemple #10
0
 internal void EntityCreated(IEntity entity)
 {
     OnEntityCreated?.Invoke(this, entity);
 }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="peer">Peer</param>
 /// <param name="token">Token</param>
 public ClientSynchronizer(IPeer peer, string token) : base()
 {
     Peer = peer ?? throw new ArgumentNullException(nameof(peer));
     AddAutomaticMessageParserWithFatality <AuthentificationAcknowledgedMessageData>
     (
         (_, message, __) =>
     {
         if (IsAuthentificated)
         {
             SendErrorMessageToPeer <AuthentificationAcknowledgedMessageData>(peer, EErrorType.InvalidMessageContext, "Authentification has been already acknowledged.", true);
         }
         else
         {
             Token = message.Token;
             user  = new ClientUser(message.GUID);
             RegisterUserEvents(user);
             OnAuthentificationAcknowledged?.Invoke(User);
         }
     }
     );
     AddAutomaticMessageParser <AuthentificationFailedMessageData>((currentPeer, message, _) => OnAuthentificationFailed?.Invoke(currentPeer, message.Message, message.Reason));
     AddAutomaticMessageParser <ListLobbyResultsMessageData>
     (
         (_, message, __) =>
     {
         ILobbyView[] lobbies = new ILobbyView[message.Lobbies.Count];
         Parallel.For(0, lobbies.Length, (index) => lobbies[index] = (LobbyView)message.Lobbies[index]);
         OnLobbiesListed?.Invoke(lobbies);
     }
     );
     AddAutomaticMessageParser <ListLobbiesFailedMessageData>((currentPeer, message, _) => OnListLobbiesFailed?.Invoke(currentPeer, message.Message, message.Reason));
     AddAutomaticMessageParser <ListAvailableGameModeResultsMessageData>((_, message, __) => OnAvailableGameModesListed?.Invoke(message.GameModes));
     AddAutomaticMessageParser <ListAvailableGameModesFailedMessageData>((currentPeer, message, _) => OnListAvailableGameModesFailed?.Invoke(currentPeer, message.Message, message.Reason));
     AddAutomaticMessageParser <JoinLobbyAcknowledgedMessageData>
     (
         (_, message, __) => AssertIsUserAuthentificated <JoinLobbyAcknowledgedMessageData>
         (
             (clientUser) =>
     {
         if (clientUser.Lobby == null)
         {
             Dictionary <string, IUser> users     = new Dictionary <string, IUser>();
             List <IInternalClientUser> user_list = new List <IInternalClientUser>();
             foreach (UserData user in message.Users)
             {
                 IInternalClientUser client_user;
                 if (user.GUID == clientUser.GUID)
                 {
                     client_user = clientUser;
                     this.user.SetNameInternally(user.Name, false);
                     this.user.SetLobbyColorInternally(user.LobbyColor, false);
                 }
                 else
                 {
                     client_user = new ClientUser(user.GUID, user.GameColor, user.Name, user.LobbyColor);
                     RegisterUserEvents(client_user);
                 }
                 users.Add(user.GUID.ToString(), client_user);
                 user_list.Add(client_user);
             }
             IInternalClientLobby client_lobby     = new ClientLobby(this, message.Rules.LobbyCode, message.Rules.Name, message.Rules.GameMode, message.Rules.IsPrivate, message.Rules.MinimalUserCount, message.Rules.MaximalUserCount, message.Rules.IsStartingGameAutomatically, message.Rules.GameModeRules, users[message.OwnerGUID.ToString()], users);
             client_lobby.OnUserJoined            += (user) => OnUserJoined?.Invoke(client_lobby, user);
             client_lobby.OnUserLeft              += (user, reason, leaveMessage) => OnUserLeft?.Invoke(client_lobby, user, reason, leaveMessage);
             client_lobby.OnLobbyOwnershipChanged += () => OnLobbyOwnershipChanged?.Invoke(client_lobby);
             client_lobby.OnLobbyRulesChanged     += () => OnLobbyRulesChanged?.Invoke(client_lobby);
             client_lobby.OnGameStarted           += () => OnGameStarted?.Invoke(client_lobby);
             client_lobby.OnGameStartRequested    += (time) => OnGameStartRequested?.Invoke(client_lobby, time);
             client_lobby.OnGameRestarted         += () => OnGameRestarted?.Invoke(client_lobby);
             client_lobby.OnGameRestartRequested  += (time) => OnGameRestartRequested?.Invoke(client_lobby, time);
             client_lobby.OnGameStopped           += (gameStopUsers, results) => OnGameStopped?.Invoke(client_lobby, gameStopUsers, results);
             client_lobby.OnGameStopRequested     += (time) => OnGameStopRequested?.Invoke(client_lobby, time);
             client_lobby.OnStartGameCancelled    += () => OnStartGameCancelled?.Invoke(client_lobby);
             client_lobby.OnRestartGameCancelled  += () => OnRestartGameCancelled?.Invoke(client_lobby);
             client_lobby.OnStopGameCancelled     += () => OnStopGameCancelled?.Invoke(client_lobby);
             client_lobby.OnUserEntityCreated     += (user) => OnUserEntityCreated?.Invoke(client_lobby, user);
             client_lobby.OnUserEntityUpdated     += (user) => OnUserEntityUpdated?.Invoke(client_lobby, user);
             client_lobby.OnUserEntityDestroyed   += (user) => OnUserEntityDestroyed?.Invoke(client_lobby, user);
             client_lobby.OnEntityCreated         += (entity) => OnEntityCreated?.Invoke(client_lobby, entity);
             client_lobby.OnEntityUpdated         += (entity) => OnEntityUpdated?.Invoke(client_lobby, entity);
             client_lobby.OnEntityDestroyed       += (entity) => OnEntityDestroyed?.Invoke(client_lobby, entity);
             user.ClientLobby = client_lobby;
             foreach (IInternalClientUser client_user in user_list)
             {
                 client_user.ClientLobby = client_lobby;
             }
             user_list.Clear();
             OnLobbyJoinAcknowledged?.Invoke(client_lobby);
             user.InvokeUsernameUpdatedEvent();
             user.InvokeUserLobbyColorUpdatedEvent();
         }
         else
         {
             SendInvalidMessageContextErrorMessageToPeer <JoinLobbyAcknowledgedMessageData>(peer, $"User is already in lobby \"{ clientUser.Lobby.Name }\" with lobby code \"{ clientUser.Lobby.LobbyCode }\".");
         }
     }
         )
     );
     AddAutomaticMessageParser <JoinLobbyFailedMessageData>((currentPeer, message, _) => OnJoinLobbyFailed?.Invoke(currentPeer, message.Message, message.Reason));
     AddAutomaticMessageParser <CreateLobbyFailedMessageData>((currentPeer, message, _) => OnCreateLobbyFailed?.Invoke(currentPeer, message.Message, message.Reason));
     AddAutomaticMessageParser <LobbyRulesChangedMessageData>
     (
         (_, message, __) => AssertIsUserInLobby <LobbyRulesChangedMessageData>
         (
             (clientUser, clientLobby) =>
     {
         LobbyRulesData rules = message.Rules;
         clientLobby.ChangeLobbyRulesInternally
         (
             rules.LobbyCode,
             rules.Name,
             rules.GameMode,
             rules.IsPrivate,
             rules.MinimalUserCount,
             rules.MaximalUserCount,
             rules.IsStartingGameAutomatically,
             rules.GameModeRules
         );
     }
         )
     );
     AddAutomaticMessageParser <UserJoinedMessageData>
     (
         (_, message, __) => AssertIsUserInLobby <UserJoinedMessageData>
         (
             (clientUser, clientLobby) =>
     {
         IUser user = new ClientUser(message.GUID, message.GameColor, message.Name, message.LobbyColor);
         RegisterUserEvents(user);
         if (!clientLobby.AddUserInternally(user))
         {
             SendInvalidMessageContextErrorMessageToPeer <UserJoinedMessageData>(peer, $"Failed to add user \"{ user.Name }\" with GUID \"{ user.GUID }\" to lobby \"{ clientLobby.Name }\" with lobby code \"{ clientLobby.LobbyCode }\".");
         }
     }
         )
     );
     AddAutomaticMessageParser <UserLeftMessageData>
     (
         (_, message, __) => AssertTargetLobbyUser <UserLeftMessageData>
         (
             message.GUID,
             (clientUser, clientLobby, targetUser) =>
     {
         if (!clientLobby.RemoveUserInternally(targetUser, message.Reason, message.Message))
         {
             SendInvalidMessageContextErrorMessageToPeer <UserLeftMessageData>(peer, $"Failed to remove user \"{ targetUser.Name }\" with GUID \"{ targetUser.GUID }\" from lobby \"{ clientLobby.Name }\" with lobby code \"{ clientLobby.LobbyCode }\".");
         }
         targetUser.ClientLobby = null;
     }
         )
     );
     AddAutomaticMessageParser <LobbyOwnershipChangedMessageData>((_, message, __) => AssertTargetLobbyUser <LobbyOwnershipChangedMessageData>(message.NewOwnerGUID, (clientUser, clientLobby, targetUser) => clientLobby.ChangeLobbyOwnershipInternally(targetUser)));
     AddAutomaticMessageParser <UsernameChangedMessageData>((_, message, __) => AssertTargetLobbyUser <UsernameChangedMessageData>(message.GUID, (clientUser, clientLobby, targetUser) => targetUser.SetNameInternally(message.NewUsername)));
     AddAutomaticMessageParser <ChangeUsernameFailedMessageData>((currentPeer, message, _) => OnChangeUsernameFailed?.Invoke(currentPeer, message.Message, message.Reason));
     AddAutomaticMessageParser <UserLobbyColorChangedMessageData>((_, message, __) => AssertTargetLobbyUser <UserLobbyColorChangedMessageData>(message.GUID, (clientUser, clientLobby, targetUser) => targetUser.SetLobbyColorInternally(message.NewLobbyColor)));
     AddAutomaticMessageParser <ChangeUserLobbyColorFailedMessageData>((currentPeer, message, _) => OnChangeUserLobbyColorFailed?.Invoke(currentPeer, message.Message, message.Reason));
     AddAutomaticMessageParser <ChangeLobbyRulesFailedMessageData>((currentPeer, message, _) => OnChangeLobbyRulesFailed?.Invoke(currentPeer, message.Message, message.Reason));
     AddAutomaticMessageParser <KickUserFailedMessageData>((currentPeer, message, _) => OnKickUserFailed?.Invoke(currentPeer, message.Message, message.Reason));
     AddAutomaticMessageParser <GameStartRequestedMessageData>((_, message, __) => AssertIsUserInLobby <GameStartRequestedMessageData>((clientUser, clientLobby) => clientLobby.InvokeGameStartRequestedEventInternally(message.Time)));
     AddAutomaticMessageParser <GameStartedMessageData>((_, message, __) => AssertIsUserInLobby <GameStartedMessageData>((clientUser, clientLobby) => clientLobby.InvokeGameStartedEventInternally()));
     AddAutomaticMessageParser <StartGameFailedMessageData>((currentPeer, message, _) => OnStartGameFailed?.Invoke(currentPeer, message.Message, message.Reason));
     AddAutomaticMessageParser <GameRestartRequestedMessageData>((_, message, __) => AssertIsUserInLobby <GameRestartRequestedMessageData>((clientUser, clientLobby) => clientLobby.InvokeGameRestartRequestedEventInternally(message.Time)));
     AddAutomaticMessageParser <GameRestartedMessageData>((_, message, js__on) => AssertIsUserInLobby <GameRestartedMessageData>((clientUser, clientLobby) => clientLobby.InvokeGameRestartedEventInternally()));
     AddAutomaticMessageParser <RestartGameFailedMessageData>((currentPeer, message, _) => OnRestartGameFailed?.Invoke(currentPeer, message.Message, message.Reason));
     AddAutomaticMessageParser <GameStopRequestedMessageData>((_, message, __) => AssertIsUserInLobby <GameStopRequestedMessageData>((clientUser, clientLobby) => clientLobby.InvokeGameStopRequestedEventInternally(message.Time)));
     AddAutomaticMessageParser <GameStoppedMessageData>
     (
         (_, message, __) => AssertIsUserInLobby <GameStoppedMessageData>
         (
             (clientUser, clientLobby) =>
     {
         Dictionary <string, UserWithResults> users = new Dictionary <string, UserWithResults>();
         foreach (GameEndUserData user in message.Users)
         {
             string key = user.GUID.ToString();
             if (clientLobby.Users.ContainsKey(key))
             {
                 users.Add(key, new UserWithResults(clientLobby.Users[key], user.Results));
             }
             else
             {
                 SendErrorMessage <GameStoppedMessageData>(EErrorType.InvalidMessageContext, $"User with GUID \"{ key }\" is not in lobby \"{ clientLobby.Name }\" with lobby code \"{ clientLobby.LobbyCode }\".");
             }
         }
         clientLobby.InvokeGameStoppedEventInternally(users, message.Results);
     }
         )
     );
     AddAutomaticMessageParser <StopGameFailedMessageData>((currentPeer, message, _) => OnStopGameFailed?.Invoke(currentPeer, message.Message, message.Reason));
     AddAutomaticMessageParser <StartGameCancelledMessageData>((currentPeer, message, _) => AssertIsUserInLobby <GameStoppedMessageData>((__, clientLobby) => clientLobby.InvokeStartGameCancelledEventInternally()));
     AddAutomaticMessageParser <RestartGameCancelledMessageData>((currentPeer, message, _) => AssertIsUserInLobby <GameStoppedMessageData>((__, clientLobby) => clientLobby.InvokeRestartGameCancelledEventInternally()));
     AddAutomaticMessageParser <StopGameCancelledMessageData>((currentPeer, message, _) => AssertIsUserInLobby <GameStoppedMessageData>((__, clientLobby) => clientLobby.InvokeStopGameCancelledEventInternally()));
     AddAutomaticMessageParser <CancelStartRestartStopGameTimerFailedMessageData>((currentPeer, message, _) => OnCancelStartRestartStopGameTimerFailed?.Invoke(currentPeer, message.Message, message.Reason));
     AddAutomaticMessageParser <ServerGameLoadingProcessFinishedMessageData>((currentPeer, message, _) => AssertTargetLobbyUser <ServerGameLoadingProcessFinishedMessageData>(message.UserGUID, (__, ___, targetUser) => targetUser.InvokeServerGameLoadingProcessFinishedEvent()));
     AddMessageParser <ServerTickMessageData>
     (
         (_, message, __) => AssertIsUserInLobby <ServerTickMessageData>((clientUser, clientLobby) => clientLobby.ProcessServerTickInternally(message.Time, message.Entities, message.Hits)),
         (_, message, __) => SendServerTickFailedMessage(message, EServerTickFailedReason.Unknown),
         MessageParseFailedEvent <ServerTickMessageData>
     );
     AddAutomaticMessageParser <ClientTickFailedMessageData>((currentPeer, message, _) => OnClientTickFailed?.Invoke(currentPeer, message.Message, message.Reason));
     OnPeerConnected += (_) => SendAuthenticateMessage(token);
 }
Exemple #12
0
 public Task Handle(OnEntityCreated <GarmentAvalProductItem> notification, CancellationToken cancellationToken)
 {
     return(Task.CompletedTask);
 }
 public Task Handle(OnEntityCreated <ManufactureOrder> notification, CancellationToken cancellationToken)
 {
     return(Task.CompletedTask);
 }
Exemple #14
0
        public override Tuple <Option <IEntityWrapper>, IEnumerable <ValidationRule> > Bootstrap(IReadableAtom <EA.Repository> eaRepository)
        {
            var entityWrapper    = new AdEntityWrapper();
            var entityRepository = new AdRepository(eaRepository, entityWrapper);
            var migrator         = new Migrator(technology);

            var tvClipboard = new Atom <TaggedValuesClipboard>(new TaggedValuesClipboard());

            var updateMetadataCommand            = new UpdateMetadataOfNewElementsCommand(entityRepository);
            var updateStateOnAlternativesChanged = new UpdateProblemOccurrenceStateOnAlternativesChanged(entityRepository);
            var updateStateOnAlternativesAdded   = new UpdateProblemOccurrenceStateOnAlternativesAdded(entityRepository);
            var updateStateOnRemoveAlternative   = new UpdateProblemOccurrenceStateOnAlternativeRemoved(entityRepository);
            var populateDependenciesCommand      = new PopulateDependenciesCommand(
                entityRepository, new DependencySelectorForm(entityRepository));
            var instantiateProblemSpace = new InstantiateProblemSpaceCommand(entityRepository, new InstantiateSolutionForm());
            var exportProblemSpace      = new ExportProblemSpaceCommand(
                entityRepository, new TailorPackageExportForm(), new XmlExporter.Factory(entityRepository, eaRepository), new SelectExportPathDialog());

            Register(new Menu(AddInName,
                              new MenuItem("Copy Tagged Values",
                                           new CopyTaggedValuesCommand(tvClipboard).ToMenuHandler()),
                              new MenuItem("Paste Tagged Values",
                                           new PasteTaggedValuesCommand(tvClipboard, entityRepository).ToMenuHandler()),
                              new MenuItem("Paste Tagged Values into Descendant Elements",
                                           new PasteTaggedValuesIntoChildrenCommand(tvClipboard, entityRepository).ToMenuHandler()),
                              new Separator(),
                              new MenuItem("Choose Selected and Neglect not chosen Alternatives",
                                           new ChooseOptionOccurrenceCommand <Unit>(entityRepository, updateStateOnAlternativesChanged).ToMenuHandler()),
                              new MenuItem("Neglect all Alternatives",
                                           new NeglectAllOptionsCommand(entityRepository).ToMenuHandler()),
                              new Separator(),
                              new MenuItem("Tailor Problem Space",
                                           exportProblemSpace.ToMenuHandler()),
                              new MenuItem("Create Solution Space from Problem Space",
                                           instantiateProblemSpace.ToMenuHandler()),
                              new MenuItem("Locate Option/Problem",
                                           new GoToClassifierCommand(entityRepository).ToMenuHandler()),
                              new MenuItem("Establish Dependencies from Problem Space",
                                           populateDependenciesCommand.ToMenuHandler()),
                              new MenuItem("Migrate Element(s) to Current Model Version",
                                           new MigrateModelEntitiesCommand(migrator).ToMenuHandler()),
                              new Separator(),
                              new MenuItem("Package Metrics",
                                           new AnalysePackageCommand(entityRepository, new DisplayMetricsForm()).ToMenuHandler())));

            OnEntityCreated.Add(updateMetadataCommand.ToEntityCreatedHandler());
            OnEntityCreated.Add(updateStateOnAlternativesAdded.ToEntityCreatedHandler());

            OnEntityModified.Add(updateStateOnAlternativesChanged.ToEntityModifiedHandler());

            OnDeleteEntity.Add(updateStateOnRemoveAlternative.AsOnDeleteEntityHandler());

            var rules = new[] {
                ValidationRule.FromCommand(AddInName, new ValidateProblemOptionCompositionCommand(entityRepository)),
                ValidationRule.FromCommand(AddInName, new ValidateProblemOccurrenceStateCommand(entityRepository)),
                ValidationRule.FromCommand(AddInName, new ValidateConflictingOptionsCommand(entityRepository)),
                ValidationRule.FromCommand(AddInName, new MultipleProblemsAddressedByAnOptionCommand(entityRepository)),
                ValidationRule.FromCommand(AddInName, migrator.GetValidator()),
                new ElementNotUsedDiagramRule(AddInName, entityRepository)
            };

            return(Tuple.Create(
                       Options.Some(entityWrapper as IEntityWrapper),
                       rules.AsEnumerable()));
        }
 public Task Handle(OnEntityCreated <GarmentDeliveryReturn> notification, CancellationToken cancellationToken)
 {
     return(Task.CompletedTask);
 }
Exemple #16
0
 public Task Handle(OnEntityCreated <GarmentPreparing> notification, CancellationToken cancellationToken)
 {
     return(Task.CompletedTask);
 }
 internal static void RaiseEntityCreated(Entity entity)
 {
     OnEntityCreated?.Invoke(entity);
 }