Added FxCop and get Organization Unit selection running
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace UserService.DatabaseLayer.DataModels
|
||||
@ -7,6 +8,7 @@ namespace UserService.DatabaseLayer.DataModels
|
||||
{
|
||||
public static void Seed(this ModelBuilder modelBuilder)
|
||||
{
|
||||
if (modelBuilder == null) throw new ArgumentNullException(nameof(modelBuilder));
|
||||
var groups = new OrganizationUnit { CommonName = "Groups", Id = -1 };
|
||||
var users = new OrganizationUnit { CommonName = "Users", Id = -2 };
|
||||
var germany = new OrganizationUnit{CommonName = "Germany", Id = -6, ParentId = -2};
|
||||
@ -25,6 +27,7 @@ namespace UserService.DatabaseLayer.DataModels
|
||||
|
||||
public static void CreateRelations(this ModelBuilder modelBuilder)
|
||||
{
|
||||
if (modelBuilder == null) throw new ArgumentNullException(nameof(modelBuilder));
|
||||
modelBuilder.Entity<UserMember>()
|
||||
.HasKey(bc => new { bc.MemberId, bc.UserId });
|
||||
modelBuilder.Entity<UserMember>()
|
||||
@ -47,6 +50,7 @@ namespace UserService.DatabaseLayer.DataModels
|
||||
{
|
||||
public static IEnumerable<SecurityGroup> GetSecurityGroups(this User user)
|
||||
{
|
||||
if (user == null) throw new ArgumentNullException(nameof(user));
|
||||
foreach (var userMember in user.MemberOf)
|
||||
{
|
||||
if (userMember.Member is SecurityGroup securityGroup)
|
||||
@ -62,6 +66,7 @@ namespace UserService.DatabaseLayer.DataModels
|
||||
{
|
||||
public static IEnumerable<User> GetUsers(this SecurityGroup securityGroup)
|
||||
{
|
||||
if (securityGroup == null) throw new ArgumentNullException(nameof(securityGroup));
|
||||
foreach (var userMember in securityGroup.Members)
|
||||
{
|
||||
if (userMember.User is null) continue;
|
||||
|
@ -1,7 +1,7 @@
|
||||
using System;
|
||||
#nullable enable
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Text;
|
||||
|
||||
namespace UserService.DatabaseLayer.DataModels
|
||||
{
|
||||
|
@ -12,7 +12,7 @@ namespace UserService.DatabaseLayer.Repository
|
||||
{
|
||||
public class BaseRepository<T> where T : Node
|
||||
{
|
||||
protected readonly Func<UserServiceDbContext, DbSet<T>> Context;
|
||||
protected Func<UserServiceDbContext, DbSet<T>> Context { get; }
|
||||
|
||||
protected BaseRepository(Func<UserServiceDbContext, DbSet<T>> context)
|
||||
{
|
||||
@ -22,27 +22,27 @@ namespace UserService.DatabaseLayer.Repository
|
||||
public virtual async Task<IReadOnlyList<T>> GetAllAsync(Expression<Func<T, bool>>? predicate = null, CancellationToken token = default)
|
||||
{
|
||||
await using var db = new UserServiceDbContext();
|
||||
return await Context(db).Include(x => x.Parent).WhereOrDefault(predicate).ToListAsync(token);
|
||||
return await Context(db).Include(x => x.Parent).WhereOrDefault(predicate).ToListAsync(token).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public async Task<T?> GetAsync(Expression<Func<T, bool>> predicate, CancellationToken token = default)
|
||||
{
|
||||
await using var db = new UserServiceDbContext();
|
||||
return await Context(db).FirstOrDefaultAsync(predicate, token);
|
||||
return await Context(db).FirstOrDefaultAsync(predicate, token).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public async Task AddAsync(T entity, CancellationToken token = default)
|
||||
{
|
||||
await using var db = new UserServiceDbContext();
|
||||
await Context(db).AddAsync(@entity, token);
|
||||
await db.SaveChangesAsync(token);
|
||||
await Context(db).AddAsync(@entity, token).ConfigureAwait(false);
|
||||
await db.SaveChangesAsync(token).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
public async Task<bool> UpdateAsync(T entity, CancellationToken token = default)
|
||||
{
|
||||
await using var db = new UserServiceDbContext();
|
||||
Context(db).Update(entity);
|
||||
var items= await db.SaveChangesAsync(token);
|
||||
var items= await db.SaveChangesAsync(token).ConfigureAwait(false);
|
||||
return items > 0;
|
||||
}
|
||||
|
||||
@ -50,7 +50,7 @@ namespace UserService.DatabaseLayer.Repository
|
||||
{
|
||||
await using var db = new UserServiceDbContext();
|
||||
Context(db).Remove(entity);
|
||||
await db.SaveChangesAsync(token);
|
||||
await db.SaveChangesAsync(token).ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
}
|
@ -24,7 +24,7 @@ namespace UserService.DatabaseLayer.Repository
|
||||
var rootOus = await Context(db)
|
||||
.Include(x => x.Parent)
|
||||
.WhereOrDefault(predicate)
|
||||
.ToListAsync(cancellationToken: token);
|
||||
.ToListAsync(cancellationToken: token).ConfigureAwait(false);
|
||||
|
||||
IEnumerable<OrganizationUnit> Rec(Node node)
|
||||
{
|
||||
|
@ -7,11 +7,15 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.6">
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.3.0">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.6" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.7">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="3.1.7" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
Reference in New Issue
Block a user