removed devexpress and refactoring

This commit is contained in:
2020-07-27 21:23:28 +02:00
parent 31a39de724
commit acbc1a7d8f
16 changed files with 265 additions and 222 deletions

View File

@ -1,4 +1,4 @@
#nullable enable
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
@ -11,7 +11,6 @@ namespace UserService.DatabaseLayer.DataModels
public class SecurityGroup : Member
{
}
public class User : Member
@ -23,8 +22,6 @@ namespace UserService.DatabaseLayer.DataModels
public string FullName => $"{FirstName} {LastName}";
public IEnumerable<UserMember> MemberOf { get; set; } = new List<UserMember>();
public User Clone() => (User)MemberwiseClone();
}
public class UserMember
@ -45,7 +42,7 @@ namespace UserService.DatabaseLayer.DataModels
public ICollection<UserMember> Members { get; set; } = new List<UserMember>();
}
public abstract class Node
public abstract class Node : ICloneable
{
public int Id { get; set; }
[Required] public string CommonName { get; set; } = null!;
@ -58,5 +55,8 @@ namespace UserService.DatabaseLayer.DataModels
{
return $"[{GetType().Name}] {Id:D5} {CommonName}";
}
/// <inheritdoc />
public virtual object Clone() => MemberwiseClone();
}
}

View File

@ -1,6 +1,8 @@
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using System.Runtime.CompilerServices;
using System.Security.Cryptography.X509Certificates;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
@ -8,7 +10,7 @@ using UserService.DatabaseLayer.DataModels;
namespace UserService.DatabaseLayer.Repository
{
public class BaseRepository<T> where T : class
public class BaseRepository<T> where T : Node
{
private readonly Func<UserServiceDbContext, DbSet<T>> _context;
@ -20,7 +22,7 @@ namespace UserService.DatabaseLayer.Repository
public async Task<IReadOnlyList<T>> GetAllAsync(CancellationToken token = default)
{
await using var db = new UserServiceDbContext();
return await _context(db).ToListAsync(token);
return await _context(db).Include(x => x.Parent).ToListAsync(token);
}
public async Task<T?> GetAsync(Expression<Func<T, bool>> predicate, CancellationToken token = default)