Add IDbSets; refactoring, improvements, fixes, etc..
This commit is contained in:
parent
2ce0890f12
commit
c0327df85f
|
|
@ -1,11 +1,13 @@
|
|||
using AyCode.Database.Tests;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Database.DbContexts;
|
||||
using TIAM.Database.DbContexts.Transfers;
|
||||
using TIAM.Database.DbContexts.Users;
|
||||
|
||||
namespace TIAM.Database.Test
|
||||
{
|
||||
[TestClass]
|
||||
public class DatabaseTest //: DatabaseTestModelBase<TiamDbContextBase>
|
||||
public class DatabaseTest //: DatabaseTestModelBase<DbContextBase>
|
||||
{
|
||||
|
||||
[TestInitialize]
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ using System.Threading.Tasks;
|
|||
using AyCode.Database.DataLayers.Users;
|
||||
using TIAM.Database.DataLayers.ServiceProviders;
|
||||
using TIAM.Database.DataLayers.Users;
|
||||
using TIAM.Database.DbContexts;
|
||||
using TIAM.Database.DbContexts.ServiceProviders;
|
||||
|
||||
namespace TIAM.Database.Test
|
||||
{
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ using Microsoft.VisualStudio.TestPlatform.ObjectModel;
|
|||
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
||||
using Moq;
|
||||
using TIAM.Database.DataLayers.Users;
|
||||
using TIAM.Database.DbContexts;
|
||||
using TIAM.Database.DbContexts.Users;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.Test
|
||||
|
|
|
|||
|
|
@ -4,12 +4,12 @@ using System.Linq;
|
|||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Database.DbContexts;
|
||||
using TIAM.Database.DbContexts.Admins;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.DataLayers.Users
|
||||
{
|
||||
public class AdminDal : TiamDalBase<AdminDbContext>
|
||||
public class AdminDal : DalBase<AdminDbContext>
|
||||
{
|
||||
|
||||
public AdminDal() : base()
|
||||
|
|
|
|||
|
|
@ -1,15 +1,11 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using AyCode.Core.Logger;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Database.DbContexts;
|
||||
using TIAM.Database.DbContexts.Auctions;
|
||||
using TIAM.Entities.Auctions;
|
||||
|
||||
namespace TIAM.Database.DataLayers.Users
|
||||
namespace TIAM.Database.DataLayers.Auctions
|
||||
{
|
||||
public class AuctionDal : TiamDalBase<AuctionDbContext>
|
||||
public class AuctionDal : DalBase<AuctionDbContext>
|
||||
{
|
||||
|
||||
public AuctionDal() : base()
|
||||
|
|
@ -23,14 +19,14 @@ namespace TIAM.Database.DataLayers.Users
|
|||
|
||||
public Task<List<AuctionBid>> GetBidsByEmail(string email)
|
||||
{
|
||||
Console.WriteLine($"Getting bid from db {email}");
|
||||
Logger.Info($"Getting bid from db {email}");
|
||||
var emailLower = email.ToLower();
|
||||
return Context.AuctionBids.Where(x => x.Email.ToLower() == emailLower).ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<AuctionBid?> GetBidById(Guid id)
|
||||
public AuctionBid? GetBidById(Guid id)
|
||||
{
|
||||
Console.WriteLine($"Getting bid from db {id}");
|
||||
Logger.Info($"Getting bid from db {id}");
|
||||
|
||||
return Context.AuctionBids.FirstOrDefault(x => x.Id == id);
|
||||
}
|
||||
|
|
@ -40,7 +36,7 @@ namespace TIAM.Database.DataLayers.Users
|
|||
auctionBid.Created = DateTime.UtcNow;
|
||||
auctionBid.Modified = DateTime.UtcNow;
|
||||
Context.AuctionBids.Add(auctionBid);
|
||||
Console.WriteLine($"Saving user to db {auctionBid.Id}, {auctionBid.Email}, {auctionBid.PhoneNumber}");
|
||||
Logger.Info($"Saving user to db {auctionBid.Id}, {auctionBid.Email}, {auctionBid.PhoneNumber}");
|
||||
return Context.SaveChangesAsync().ContinueWith(x => x.Result > 0);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -10,9 +10,9 @@ using TIAM.Database.DbContexts;
|
|||
|
||||
namespace TIAM.Database.DataLayers;
|
||||
|
||||
public class TiamDalBase<TDbContext> : DalBase<TDbContext> where TDbContext : TiamDbContextBase
|
||||
public class DalBase<TDbContext> : AcDalBase<TDbContext> where TDbContext : DbContextBase
|
||||
{
|
||||
//public TiamDalBase() : base(new TransferDestinationDbContext("DeveloperDbConnection"))
|
||||
//public DalBase() : base(new TransferDestinationDbContext("DeveloperDbConnection"))
|
||||
//{
|
||||
// Ctx.Database. }
|
||||
}
|
||||
|
|
@ -5,17 +5,19 @@ using System.Text;
|
|||
using System.Threading.Tasks;
|
||||
using AyCode.Models.Enums;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Database.DbContexts;
|
||||
using TIAM.Entities.Permissions;
|
||||
using TIAM.Entities.Products;
|
||||
using TIAM.Entities.ServiceProviders;
|
||||
using TIAM.Entities.Products.DTOs;
|
||||
using TIAM.Entities.Users;
|
||||
using TIAM.Database.DbContexts.ServiceProviders;
|
||||
using TIAM.Database.DbSets.Permissions;
|
||||
using TIAM.Database.DbSets.Users;
|
||||
|
||||
|
||||
namespace TIAM.Database.DataLayers.ServiceProviders
|
||||
{
|
||||
public class ServiceProviderDal : TiamDalBase<ServiceProviderDbContext>
|
||||
public class ServiceProviderDal : DalBase<ServiceProviderDbContext>
|
||||
{
|
||||
|
||||
public ServiceProviderDal() : base()
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
using AyCode.Database.DataLayers.Users;
|
||||
using AyCode.Models.Enums;
|
||||
using TIAM.Database.DbContexts;
|
||||
using TIAM.Database.DbContexts.ServiceProviders;
|
||||
using TIAM.Database.DbSets.Permissions;
|
||||
using TIAM.Database.DbSets.Users;
|
||||
using TIAM.Entities.Permissions;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
|
|
@ -8,24 +10,7 @@ namespace TIAM.Database.DataLayers.ServiceProviders;
|
|||
|
||||
public static class ServiceProviderDalExtension
|
||||
{
|
||||
public static IQueryable<AssignedUser> GetAssignedUsersByPermissionGroupId(this ServiceProviderDbContext ctx, Guid permissionGroupId)
|
||||
{
|
||||
return ctx.AssignedUsers
|
||||
.Where(user => ctx.PermissionGroupUserMappings
|
||||
.Where(x => x.PermissionGroupId == permissionGroupId)
|
||||
.Select(x => x.AssignedUserId)
|
||||
.Contains(user.Id));
|
||||
}
|
||||
|
||||
//public static IQueryable<PermissionGroup> GetPermissionGroupByContextMapping(this ServiceProviderDbContext ctx, PermissionContextMapping permissionContextMapping)
|
||||
//{
|
||||
// if (permissionContextMapping.SubjectType == PermissionContextMappingSubjectType.Group)
|
||||
// return ctx.PermissionGroups.Where(x => x.Id == permissionContextMapping.SubjectId);
|
||||
// else if (permissionContextMapping.SubjectType == PermissionContextMappingSubjectType.User)
|
||||
// return ctx.PermissionGroups.Where(x => x.Id == permissionContextMapping.SubjectId);
|
||||
//}
|
||||
|
||||
public static IQueryable<PermissionContextMapping> GetPermissionContextMappingByContextId(this ServiceProviderDbContext ctx, Guid contextId)
|
||||
public static IQueryable<PermissionContextMapping> GetPermissionContextMappingByContextId(this IServiceProviderDbContext ctx, Guid contextId)
|
||||
{
|
||||
var subjectIds = ctx.GetAssignedUsersByContextId(contextId).Select(x => x.Id).
|
||||
Concat(ctx.PermissionGroups.Where(x => x.ContextId == contextId).Select(x => x.Id)).ToHashSet();
|
||||
|
|
@ -33,47 +18,16 @@ public static class ServiceProviderDalExtension
|
|||
return ctx.GetPermissionContextMappingsBySubjectIds(subjectIds);
|
||||
}
|
||||
|
||||
//public static IQueryable<PermissionContextMapping> GetPermissionContextMappingByAssignedUserId(this ServiceProviderDbContext ctx, Guid assignedUserId)
|
||||
//{
|
||||
// var subjectIds = ctx.GetAssignedUsersByContextId(assignedUserId).Select(x => x.Id).
|
||||
// Concat(ctx.PermissionGroupUserMappings.Where(x => x.AssignedUserId == assignedUserId).Select(x => x.)).ToHashSet();
|
||||
|
||||
// return ctx.GetPermissionContextMappingsBySubjectIds(subjectIds);
|
||||
//}
|
||||
|
||||
public static IQueryable<PermissionContextMapping> GetPermissionContextMappingsBySubjectIds(this ServiceProviderDbContext ctx, IEnumerable<Guid> subjectIds)
|
||||
=> ctx.PermissionContextMappings.Where(x => subjectIds.Contains(x.SubjectId));
|
||||
|
||||
public static PermissionContextMapping? GetPermissionContextMappingBySubjectId(this ServiceProviderDbContext ctx, Guid subjectId)
|
||||
=> ctx.PermissionContextMappings.FirstOrDefault(x => x.SubjectId == subjectId);
|
||||
|
||||
public static void RemoveContextMappingBySubjectId(this ServiceProviderDbContext ctx, Guid subjectId)
|
||||
{
|
||||
var contextMapping = ctx.GetPermissionContextMappingBySubjectId(subjectId);
|
||||
|
||||
if (contextMapping == null) return;
|
||||
|
||||
ctx.PermissionContextMappings.Remove(contextMapping);
|
||||
}
|
||||
|
||||
public static IQueryable<PermissionGroupUserMapping> GetAllPermissionGroupsByAssignedUserId(this ServiceProviderDbContext ctx, Guid assignedUserId)
|
||||
=> ctx.PermissionGroupUserMappings.Where(x => x.AssignedUserId == assignedUserId);
|
||||
|
||||
public static void DeleteProductById(this ServiceProviderDbContext ctx, Guid productId)
|
||||
public static void DeleteProductById(this IServiceProviderDbContext ctx, Guid productId)
|
||||
{
|
||||
var product = ctx.Products.FirstOrDefault(u => u.Id == productId);
|
||||
if (product == null) return;
|
||||
|
||||
ctx.RemoveAssignedUsers(ctx.GetAssignedUsersByContextId(productId));
|
||||
ctx.CleanUpAndRemoveAssignedUsers(ctx.GetAssignedUsersByContextId(productId));
|
||||
ctx.Products.Remove(product);
|
||||
}
|
||||
|
||||
public static void RemoveAssingedUserFromPermissionGroups(this ServiceProviderDbContext ctx, Guid assignedUserId)
|
||||
{
|
||||
ctx.PermissionGroupUserMappings.RemoveRange(ctx.GetAllPermissionGroupsByAssignedUserId(assignedUserId));
|
||||
}
|
||||
|
||||
public static void RemoveAssignedUsers(this ServiceProviderDbContext ctx, IEnumerable<AssignedUser> assignedUsers)
|
||||
public static void CleanUpAndRemoveAssignedUsers(this IServiceProviderDbContext ctx, IEnumerable<AssignedUser> assignedUsers)
|
||||
{
|
||||
foreach (var assignedUser in assignedUsers)
|
||||
{
|
||||
|
|
@ -81,7 +35,7 @@ public static class ServiceProviderDalExtension
|
|||
}
|
||||
}
|
||||
|
||||
public static void CleanUpAndRemoveAssignedUser(this ServiceProviderDbContext ctx, AssignedUser assignedUser)
|
||||
public static void CleanUpAndRemoveAssignedUser(this IServiceProviderDbContext ctx, AssignedUser assignedUser)
|
||||
{
|
||||
ctx.RemoveContextMappingBySubjectId(assignedUser.Id);
|
||||
ctx.RemoveAssingedUserFromPermissionGroups(assignedUser.Id);
|
||||
|
|
@ -89,7 +43,7 @@ public static class ServiceProviderDalExtension
|
|||
ctx.AssignedUsers.Remove(assignedUser);
|
||||
}
|
||||
|
||||
public static bool RemoveAssignedUserById(this ServiceProviderDbContext ctx, Guid assignedUserId)
|
||||
public static bool CleanUpAndRemoveAssignedUsers(this IServiceProviderDbContext ctx, Guid assignedUserId)
|
||||
{
|
||||
var assignedUser = ctx.GetAssignedUserById(assignedUserId);
|
||||
|
||||
|
|
@ -99,11 +53,4 @@ public static class ServiceProviderDalExtension
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static AssignedUser? GetAssignedUserById(this ServiceProviderDbContext ctx, Guid assignedUserId)
|
||||
=> ctx.AssignedUsers.FirstOrDefault(x => x.Id == assignedUserId);
|
||||
|
||||
public static IQueryable<AssignedUser> GetAssignedUsersByContextId(this ServiceProviderDbContext ctx, Guid contextId)
|
||||
=> ctx.AssignedUsers.Where(x => x.ContextId == contextId);
|
||||
|
||||
}
|
||||
|
|
@ -6,13 +6,13 @@ using System.Threading.Tasks;
|
|||
using AyCode.Database;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Identity.Client;
|
||||
using TIAM.Database.DbContexts;
|
||||
using TIAM.Database.DbContexts.Transfers;
|
||||
using TIAM.Entities.TransferDestinations;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.DataLayers.TransferDestinations;
|
||||
|
||||
public class TransferDestinationDal : TiamDalBase<TransferDestinationDbContext>
|
||||
public class TransferDestinationDal : DalBase<TransferDestinationDbContext>
|
||||
{
|
||||
public TransferDestinationDal() : base()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -7,12 +7,12 @@ using AyCode.Database.DataLayers;
|
|||
using AyCode.Database.DataLayers.Users;
|
||||
using AyCode.Entities.Users;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Database.DbContexts;
|
||||
using TIAM.Database.DbContexts.Users;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.DataLayers.Users
|
||||
{
|
||||
public class UserDal : UserDalBase<UserDbContext, User, UserTokenBase>
|
||||
public class UserDal : AcUserDalBase<UserDbContext, User, UserToken>
|
||||
{
|
||||
|
||||
public UserDal() : base()
|
||||
|
|
|
|||
|
|
@ -8,9 +8,9 @@ using Microsoft.EntityFrameworkCore;
|
|||
using TIAM.Entities.TransferDestinations;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.DbContexts
|
||||
namespace TIAM.Database.DbContexts.Admins
|
||||
{
|
||||
public class AdminDbContext : TiamDbContextBase
|
||||
public class AdminDbContext : DbContextBase
|
||||
{
|
||||
public DbSet<User> Users { get; set; }
|
||||
public DbSet<TransferDestination> TransferDestinations { get; set; }
|
||||
|
|
@ -34,6 +34,6 @@ namespace TIAM.Database.DbContexts
|
|||
base.OnConfiguring(optionsBuilder);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -8,9 +8,9 @@ using Microsoft.EntityFrameworkCore;
|
|||
using TIAM.Entities.Auctions;
|
||||
using TIAM.Entities.TransferDestinations;
|
||||
|
||||
namespace TIAM.Database.DbContexts
|
||||
namespace TIAM.Database.DbContexts.Auctions
|
||||
{
|
||||
public class AuctionDbContext : TiamDbContextBase
|
||||
public class AuctionDbContext : DbContextBase
|
||||
{
|
||||
public virtual DbSet<AuctionBid> AuctionBids { get; set; }
|
||||
|
||||
|
|
@ -38,6 +38,6 @@ namespace TIAM.Database.DbContexts
|
|||
base.OnConfiguring(optionsBuilder);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -10,18 +10,18 @@ using Microsoft.Extensions.Options;
|
|||
|
||||
namespace TIAM.Database.DbContexts
|
||||
{
|
||||
public class TiamDbContextBase : DbContextBase
|
||||
public class DbContextBase : AcDbContextBase
|
||||
{
|
||||
public TiamDbContextBase() //: this(string.Empty)
|
||||
public DbContextBase() //: this(string.Empty)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public TiamDbContextBase(string name) : base(name)
|
||||
public DbContextBase(string name) : base(name)
|
||||
{
|
||||
}
|
||||
|
||||
public TiamDbContextBase(DbContextOptions<DbContext> options, string name) : base(options, name)
|
||||
public DbContextBase(DbContextOptions<DbContext> options, string name) : base(options, name)
|
||||
{
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
using TIAM.Database.DbSets.Permissions;
|
||||
using TIAM.Database.DbSets.Products;
|
||||
using TIAM.Database.DbSets.ServiceProvider;
|
||||
using TIAM.Database.DbSets.Users;
|
||||
|
||||
namespace TIAM.Database.DbContexts.ServiceProviders;
|
||||
|
||||
public interface IServiceProviderDbContext : IServiceProviderDbSet, ITiamProductDbSet, IAssignedUserDbSet, IPermissionsDbSetContext
|
||||
{
|
||||
}
|
||||
|
|
@ -7,26 +7,24 @@ using AyCode.Database.DbContexts;
|
|||
using AyCode.Database.DbContexts.Users;
|
||||
using AyCode.Entities.Users;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Database.DbContexts.Users;
|
||||
using TIAM.Entities.Permissions;
|
||||
using TIAM.Entities.Products;
|
||||
using TIAM.Entities.ServiceProviders;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.DbContexts
|
||||
namespace TIAM.Database.DbContexts.ServiceProviders
|
||||
{
|
||||
public class ServiceProviderDbContext : TiamDbContextBase, IUserDbContextBase<User, UserTokenBase>
|
||||
public class ServiceProviderDbContext : DbContextBase, IServiceProviderDbContext
|
||||
{
|
||||
public DbSet<User> Users { get; set; }
|
||||
public DbSet<UserTokenBase> UserTokens { get; set; }
|
||||
public DbSet<TiamServiceProvider> ServiceProviders { get; set; }
|
||||
public DbSet<TiamProduct> Products { get; set; }
|
||||
public DbSet<AssignedUser> AssignedUsers { get; set; }
|
||||
|
||||
|
||||
public virtual DbSet<TiamServiceProvider> ServiceProviders { get; set; }
|
||||
public virtual DbSet<TiamProduct> Products { get; set; }
|
||||
public virtual DbSet<AssignedUser> AssignedUsers { get; set; }
|
||||
public virtual DbSet<PermissionsType> PermissionsTypes { get; set; }
|
||||
public virtual DbSet<PermissionGroup> PermissionGroups { get; set; }
|
||||
public virtual DbSet<PermissionGroupUserMapping> PermissionGroupUserMappings { get; set; }
|
||||
public virtual DbSet<PermissionContextMapping> PermissionContextMappings { get; set; }
|
||||
public DbSet<PermissionsType> PermissionsTypes { get; set; }
|
||||
public DbSet<PermissionGroup> PermissionGroups { get; set; }
|
||||
public DbSet<PermissionGroupUserMapping> PermissionGroupUserMappings { get; set; }
|
||||
public DbSet<PermissionContextMapping> PermissionContextMappings { get; set; }
|
||||
|
||||
public ServiceProviderDbContext() //: this(string.Empty)
|
||||
{
|
||||
|
|
@ -6,9 +6,9 @@ using System.Threading.Tasks;
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Entities.TransferDestinations;
|
||||
|
||||
namespace TIAM.Database.DbContexts
|
||||
namespace TIAM.Database.DbContexts.Transfers
|
||||
{
|
||||
public class TransferDestinationDbContext : TiamDbContextBase
|
||||
public class TransferDestinationDbContext : DbContextBase
|
||||
{
|
||||
public DbSet<TransferDestination> TransferDestinations { get; set; }
|
||||
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
using AyCode.Database.DbContexts.Users;
|
||||
using AyCode.Entities.Users;
|
||||
using TIAM.Database.DbSets.Users;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.DbContexts.Users;
|
||||
|
||||
public interface IUserDbContext : IAcUserDbContextBase<User, UserToken>
|
||||
{
|
||||
}
|
||||
|
|
@ -11,12 +11,12 @@ using Microsoft.EntityFrameworkCore;
|
|||
using TIAM.Entities.Permissions;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.DbContexts
|
||||
namespace TIAM.Database.DbContexts.Users
|
||||
{
|
||||
public class UserDbContext : TiamDbContextBase, IUserDbContextBase<User, UserTokenBase>
|
||||
public class UserDbContext : DbContextBase, IUserDbContext
|
||||
{
|
||||
public virtual DbSet<User> Users { get; set; }
|
||||
public DbSet<UserTokenBase> UserTokens { get; set; }
|
||||
public DbSet<UserToken> UserTokens { get; set; }
|
||||
|
||||
public UserDbContext() //: this(string.Empty)
|
||||
{
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Entities.Permissions;
|
||||
|
||||
namespace TIAM.Database.DbSets.Permissions;
|
||||
|
||||
public interface IPermissionContextMappingDbSet
|
||||
{
|
||||
public DbSet<PermissionContextMapping> PermissionContextMappings { get; set; }
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Entities.Permissions;
|
||||
|
||||
namespace TIAM.Database.DbSets.Permissions;
|
||||
|
||||
public interface IPermissionGroupDbSet
|
||||
{
|
||||
public DbSet<PermissionGroup> PermissionGroups { get; set; }
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Entities.Permissions;
|
||||
|
||||
namespace TIAM.Database.DbSets.Permissions;
|
||||
|
||||
public interface IPermissionGroupUserMappingDbSet
|
||||
{
|
||||
public DbSet<PermissionGroupUserMapping> PermissionGroupUserMappings { get; set; }
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
namespace TIAM.Database.DbSets.Permissions;
|
||||
|
||||
public interface IPermissionsDbSetContext : IPermissionGroupDbSet, IPermissionGroupUserMappingDbSet, IPermissionContextMappingDbSet, IPermissionsTypeDbSet
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Entities.Permissions;
|
||||
|
||||
namespace TIAM.Database.DbSets.Permissions;
|
||||
|
||||
public interface IPermissionsTypeDbSet
|
||||
{
|
||||
public DbSet<PermissionsType> PermissionsTypes { get; set; }
|
||||
}
|
||||
|
|
@ -0,0 +1,45 @@
|
|||
using TIAM.Database.DbContexts.ServiceProviders;
|
||||
using TIAM.Database.DbSets.Users;
|
||||
using TIAM.Entities.Permissions;
|
||||
|
||||
namespace TIAM.Database.DbSets.Permissions;
|
||||
|
||||
public static class PermissionsDbSetExtensions
|
||||
{
|
||||
//public static IQueryable<PermissionGroup> GetPermissionGroupByContextMapping(this IPermissionsDbSetContext ctx, PermissionContextMapping permissionContextMapping)
|
||||
//{
|
||||
// if (permissionContextMapping.SubjectType == PermissionContextMappingSubjectType.Group)
|
||||
// return ctx.PermissionGroups.Where(x => x.Id == permissionContextMapping.SubjectId);
|
||||
// else if (permissionContextMapping.SubjectType == PermissionContextMappingSubjectType.User)
|
||||
// return ctx.PermissionGroups.Where(x => x.Id == permissionContextMapping.SubjectId);
|
||||
//}
|
||||
|
||||
//public static IQueryable<PermissionContextMapping> GetPermissionContextMappingByAssignedUserId(this IPermissionsDbSetContext ctx, Guid assignedUserId)
|
||||
//{
|
||||
// var subjectIds = ctx.GetAssignedUsersByContextId(assignedUserId).Select(x => x.Id).
|
||||
// Concat(ctx.PermissionGroupUserMappings.Where(x => x.AssignedUserId == assignedUserId).Select(x => x.)).ToHashSet();
|
||||
|
||||
// return ctx.GetPermissionContextMappingsBySubjectIds(subjectIds);
|
||||
//}
|
||||
|
||||
public static IQueryable<PermissionContextMapping> GetPermissionContextMappingsBySubjectIds(this IPermissionsDbSetContext ctx, IEnumerable<Guid> subjectIds)
|
||||
=> ctx.PermissionContextMappings.Where(x => subjectIds.Contains(x.SubjectId));
|
||||
|
||||
public static PermissionContextMapping? GetPermissionContextMappingBySubjectId(this IPermissionsDbSetContext ctx, Guid subjectId)
|
||||
=> ctx.PermissionContextMappings.FirstOrDefault(x => x.SubjectId == subjectId);
|
||||
|
||||
public static void RemoveContextMappingBySubjectId(this IPermissionsDbSetContext ctx, Guid subjectId)
|
||||
{
|
||||
var contextMapping = ctx.GetPermissionContextMappingBySubjectId(subjectId);
|
||||
|
||||
if (contextMapping == null) return;
|
||||
|
||||
ctx.PermissionContextMappings.Remove(contextMapping);
|
||||
}
|
||||
|
||||
public static IQueryable<PermissionGroupUserMapping> GetAllPermissionGroupsByAssignedUserId(this IPermissionsDbSetContext ctx, Guid assignedUserId)
|
||||
=> ctx.PermissionGroupUserMappings.Where(x => x.AssignedUserId == assignedUserId);
|
||||
|
||||
public static void RemoveAssingedUserFromPermissionGroups(this IPermissionsDbSetContext ctx, Guid assignedUserId)
|
||||
=> ctx.PermissionGroupUserMappings.RemoveRange(ctx.GetAllPermissionGroupsByAssignedUserId(assignedUserId));
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Entities.Products;
|
||||
|
||||
namespace TIAM.Database.DbSets.Products;
|
||||
|
||||
public interface ITiamProductDbSet
|
||||
{
|
||||
public DbSet<TiamProduct> Products { get; }
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Entities.ServiceProviders;
|
||||
|
||||
namespace TIAM.Database.DbSets.ServiceProvider;
|
||||
|
||||
public interface IServiceProviderDbSet
|
||||
{
|
||||
public DbSet<TiamServiceProvider> ServiceProviders { get; set; }
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
using TIAM.Database.DbContexts.ServiceProviders;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.DbSets.Users;
|
||||
|
||||
public static class AssignedUserDbSetExtensions
|
||||
{
|
||||
public static IQueryable<AssignedUser> GetAssignedUsersByPermissionGroupId(this ServiceProviderDbContext ctx, Guid permissionGroupId)
|
||||
{
|
||||
return ctx.AssignedUsers
|
||||
.Where(user => ctx.PermissionGroupUserMappings
|
||||
.Where(x => x.PermissionGroupId == permissionGroupId)
|
||||
.Select(x => x.AssignedUserId)
|
||||
.Contains(user.Id));
|
||||
}
|
||||
|
||||
public static AssignedUser? GetAssignedUserById(this IAssignedUserDbSet ctx, Guid assignedUserId)
|
||||
=> ctx.AssignedUsers.FirstOrDefault(x => x.Id == assignedUserId);
|
||||
|
||||
public static IQueryable<AssignedUser> GetAssignedUsersByContextId(this IAssignedUserDbSet ctx, Guid contextId)
|
||||
=> ctx.AssignedUsers.Where(x => x.ContextId == contextId);
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.DbSets.Users;
|
||||
|
||||
public interface IAssignedUserDbSet
|
||||
{
|
||||
public DbSet<AssignedUser> AssignedUsers { get; set; }
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
using AyCode.Database.DbSets.Users;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.DbSets.Users;
|
||||
|
||||
public interface IUserDbSet : IAcUserDbSet<User>
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
using AyCode.Database.DbSets.Users;
|
||||
using AyCode.Entities.Users;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.DbSets.Users;
|
||||
|
||||
public interface IUserTokenDbSet : IAcUserTokenDbSet<UserToken>
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -14,6 +14,11 @@
|
|||
|
||||
<ItemGroup>
|
||||
<Folder Include="DataLayers\DTOs\" />
|
||||
<Folder Include="DataLayers\Permissions\" />
|
||||
<Folder Include="DataLayers\Products\" />
|
||||
<Folder Include="DbSets\ServiceProvider\" />
|
||||
<Folder Include="DbSets\Products\" />
|
||||
<Folder Include="DbSets\Users\" />
|
||||
<Folder Include="Extensions\" />
|
||||
</ItemGroup>
|
||||
|
||||
|
|
|
|||
|
|
@ -8,14 +8,12 @@ namespace TIAM.Entities.TransferDestinations
|
|||
[Table("TransferDestination")]
|
||||
public class TransferDestination : LocationBase, ITimeStampInfo
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
public string? Name { get; set; }
|
||||
public string? Description { get; set; }
|
||||
public double Latitude { get; set; }
|
||||
public double Longitude { get; set; }
|
||||
public string? Address { get; set; }
|
||||
|
||||
public DateTime Created { get; set; }
|
||||
public DateTime Modified { get; set; }
|
||||
|
||||
public TransferDestination() { }
|
||||
public TransferDestination(double latitude, double longitude, string address) : this(Guid.NewGuid(), latitude, longitude, address) { }
|
||||
public TransferDestination(Guid id, double latitude, double longitude, string address) : base(Guid.NewGuid(), latitude, longitude, address) { }
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
using AyCode.Entities.Users;
|
||||
using AyCode.Interfaces.Users;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
|
||||
namespace TIAM.Entities.Users;
|
||||
|
||||
[Table("UserToken")]
|
||||
public class UserToken : UserTokenBase
|
||||
{
|
||||
}
|
||||
|
|
@ -1,26 +1,8 @@
|
|||
using DevExpress.Office.Crypto;
|
||||
using DevExpress.Xpo.DB;
|
||||
using DevExpress.XtraPrinting;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Microsoft.IdentityModel.Tokens;
|
||||
using System.IdentityModel.Tokens.Jwt;
|
||||
using System.Security.Claims;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text.Json;
|
||||
using TIAMWebApp.Shared.Application.Models;
|
||||
using TIAMWebApp.Shared.Application.Models.PageModels;
|
||||
using TIAMWebApp.Server.Models;
|
||||
using System.Text;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Database.DataLayers.Users;
|
||||
using AyCode.Core.Logger;
|
||||
using AyCode.Utils.Helpers;
|
||||
using TIAM.Entities.Users;
|
||||
using TIAMWebApp.Server.ModelsTIAMWebApp.Shared.Application.Models;
|
||||
using TIAMWebApp.Shared.Application.Utility;
|
||||
using TIAM.Database.DataLayers.Auctions;
|
||||
using TIAM.Entities.Auctions;
|
||||
|
||||
namespace TIAMWebApp.Server.Controllers
|
||||
|
|
@ -51,7 +33,7 @@ namespace TIAMWebApp.Server.Controllers
|
|||
[Route("CreateBid")]
|
||||
public async Task<IActionResult> CreateUser([FromBody] AuctionBid SerializedAuctionBidModel)
|
||||
{
|
||||
Console.WriteLine("CreateBid called");
|
||||
Logger.Info("CreateBid called");
|
||||
//if (string.IsNullOrEmpty(SerializedAuctionBidModel.GetRawText()))
|
||||
//{
|
||||
// return BadRequest("SerializedAuctionBidModel is required");
|
||||
|
|
@ -81,7 +63,7 @@ namespace TIAMWebApp.Server.Controllers
|
|||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine($"Bid to be created: {userId}, {targetProductId}, {email}, {phoneNumber}, {bidAmount}, {isValid}");
|
||||
Logger.Info($"Bid to be created: {userId}, {targetProductId}, {email}, {phoneNumber}, {bidAmount}, {isValid}");
|
||||
finalizedBidModel = new AuctionBid(userId, targetProductId, email, phoneNumber, bidAmount);
|
||||
await _auctionDal.CreateBidAsync(finalizedBidModel);
|
||||
return Ok(finalizedBidModel.Id);
|
||||
|
|
@ -118,19 +100,19 @@ namespace TIAMWebApp.Server.Controllers
|
|||
[Route("ValidateBid")]
|
||||
public async Task<IActionResult> ValidateBid([FromBody] AuctionBid SerializedAuctionBidModel)
|
||||
{
|
||||
Console.WriteLine("ValidateBid called");
|
||||
Logger.Info("ValidateBid called");
|
||||
//var validateBid = JObject.Parse(SerializedAuctionBidModel.GetRawText()).ToObject<AuctionBidModel>();
|
||||
|
||||
//check if bid exists
|
||||
AuctionBid? dbBid = null;
|
||||
|
||||
//Console.WriteLine(validateBid?.Id);
|
||||
Console.WriteLine(SerializedAuctionBidModel?.Id);
|
||||
//Logger.Info(validateBid?.Id);
|
||||
Logger.Info(SerializedAuctionBidModel?.Id.ToString());
|
||||
//if (validateBid != null)
|
||||
if (SerializedAuctionBidModel != null)
|
||||
{
|
||||
//dbBid = await _auctionDal.GetBidById(validateBid.Id);
|
||||
dbBid = await _auctionDal.GetBidById(SerializedAuctionBidModel.Id);
|
||||
dbBid = _auctionDal.GetBidById(SerializedAuctionBidModel.Id);
|
||||
}
|
||||
|
||||
//check if password is valid
|
||||
|
|
@ -147,7 +129,7 @@ namespace TIAMWebApp.Server.Controllers
|
|||
//if (dbBid.Email == validateBid?.Email)
|
||||
if (dbBid.Email == SerializedAuctionBidModel?.Email)
|
||||
{
|
||||
Console.WriteLine("Bid is valid");
|
||||
Logger.Info("Bid is valid");
|
||||
dbBid.IsValid = true;
|
||||
//Update userModel with refreshToken!!
|
||||
await _auctionDal.UpdateBidAsync(dbBid);
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ using TIAMWebApp.Shared.Application.Models;
|
|||
using TIAM.Database.DataLayers.Users;
|
||||
using TIAM.Database.DataLayers.TransferDestinations;
|
||||
using AyCode.Interfaces.Messages;
|
||||
using TIAM.Database.DataLayers.Auctions;
|
||||
using TIAMWebApp.Server.Services;
|
||||
using TIAM.Database.DataLayers.ServiceProviders;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue