Add IDbSets; refactoring, improvements, fixes, etc..

This commit is contained in:
jozsef.b@aycode.com 2023-12-11 01:45:37 +01:00
parent 2ce0890f12
commit c0327df85f
35 changed files with 259 additions and 145 deletions

View File

@ -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]

View File

@ -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
{

View File

@ -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

View File

@ -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()

View File

@ -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);
}

View File

@ -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. }
}

View File

@ -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()

View File

@ -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);
}

View File

@ -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()
{

View File

@ -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()

View File

@ -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);
}
}
}

View File

@ -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);
}
}
}

View File

@ -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)
{
}

View File

@ -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
{
}

View File

@ -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)
{

View File

@ -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; }

View File

@ -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>
{
}

View File

@ -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)
{

View File

@ -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; }
}

View File

@ -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; }
}

View File

@ -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; }
}

View File

@ -0,0 +1,5 @@
namespace TIAM.Database.DbSets.Permissions;
public interface IPermissionsDbSetContext : IPermissionGroupDbSet, IPermissionGroupUserMappingDbSet, IPermissionContextMappingDbSet, IPermissionsTypeDbSet
{
}

View File

@ -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; }
}

View File

@ -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));
}

View File

@ -0,0 +1,9 @@
using Microsoft.EntityFrameworkCore;
using TIAM.Entities.Products;
namespace TIAM.Database.DbSets.Products;
public interface ITiamProductDbSet
{
public DbSet<TiamProduct> Products { get; }
}

View File

@ -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; }
}

View File

@ -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);
}

View File

@ -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; }
}

View File

@ -0,0 +1,8 @@
using AyCode.Database.DbSets.Users;
using TIAM.Entities.Users;
namespace TIAM.Database.DbSets.Users;
public interface IUserDbSet : IAcUserDbSet<User>
{
}

View File

@ -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>
{
}

View File

@ -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>

View File

@ -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) { }

View File

@ -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
{
}

View File

@ -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);

View File

@ -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;