Ejemplo n.º 1
0
 public async Task PatchTransportationStatus(Transportation transportation)
 {
     var query = new CypherFluentQuery(_graphClientFunc)
                 .MatchEntity(transportation, "transportation")
                 .Set("transportation.isActive = {isActive}")
                 .WithParam("isActive", transportation.IsActive);
     await query.ExecuteWithoutResultsAsync();
 }
 public async Task DeleteUser(Guid userId)
 {
     var query = new CypherFluentQuery(_graphClientFunc)
                 .Match("(user:User{azureId: {userId}})")
                 .WithParam("userId", userId)
                 .Remove("user:User")
                 .Set("user:User_Deleted");
     await _repositoryPolicy.ExecuteAsync(async() => await query.ExecuteWithoutResultsAsync());
 }
Ejemplo n.º 3
0
        public async Task UpdateAlertSeverityLevel(Guid alertId, SeverityLevel severityLevel)
        {
            var query = new CypherFluentQuery(_graphClientFunc)
                        .Match("(alert:Alert{alertId: {alertId}})")
                        .WithParam("alertId", alertId)
                        .Set("alert.severityLevel = {severityLevel}")
                        .WithParam("severityLevel", severityLevel);

            await _repositoryPolicy.ExecuteAsync(async() => await query.ExecuteWithoutResultsAsync());
        }
Ejemplo n.º 4
0
        public async Task SaveViolation(Guid userId, Violation violation)
        {
            var relationship = new UserViolationRelationship("user", "violation");
            var query        = new CypherFluentQuery(_graphClientFunc)
                               .Match("(user:User{azureId: {userId}})")
                               .WithParam("userId", userId)
                               .CreateEntity(violation, "violation")
                               .CreateRelationship(relationship);

            await _repositoryPolicy.ExecuteAsync(async() => await query.ExecuteWithoutResultsAsync());
        }
Ejemplo n.º 5
0
        public async Task SaveTransportation(Transportation transportation, Guid userId)
        {
            var relationship = new UserTransportationRelationship("user", "transportation");

            var query = new CypherFluentQuery(_graphClientFunc)
                        .CreateEntity(transportation, "transportation")
                        .With("transportation")
                        .Match("(user:User{azureId: {userId}})")
                        .WithParam("userId", userId)
                        .CreateRelationship(relationship);
            await query.ExecuteWithoutResultsAsync();
        }
Ejemplo n.º 6
0
        public async Task SaveAlert(Alert alert, Guid transportationId)
        {
            alert.CreatedAt = (float)DateTime.UtcNow.Subtract(DateTime.MinValue.AddYears(1969)).TotalSeconds;
            alert.AlertId   = Guid.NewGuid();
            var relationship = new TransportationAlertRelationship("transportation", "alert");
            var query        = new CypherFluentQuery(_graphClientFunc)
                               .Match("(transportation:Transportation{transportationId: {transportationId}})")
                               .WithParam("transportationId", transportationId)
                               .CreateEntity(alert, "alert")
                               .CreateRelationship(relationship);

            await _repositoryPolicy.ExecuteAsync(async() => await query.ExecuteWithoutResultsAsync());
        }
Ejemplo n.º 7
0
        public async Task DeleteUserRole(Guid userId, RoleType roleType)
        {
            var user = new User
            {
                AzureId = userId
            };

            var query = new CypherFluentQuery(_graphClientFunc)
                        .MatchEntity(user)
                        .Match("(user)-[relationship:HAS_ROLE]->(:Role{roleType: {roleType}})")
                        .WithParam("roleType", roleType)
                        .Delete("relationship");

            await _repositoryPolicy.ExecuteAsync(async() => await query.ExecuteWithoutResultsAsync());
        }
        public async Task UpdateAsync(TUser user)
        {
            Throw.ArgumentException.IfNull(user, "user");
            ThrowIfDisposed();

            var query = new CypherFluentQuery(_graphClient)
                        .Match("(u:User)")
                        .Where((TUser u) => u.Id == user.Id)
                        .Set("u = {userParam}")
                        .WithParam("userParam", user)
                        .With("u").OptionalMatch("(u)-[cr:HAS_CLAIM]->(c:Claim)").Delete("c,cr")
                        .With("u").OptionalMatch("(u)-[lr:HAS_LOGIN]->(l:Login)").Delete("l,lr")
                        .With("u").OptionalMatch("(u)-[rl:IN_ROLE]->(r:Role)").Delete("rl");

            query = AddClaims(query, user.Claims);
            query = AddLogins(query, user.Logins);

            await query.ExecuteWithoutResultsAsync();
        }
Ejemplo n.º 9
0
        public async Task<IdentityResult> CreateAsync(TUser user, CancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();
            ThrowIfDisposed();

            ArgumentNotNull(user, nameof(user));

            if (user.Id == default)
            {
                user.Id = Guid.NewGuid();
            }

            var query = new CypherFluentQuery(GraphClient)
                .Create($"(:{UserLabel} {{user}})")
                .WithParam("user", user);

            await query.ExecuteWithoutResultsAsync();

            return IdentityResult.Success;
        }
Ejemplo n.º 10
0
        public async Task AddUserRole(Guid userId, RoleType roleType)
        {
            var user = new User
            {
                AzureId = userId
            };

            var role = new Role
            {
                RoleType = roleType
            };

            var userRoleRelationship = new UserRoleRelationship("user", "role");
            var query = new CypherFluentQuery(_graphClientFunc)
                        .MatchEntity(user)
                        .MergeEntity(role)
                        .CreateRelationship(userRoleRelationship);

            await _repositoryPolicy.ExecuteAsync(async() => await query.ExecuteWithoutResultsAsync());
        }
 public async Task AddUser(User user)
 {
     var query = new CypherFluentQuery(_graphClientFunc)
                 .MergeEntity(user);
     await _repositoryPolicy.ExecuteAsync(async() => await query.ExecuteWithoutResultsAsync());
 }