Example #1
0
 private void ActivatedIdsEvnt(ActivatedIds evnt)
 {
     foreach (var id in evnt.Ids)
     {
         State.ActivateId(id);
     }
 }
Example #2
0
        private void DeleteByIdCmd(DeleteById cmd)
        {
            // verify id valid
            if (!State.IdNotDeleted(cmd.Id))
            {
                if (State.IdDeleted(cmd.Id))
                {
                    Sender.Tell(new DeleteById_IdAlreadyDeleted());
                }
                else
                {
                    Sender.Tell(new DeleteById_IdNotFound());
                }

                return;
            }

            IActorRef entityActor = ActorRefs.Nobody;

            if (State.IdsActive.Contains(cmd.Id))
            {
                entityActor = Context.Child(cmd.Id);
                if (entityActor == ActorRefs.Nobody)
                {
                    entityActor = CreateEntity(cmd.Id);
                }
            }

            // if inactive, activate
            if (entityActor == ActorRefs.Nobody && State.IdsInactive.Contains(cmd.Id))
            {
                entityActor = CreateEntity(cmd.Id);
                State.ActivateId(cmd.Id);
            }

            // delete record
            var deletedId = new DeletedId(cmd.Id);

            PersistAndTrack(deletedId, result =>
            {
                DeletedIdEvnt(result);
                entityActor.Forward(cmd);
            });
        }
Example #3
0
        private void UpdateCmd(Update cmd)
        {
            // verify id valid
            if (!State.IdNotDeleted(cmd.Id))
            {
                if (State.IdDeleted(cmd.Id))
                {
                    Sender.Tell(new Update_IdDeleted());
                }
                else
                {
                    Sender.Tell(new Update_IdNotFound());
                }

                return;
            }

            IActorRef entityActor = ActorRefs.Nobody;

            if (State.IdsActive.Contains(cmd.Id))
            {
                entityActor = Context.Child(cmd.Id);
                if (entityActor == ActorRefs.Nobody)
                {
                    entityActor = CreateEntity(cmd.Id);
                }
            }

            // if inactive, activate
            if (entityActor == ActorRefs.Nobody && State.IdsInactive.Contains(cmd.Id))
            {
                entityActor = CreateEntity(cmd.Id);
                State.ActivateId(cmd.Id);
            }

            // update data
            entityActor.Forward(cmd);

            // leave active
        }
Example #4
0
 private void ActivatedIdEvnt(ActivatedId evnt)
 {
     State.ActivateId(evnt.Id);
 }