public async Task <TResult> CreateAsync <TResult>( Guid id, Guid actorId, string name, Func <TResult> onSuccess, Func <TResult> onAlreadyExists, Func <TResult> onActorNotFound) { var rollback = new RollbackAsync <TResult>(); var document = new Documents.RoleDocument() { Name = name, ActorId = actorId, }; rollback.AddTaskCreate(id, document, onAlreadyExists, this.azureStorageRepository); rollback.AddTaskCreateOrUpdate(actorId, (Documents.ActorMappingsDocument actorDoc) => { actorDoc.AddRole(id); return(true); }, (actorDoc) => actorDoc.RemoveRole(id), onActorNotFound, this.azureStorageRepository); return(await rollback.ExecuteAsync(onSuccess)); }
private Role Convert(Documents.RoleDocument doc) { return(new Role { id = doc.Id, name = doc.Name, actorId = doc.ActorId, }); }