Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
 private Role Convert(Documents.RoleDocument doc)
 {
     return(new Role
     {
         id = doc.Id,
         name = doc.Name,
         actorId = doc.ActorId,
     });
 }