private bool RecoverOnReleaseCreated(ReleaseCreated releaseCreated) { if (!Context.Child(releaseCreated.ReleaseId).IsNobody()) { return(false); } var state = GenerateState(releaseCreated); PlaceChildActor(state); return(true); }
private ReleaseState GenerateState(ReleaseCreated evt) { return(new ReleaseState ( evt.ReleaseId, evt.Artist, evt.Title, evt.Genre, evt.OwnerId, evt.Cover )); }
private bool HandleCreateMessage(ReleaseCreated releaseCreatedEvent) { if (!IsMessageValid(releaseCreatedEvent)) { return(false); } PersistAsync(releaseCreatedEvent, (evt) => { var state = GenerateState(evt); var child = PlaceChildActor(state); }); return(true); }
public string CreateRelease(ReleaseCreateCommand createRelease) { WithValidation(() => CommandValidator.Validate(createRelease)); var releaseId = Guid.NewGuid().ToString(); var releaseCreated = new ReleaseCreated { ReleaseId = releaseId, Artist = createRelease.Artist, Cover = createRelease.Cover, Genre = createRelease.Genre, OwnerId = createRelease.OwnerId, Timestamp = createRelease.Timestamp, Title = createRelease.Title }; ActorModel.Tell(ActorModel.ReleasePapaPath, releaseCreated); return(releaseId); }
private bool IsMessageValid(ReleaseCreated cmd) { return(cmd != null && !string.IsNullOrEmpty(cmd.Artist) && !string.IsNullOrEmpty(cmd.Genre) && !string.IsNullOrEmpty(cmd.Title)); }