private async Task <CreateResult> CheckPermission(GeoTask task,
                                                          Actor actor, Project project)
        {
            ActorRole currentActorProjectRole = null;

            if (project != null && actor != null)
            {
                project.ProjectActorRoles?
                .TryGetValue(actor.Id, out currentActorProjectRole);
            }
            var checkModel = new CheckCreatePermissionModel <GeoTask>
            {
                Entity           = task,
                Actor            = actor,
                ProjectActorRole = currentActorProjectRole
            };
            var validator       = new GeoTaskCreatePermissionValidator();
            var validatorResult = await validator
                                  .ValidateAsync(checkModel)
                                  .ConfigureAwait(false);

            if (!validatorResult.IsValid)
            {
                return(ErrorResult(validatorResult.Errors
                                   .Select(x => x.ErrorMessage)));
            }
            return(new CreateResult {
                Success = true, Id = task.Id
            });
        }
        private async Task <CreateResult> CheckPermission(Actor actor,
                                                          Actor currentActor)
        {
            var checkModel = new CheckCreatePermissionModel <Actor>
            {
                Entity = actor,
                Actor  = currentActor
            };
            var validator       = new ActorCreatePermissionValidator();
            var validatorResult = await validator.ValidateAsync(checkModel)
                                  .ConfigureAwait(false);

            if (!validatorResult.IsValid)
            {
                return(ErrorResult(validatorResult.Errors
                                   .Select(x => x.ErrorMessage)));
            }
            return(new CreateResult {
                Success = true, Id = actor.Id
            });
        }
Example #3
0
        private async Task <CreateResult> CheckPermission
            (_TEntity entity, Actor currentActor, ActorRole currentProjectRole)
        {
            var checkModel = new CheckCreatePermissionModel <_TEntity>
            {
                Entity           = entity,
                Actor            = currentActor,
                ProjectActorRole = currentProjectRole
            };
            var validator       = new CreatePermissionValidator <_TEntity>();
            var validatorResult = await validator.ValidateAsync(checkModel)
                                  .ConfigureAwait(false);

            if (!validatorResult.IsValid)
            {
                return(ErrorResult(validatorResult.Errors
                                   .Select(x => x.ErrorMessage)));
            }
            return(new CreateResult {
                Success = true
            });
        }