public Track AddTrack(string trackName) { if (!Tracks.TryGetValue(trackName, out Track track)) { track = new Track(); TrackCreated?.Invoke(track); track.ResetVariables(); Tracks.Add(trackName, track); } return(track); }
public string AddTrack(TrackCreateCommand createTrack) { WithValidation(() => CommandValidator.Validate(createTrack)); var trackId = Guid.NewGuid().ToString(); var trackCreated = new TrackCreated { Binary = createTrack.Binary, OwnerId = createTrack.OwnerId, Timestamp = createTrack.Timestamp, TrackId = trackId, }; ActorModel.Tell(ActorModel.TrackPapaPath, trackCreated); return(trackId); }
private bool HandleTrackCreated(TrackCreated trackCreatedEvt) { if (trackCreatedEvt == null || trackCreatedEvt.Binary == null) { return(false); } PersistAsync(trackCreatedEvt, c => { var state = new TrackState(trackCreatedEvt.TrackId, trackCreatedEvt.Binary, trackCreatedEvt.OwnerId); _trackIds = _trackIds.Add(c.TrackId); Context.ActorOf(Props.Create(() => new TrackActor(state, _readStorageUpdateActor)), trackCreatedEvt.TrackId); TellTrackListUpdated(); }); return(true); }
/// <summary> /// Adds a track to a conference /// </summary> /// <param name="trackId">Unique identity of a track</param> /// <returns>An instance of <c>TrackId</c></returns> public Result <TrackId> AddTrack(TrackId trackId) { var addTrackResult = Track.Create(trackId); if (addTrackResult.IsFailure) { return(InvalidResult <TrackId> .Create(addTrackResult.Error.Value.Message)); } var addedTrack = addTrackResult.Data; var trackCreated = new TrackCreated(addedTrack.TrackId); AddEvent(trackCreated); _tracks.Add(addedTrack); var trackAddedToConference = new TrackAddedToConference(addedTrack.TrackId, ConferenceId); AddEvent(trackAddedToConference); return(SuccessResult <TrackId> .Create(addedTrack.TrackId)); }