Sumup phase 2
This commit is contained in:
commit
88c7bdf760
|
|
@ -246,7 +246,7 @@ namespace TIAM.Database.Test
|
|||
|
||||
Assert.IsNotNull(userModel);
|
||||
Assert.IsNotNull(userModel.UserDto);
|
||||
Assert.IsNotNull(userModel.Profile);
|
||||
Assert.IsNotNull(userModel.ProfileDto);
|
||||
|
||||
Assert.IsTrue(userModel.Id == userId, "userModel.Id != userId");
|
||||
|
||||
|
|
|
|||
|
|
@ -150,6 +150,11 @@ namespace TIAM.Database.Test
|
|||
Assert.IsTrue(user.UserToServiceProviders.Count > 0);
|
||||
}
|
||||
|
||||
[DataTestMethod]
|
||||
[DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")]
|
||||
public override void AcBase_GetUserModelDtoDetailById_ReturnsUser_WhenUserExists(string userIdString)
|
||||
=> base.AcBase_GetUserModelDtoDetailById_ReturnsUser_WhenUserExists(userIdString);
|
||||
|
||||
[DataTestMethod]
|
||||
[DataRow("540271F6-C604-4C16-8160-D5A7CAFEDF00")]
|
||||
[DataRow("dcf451d2-cc4c-4ac2-8c1f-da00041be1fd")]
|
||||
|
|
@ -171,7 +176,7 @@ namespace TIAM.Database.Test
|
|||
|
||||
Assert.IsNotNull(userModel);
|
||||
Assert.IsNotNull(userModel.UserDto);
|
||||
Assert.IsNotNull(userModel.Profile);
|
||||
Assert.IsNotNull(userModel.ProfileDto);
|
||||
|
||||
if (userId != Guid.Parse("540271F6-C604-4C16-8160-D5A7CAFEDF00")) return; //csak az "540271F6.."-nek van product-ja! - J.
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ using AyCode.Models.Enums;
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using System;
|
||||
using AyCode.Database.DbSets.Companies;
|
||||
using TIAM.Core;
|
||||
//using TIAM.Database.DataLayers.ServiceProviders;
|
||||
using TIAM.Database.DbContexts.Admins;
|
||||
|
|
@ -223,7 +224,7 @@ namespace TIAM.Database.DataLayers.Admins
|
|||
#endregion EmailMessage
|
||||
|
||||
//15. (IServiceProviderDataService) Create service provider
|
||||
public Task<bool> CreateServiceProviderAsync(Company serviceProvider) => TransactionAsync(ctx => ctx.AddServiceProvider(serviceProvider));
|
||||
public Task<bool> CreateServiceProviderAsync(Company serviceProvider) => TransactionAsync(ctx => ctx.AddServiceProvider<Company, Profile, Address>(serviceProvider));
|
||||
|
||||
//public bool CreateProductAsync(Product product)
|
||||
//{
|
||||
|
|
@ -237,7 +238,7 @@ namespace TIAM.Database.DataLayers.Admins
|
|||
|
||||
public Task<string> GetServiceProvidersJsonAsync()
|
||||
{
|
||||
return SessionAsync(ctx => ctx.ServiceProviders.ToJson());
|
||||
return SessionAsync(ctx => ctx.Companies.ToJson());
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -253,11 +254,12 @@ namespace TIAM.Database.DataLayers.Admins
|
|||
#region ServiceProviders
|
||||
|
||||
//14. (IserviceProviderDataService) Update service provider
|
||||
public Task<bool> UpdateServiceProviderAsync(Company company) => TransactionAsync(ctx => ctx.UpdateServiceProvider(company));
|
||||
public Task<bool> UpdateCompanyAsync(Company company) => TransactionAsync(ctx => ctx.UpdateServiceProvider<Company, Profile, Address>(company));
|
||||
|
||||
|
||||
//13. (IserviceProviderDataService) delete service provider
|
||||
public Task<bool> DeleteServiceProviderAsync(Guid id) => TransactionAsync(ctx => ctx.RemoveServiceProvider(id));
|
||||
public Task<bool> RemoveCompanyAsync(Guid id) => TransactionAsync(ctx => ctx.RemoveServiceProvider(id));
|
||||
public Task<bool> RemoveCompanyAsync(Company company) => TransactionAsync(ctx => ctx.RemoveServiceProvider(company));
|
||||
|
||||
|
||||
//17. (IServiceProviderDataService) get service provider by ownerId
|
||||
|
|
|
|||
|
|
@ -4,7 +4,9 @@ using System.Linq;
|
|||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using AyCode.Database.DbContexts;
|
||||
using AyCode.Database.ModelBuilders.Users;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Database.ModelBuilders.Companies;
|
||||
using TIAM.Database.ModelBuilders.Emails;
|
||||
using TIAM.Database.ModelBuilders.Products;
|
||||
using TIAM.Database.ModelBuilders.Transfers;
|
||||
|
|
@ -24,13 +26,17 @@ namespace TIAM.Database.DbContexts.Admins
|
|||
public class AdminDbContext : DbContextBase, IAdminDbContext
|
||||
{
|
||||
public DbSet<User> Users { get; set; }
|
||||
public DbSet<Profile> Profiles { get; set; }
|
||||
public DbSet<Company> Companies { get; set; }
|
||||
public DbSet<UserToken> UserTokens { get; set; }
|
||||
|
||||
public DbSet<TransferDestination> TransferDestinations { get; set; }
|
||||
public DbSet<TransferDestinationToProduct> TransferDestinationToProducts { get; set; }
|
||||
public DbSet<Transfer> Transfers { get; set; }
|
||||
public DbSet<TransferToDriver> TransferToDrivers { get; set; }
|
||||
public DbSet<Car> Cars { get; set; }
|
||||
|
||||
public DbSet<Company> ServiceProviders { get; set; }
|
||||
//public DbSet<Company> ServiceProviders { get; set; }
|
||||
public DbSet<Product> Products { get; set; }
|
||||
public DbSet<UserProductMapping> UserProductMappings { get; set; }
|
||||
public DbSet<PermissionGroup> PermissionGroups { get; set; }
|
||||
|
|
@ -79,6 +85,8 @@ namespace TIAM.Database.DbContexts.Admins
|
|||
|
||||
new EmailMessageEntityTypeDefaultConfigurations().Configure(modelBuilder.Entity<EmailMessage>());
|
||||
|
||||
new CompanyEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity<Company>());
|
||||
|
||||
modelBuilder.Entity<Company>().Navigation(e => e.Profile).AutoInclude(true);
|
||||
modelBuilder.Entity<Company>().HasOne(x => x.Profile).WithOne().OnDelete(DeleteBehavior.Cascade);
|
||||
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ namespace TIAM.Database.DbContexts.Admins
|
|||
if (myproduct == null) return false;
|
||||
|
||||
//Automatically add assigneduser for owner
|
||||
Company? company = ctx.ServiceProviders.FirstOrDefault(x => x.Id == myproduct.ServiceProviderId);
|
||||
Company? company = ctx.Companies.FirstOrDefault(x => x.Id == myproduct.ServiceProviderId);
|
||||
if (company == null || company.OwnerId.IsNullOrEmpty()) return false;
|
||||
|
||||
var userProductMapping = new UserProductMapping(myproduct.Id, company.OwnerId.Value);
|
||||
|
|
@ -124,14 +124,10 @@ namespace TIAM.Database.DbContexts.Admins
|
|||
{
|
||||
if (serviceProvider == null || serviceProvider.OwnerId.IsNullOrEmpty()) return null;
|
||||
|
||||
ctx.ServiceProviders.Add(serviceProvider);
|
||||
ctx.Companies.Add(serviceProvider);
|
||||
var userProductMapping = new UserProductMapping(serviceProvider.Id, serviceProvider.OwnerId.Value);
|
||||
ctx.CreateAssignedUser(userProductMapping);
|
||||
return serviceProvider;
|
||||
}
|
||||
|
||||
|
||||
public static bool UpdateServiceProvider(this IAdminDbContext ctx, Company serviceProvider)
|
||||
=> ctx.ServiceProviders.Update(serviceProvider).State == EntityState.Modified;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,14 +1,22 @@
|
|||
using TIAM.Database.DbSets.Addresses;
|
||||
using AyCode.Database.DbContexts.Users;
|
||||
using TIAM.Database.DbSets.Addresses;
|
||||
using TIAM.Database.DbSets.Emails;
|
||||
using TIAM.Database.DbSets.Permissions;
|
||||
using TIAM.Database.DbSets.Products;
|
||||
using TIAM.Database.DbSets.ServiceProvider;
|
||||
using TIAM.Database.DbSets.Transfers;
|
||||
using TIAM.Database.DbSets.Users;
|
||||
using TIAM.Entities.Addresses;
|
||||
using TIAM.Entities.Emails;
|
||||
using TIAM.Entities.Profiles;
|
||||
using TIAM.Entities.ServiceProviders;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.DbContexts.Admins;
|
||||
|
||||
public interface IAdminDbContext :
|
||||
IServiceProviderDbSet, IProductDbSet, IUserProductMappingDbSet, IUserDbSet, IPermissionsDbSetContext, IAddressDbSet, ITransferDestinationDbSet, ITransferDbSet, IEmailMessageDbSet
|
||||
ICompanyDbSet, IProductDbSet, IUserProductMappingDbSet,
|
||||
IAcUserDbContextBase<User, Profile, UserToken, Company, UserToCompany, Address, EmailMessage>,
|
||||
IPermissionsDbSetContext, ITransferDestinationDbSet, ITransferDbSet, IEmailMessageDbSet
|
||||
{
|
||||
}
|
||||
|
|
@ -8,6 +8,6 @@ using TIAM.Database.DbSets.Users;
|
|||
|
||||
namespace TIAM.Database.DbContexts.ServiceProviders;
|
||||
|
||||
public interface IServiceProviderDbContext : IServiceProviderDbSet, IProductDbSet, IUserProductMappingDbSet, IUserDbSet, IPermissionsDbSetContext, IAddressDbSet, ITransferDestinationDbSet
|
||||
public interface IServiceProviderDbContext : ICompanyDbSet, IProductDbSet, IUserProductMappingDbSet, IUserDbSet, IPermissionsDbSetContext, IAddressDbSet, ITransferDestinationDbSet
|
||||
{
|
||||
}
|
||||
|
|
@ -14,6 +14,7 @@ using TIAM.Database.ModelBuilders.Users;
|
|||
using TIAM.Entities.Addresses;
|
||||
using TIAM.Entities.Permissions;
|
||||
using TIAM.Entities.Products;
|
||||
using TIAM.Entities.Profiles;
|
||||
using TIAM.Entities.ServiceProviders;
|
||||
using TIAM.Entities.Transfers;
|
||||
using TIAM.Entities.Users;
|
||||
|
|
@ -26,6 +27,9 @@ namespace TIAM.Database.DbContexts.ServiceProviders
|
|||
public DbSet<TransferDestination> TransferDestinations { get; set; }
|
||||
public DbSet<TransferDestinationToProduct> TransferDestinationToProducts { get; set; }
|
||||
|
||||
public DbSet<Company> Companies { get; set; }
|
||||
public DbSet<Profile> Profiles { get; set; }
|
||||
|
||||
public DbSet<User> Users { get; set; }
|
||||
public DbSet<UserProductMapping> UserProductMappings { get; set; }
|
||||
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ namespace TIAM.Database.DbContexts.Users
|
|||
public DbSet<Address> Addresses { get; set; }
|
||||
public DbSet<Profile> Profiles { get; set; }
|
||||
public DbSet<EmailMessage> EmailMessages { get; set; }
|
||||
public DbSet<Company> Companies { get; set; }
|
||||
|
||||
public DbSet<Transfer> Transfers { get; set; }
|
||||
public DbSet<TransferDestinationToProduct> TransferDestinationToProducts { get; set; }
|
||||
|
|
@ -99,5 +100,6 @@ namespace TIAM.Database.DbContexts.Users
|
|||
// //builderUserProductJsonDetail.OwnsMany(userProductJsonDetail => userProductJsonDetail.Cars2);
|
||||
// });
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,48 @@
|
|||
using AyCode.Utils.Extensions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Database.DbSets.Transfers;
|
||||
using TIAM.Entities.ServiceProviders;
|
||||
using TIAM.Entities.Transfers;
|
||||
|
||||
|
||||
namespace TIAM.Database.DbSets.ServiceProvider;
|
||||
|
||||
//public static class CompanyDbSetExtensions
|
||||
//{
|
||||
// #region Add, Update, Remove
|
||||
|
||||
// public static bool AddServiceProvider(this ICompanyDbSet ctx, Company company)
|
||||
// {
|
||||
// var companyProfile = company.Profile;
|
||||
|
||||
// if (company.ProfileId.IsNullOrEmpty() || companyProfile.Id != company.ProfileId || companyProfile.AddressId.IsNullOrEmpty() || companyProfile.Address.Id != companyProfile.AddressId)
|
||||
// {
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// if (!company.OwnerId.IsNullOrEmpty())
|
||||
// company.AddUser(company.OwnerId.Value, 1);
|
||||
|
||||
// return ctx.Companies.Add(company).State == EntityState.Added;
|
||||
// }
|
||||
|
||||
// public static bool RemoveServiceProvider(this ICompanyDbSet ctx, Company company)
|
||||
// => ctx.Companies.Remove(company).State == EntityState.Deleted;
|
||||
|
||||
// public static bool RemoveServiceProvider(this ICompanyDbSet ctx, Guid companyId)
|
||||
// {
|
||||
// var company = ctx.GetServiceProviderById(companyId);
|
||||
// return company == null || ctx.RemoveServiceProvider(company);
|
||||
// }
|
||||
|
||||
// #endregion Add, Update, Remove
|
||||
|
||||
// public static Company? GetServiceProviderById(this ICompanyDbSet ctx, Guid companyId)
|
||||
// => ctx.Companies.FirstOrDefault(x => x.Id == companyId);
|
||||
|
||||
// public static IQueryable<Company> GetServiceProviders(this ICompanyDbSet ctx)
|
||||
// => ctx.Companies;
|
||||
|
||||
// public static List<Company> GetServiceProvidersByOwnerId(this ICompanyDbSet ctx, Guid ownerId)
|
||||
// => ctx.Companies.Where(x => x.OwnerId == ownerId).ToList();
|
||||
//}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
using AyCode.Database.DbSets.Companies;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Entities.Addresses;
|
||||
using TIAM.Entities.Profiles;
|
||||
using TIAM.Entities.ServiceProviders;
|
||||
|
||||
namespace TIAM.Database.DbSets.ServiceProvider;
|
||||
|
||||
public interface ICompanyDbSet : IAcCompanyDbSetBase<Company, Profile, Address>
|
||||
{
|
||||
}
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Entities.ServiceProviders;
|
||||
|
||||
namespace TIAM.Database.DbSets.ServiceProvider;
|
||||
|
||||
public interface IServiceProviderDbSet
|
||||
{
|
||||
public DbSet<Company> ServiceProviders { get; set; }
|
||||
}
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
using AyCode.Utils.Extensions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using TIAM.Database.DbSets.Transfers;
|
||||
using TIAM.Entities.ServiceProviders;
|
||||
using TIAM.Entities.Transfers;
|
||||
|
||||
|
||||
namespace TIAM.Database.DbSets.ServiceProvider;
|
||||
|
||||
public static class ServiceProviderDbSetExtensions
|
||||
{
|
||||
#region Add, Update, Remove
|
||||
|
||||
public static bool AddServiceProvider(this IServiceProviderDbSet ctx, Company company)
|
||||
{
|
||||
var companyProfile = company.Profile;
|
||||
|
||||
if (company.ProfileId.IsNullOrEmpty() || companyProfile.Id != company.ProfileId || companyProfile.AddressId.IsNullOrEmpty() || companyProfile.Address.Id != companyProfile.AddressId)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!company.OwnerId.IsNullOrEmpty())
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
return ctx.ServiceProviders.Add(company).State == EntityState.Added;
|
||||
}
|
||||
|
||||
public static bool RemoveServiceProvider(this IServiceProviderDbSet ctx, Company company)
|
||||
=> ctx.ServiceProviders.Remove(company).State == EntityState.Deleted;
|
||||
|
||||
public static bool RemoveServiceProvider(this IServiceProviderDbSet ctx, Guid companyId)
|
||||
{
|
||||
var company = ctx.GetServiceProviderById(companyId);
|
||||
return company == null || ctx.RemoveServiceProvider(company);
|
||||
}
|
||||
|
||||
#endregion Add, Update, Remove
|
||||
|
||||
public static Company? GetServiceProviderById(this IServiceProviderDbSet ctx, Guid companyId)
|
||||
=> ctx.ServiceProviders.FirstOrDefault(x => x.Id == companyId);
|
||||
|
||||
public static IQueryable<Company> GetServiceProviders(this IServiceProviderDbSet ctx)
|
||||
=> ctx.ServiceProviders;
|
||||
|
||||
public static List<Company> GetServiceProvidersByOwnerId(this IServiceProviderDbSet ctx, Guid ownerId)
|
||||
=> ctx.ServiceProviders.Where(x => x.OwnerId == ownerId).ToList();
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,11 +1,12 @@
|
|||
using AyCode.Database.DbSets.Users;
|
||||
using TIAM.Entities.Addresses;
|
||||
using TIAM.Entities.Emails;
|
||||
using TIAM.Entities.Profiles;
|
||||
using TIAM.Entities.ServiceProviders;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.DbSets.Users;
|
||||
|
||||
public interface IUserDbSet : IAcUserDbSet<User, Profile, Company, UserToCompany, Address>
|
||||
public interface IUserDbSet : IAcUserDbSetBase<User, Profile, Company, UserToCompany, Address>
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
namespace TIAM.Database.ModelBuilders.Companies;
|
||||
|
||||
public static class CompanyEntityTypeBuilderExtensions
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
using AyCode.Database.DbContexts;
|
||||
using AyCode.Database.ModelBuilders.Profiles;
|
||||
using AyCode.Database.ModelBuilders.Users;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
using TIAM.Database.ModelBuilders.Users;
|
||||
using TIAM.Entities.Addresses;
|
||||
using TIAM.Entities.Profiles;
|
||||
using TIAM.Entities.ServiceProviders;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.ModelBuilders.Companies;
|
||||
|
||||
|
||||
public class CompanyEntityTypeDefaultConfiguration : AcCompanyEntityTypeDefaultConfiguration<Company, Profile, Address, UserToCompany, User> //IAcEntityTypeConfiguration<User>//
|
||||
{
|
||||
public override void Configure(EntityTypeBuilder<Company> builder)
|
||||
{
|
||||
base.Configure(builder);
|
||||
|
||||
//builder
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -2,6 +2,9 @@
|
|||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
using TIAM.Entities.Users;
|
||||
using TIAM.Entities.Products;
|
||||
using AyCode.Database.ModelBuilders.Users;
|
||||
using TIAM.Entities.Addresses;
|
||||
using TIAM.Entities.Profiles;
|
||||
|
||||
namespace TIAM.Database.ModelBuilders.Products;
|
||||
|
||||
|
|
@ -26,6 +29,8 @@ public static class ProductEntityTypeBuilderExtensions
|
|||
|
||||
public static void BuildProductToServiceProviderRelation(this EntityTypeBuilder<Product> modelBuilder, bool autoInclude = true)
|
||||
{
|
||||
//modelBuilder.BuildEntityToServiceProviderRelation
|
||||
|
||||
modelBuilder
|
||||
.HasOne(x => x.ServiceProvider)
|
||||
.WithMany(x => x.Products)
|
||||
|
|
@ -38,7 +43,8 @@ public static class ProductEntityTypeBuilderExtensions
|
|||
{
|
||||
//modelBuilder.HasOne(x => x.Profile)
|
||||
|
||||
modelBuilder.Navigation(e => e.Profile).AutoInclude(autoInclude);
|
||||
modelBuilder.BuildEntityToProfileRelation<Product, Profile>();
|
||||
//modelBuilder.Navigation(e => e.Profile).AutoInclude(autoInclude);
|
||||
}
|
||||
|
||||
#endregion Product
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ using AyCode.Database.ModelBuilders.Users;
|
|||
using Microsoft.EntityFrameworkCore.Metadata.Builders;
|
||||
using TIAM.Database.ModelBuilders.Users;
|
||||
using TIAM.Entities.Products;
|
||||
using TIAM.Entities.Profiles;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Database.ModelBuilders.Products;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ using TIAM.Entities.Addresses;
|
|||
|
||||
namespace TIAM.Entities.Profiles;
|
||||
|
||||
public interface IProfile<TAddress> : IAcProfile<TAddress>, IProfileDto where TAddress : class, IAddress
|
||||
public interface IProfile<TAddress> : IAcProfile<TAddress>, IProfileDto<TAddress> where TAddress : class, IAddress
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -1,8 +1,13 @@
|
|||
using AyCode.Interfaces.Profiles.Dtos;
|
||||
using TIAM.Entities.Addresses;
|
||||
|
||||
namespace TIAM.Entities.Profiles;
|
||||
|
||||
public interface IProfileDto : IAcProfileDtoBase
|
||||
{
|
||||
}
|
||||
|
||||
public interface IProfileDto<TAddress> : IProfileDto, IAcProfileDtoBase<TAddress> where TAddress : class, IAddressDto
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -5,6 +5,7 @@ using AyCode.Interfaces;
|
|||
using AyCode.Interfaces.Entities;
|
||||
using AyCode.Interfaces.TimeStampInfo;
|
||||
using AyCode.Interfaces.Users;
|
||||
using TIAM.Entities.Addresses;
|
||||
using TIAM.Entities.Products;
|
||||
using TIAM.Entities.Profiles;
|
||||
using TIAM.Entities.Users;
|
||||
|
|
@ -12,7 +13,7 @@ using TIAM.Entities.Users;
|
|||
namespace TIAM.Entities.ServiceProviders;
|
||||
|
||||
[Table("ServiceProviders")]
|
||||
public class Company : AcCompany<User, UserToCompany, Profile>, ICompany<User, UserToCompany, Profile>
|
||||
public class Company : AcCompany<User, UserToCompany, Profile, Address>, ICompany
|
||||
{
|
||||
public virtual List<Product> Products { get; } = new();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,12 @@
|
|||
using AyCode.Interfaces.ServiceProviders;
|
||||
using TIAM.Entities.Addresses;
|
||||
using TIAM.Entities.Products;
|
||||
using TIAM.Entities.Profiles;
|
||||
using TIAM.Entities.Users;
|
||||
|
||||
namespace TIAM.Entities.ServiceProviders;
|
||||
|
||||
public interface ICompany<TUser, TIUserToServiceProvider, TProfile> : IAcCompany<TUser, TIUserToServiceProvider, TProfile>, ICompanyBase
|
||||
where TUser : class, IUserBase
|
||||
where TIUserToServiceProvider : class, IUserToCompanyBase
|
||||
where TProfile : class, IProfileDto
|
||||
public interface ICompany : IAcCompany<User, UserToCompany, Profile, Address>, ICompanyBase
|
||||
{
|
||||
public List<Product> Products { get; }
|
||||
}
|
||||
|
|
@ -6,7 +6,7 @@ using TIAM.Entities.ServiceProviders;
|
|||
|
||||
namespace TIAM.Entities.Users;
|
||||
|
||||
public interface IUser : IAcUser<Profile, Company, UserToCompany, Address>, IUserDto<Profile, Company, UserToCompany, Address>, IUserBase
|
||||
public interface IUser : IAcUser<Profile, Company, UserToCompany, Address>, IUserDto<Profile, Company, UserToCompany>, IUserBase
|
||||
{
|
||||
public List<Product> Products { get; }
|
||||
|
||||
|
|
|
|||
|
|
@ -10,9 +10,8 @@ using TIAM.Entities.ServiceProviders;
|
|||
|
||||
namespace TIAM.Entities.Users;
|
||||
|
||||
public interface IUserDto<TProfile, TCompany, TUserToServiceProvider, TProfileAddress> : IAcUserDtoBase<TProfile, TCompany, TUserToServiceProvider, TProfileAddress>
|
||||
where TProfile : class, IProfile<TProfileAddress>
|
||||
public interface IUserDto<TProfile, TCompany, TUserToServiceProvider> : IAcUserDtoBase<TProfile, TCompany, TUserToServiceProvider>
|
||||
where TProfile : class, IProfileDto
|
||||
where TCompany : class, ICompanyBase
|
||||
where TUserToServiceProvider : class, IUserToCompanyBase
|
||||
where TProfileAddress : class, IAddress
|
||||
{ }
|
||||
|
|
@ -14,7 +14,7 @@ using TIAM.Entities.ServiceProviders;
|
|||
namespace TIAM.Entities.Users
|
||||
{
|
||||
[Table("Users")]
|
||||
public class User : AcUser<Profile, Company, UserToCompany, Address>, IUser
|
||||
public class User : AcUser<Profile, Company, UserToCompany, Address>, IUser, IUserDtoDetail
|
||||
{
|
||||
public virtual List<Product> Products { get; } = new();
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,14 @@
|
|||
using TIAM.Entities.Profiles;
|
||||
using AyCode.Interfaces.Profiles.Dtos;
|
||||
using TIAM.Entities.Addresses;
|
||||
using TIAM.Entities.Profiles;
|
||||
|
||||
namespace TIAM.Models.Dtos.Profiles;
|
||||
|
||||
public class ProfileDto<TAddress> : ProfileDto, IProfileDto<TAddress> where TAddress : class, IAddressDto
|
||||
{
|
||||
public TAddress Address { get; set; }
|
||||
}
|
||||
|
||||
public class ProfileDto : IProfileDto //TODO: AcProfileDtoBase - J.
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ using TIAM.Entities.Users;
|
|||
|
||||
namespace TIAM.Models.Dtos.Users;
|
||||
|
||||
public class UserDto : IUserDto<Profile, Company, UserToCompany, Address>
|
||||
public class UserDto : IUserDto<Profile, Company, UserToCompany>
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ using TIAM.Models.Dtos.Profiles;
|
|||
|
||||
namespace TIAM.Models.Dtos.Users;
|
||||
|
||||
public class UserModelDto : AcUserModelDtoBase<UserDto, Profile, ProfileDto, Company, UserToCompany, Address>, IProductsRelation, IUserModelDtoMinBase
|
||||
public class UserModelDto : AcUserModelDtoBase<UserDto, Profile, Company, UserToCompany>, IProductsRelation, IUserModelDtoMinBase
|
||||
{
|
||||
public List<UserProductMapping> UserProductMappings { get; set; }
|
||||
public List<Product> Products { get; set; }
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ using TIAM.Models.Dtos.Profiles;
|
|||
|
||||
namespace TIAM.Models.Dtos.Users
|
||||
{
|
||||
public class UserModelDtoDetail : AcUserModelDtoDetailBase<UserDtoDetail, Profile, ProfileDto, Company, UserToCompany, Address>, IProductsRelation, IUserModelDtoMinBase
|
||||
public class UserModelDtoDetail : AcUserModelDtoDetailBase<UserDtoDetail, Profile, Company, UserToCompany, Address>, IProductsRelation, IUserModelDtoMinBase
|
||||
{
|
||||
public List<UserProductMapping> UserProductMappings { get; set; }
|
||||
public List<Product> Products { get; set; }
|
||||
|
|
|
|||
|
|
@ -17,4 +17,5 @@ public class SignalRTags : AcSignalRTags
|
|||
public const int GetCompaniesAsync = 10;
|
||||
public const int UpdateCompanyAsync = 11;
|
||||
public const int CreateCompanyAsync = 12;
|
||||
public const int DeleteCompanyAsync = 13;
|
||||
}
|
||||
|
|
@ -14,7 +14,7 @@ else
|
|||
@foreach (var dest in Users)
|
||||
{
|
||||
<p>
|
||||
@(dest.Profile.Name.IsNullOrWhiteSpace() ? dest.Id.ToString() : dest.Profile.Name)
|
||||
@(dest.ProfileDto.Name.IsNullOrWhiteSpace() ? dest.Id.ToString() : dest.ProfileDto.Name)
|
||||
</p>
|
||||
}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
@page "/user/companies"
|
||||
@using AyCode.Core.Helpers
|
||||
@using AyCode.Utils.Extensions
|
||||
@using BlazorAnimation
|
||||
@using TIAM.Core.Enums
|
||||
@using TIAM.Entities.ServiceProviders
|
||||
|
|
@ -20,6 +19,7 @@
|
|||
@using MessagePack
|
||||
@using MessagePack.Resolvers
|
||||
@using AyCode.Core.Extensions;
|
||||
@using AyCode.Utils.Extensions
|
||||
@layout AdminLayout
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject IStringLocalizer<TIAMResources> localizer
|
||||
|
|
@ -109,16 +109,16 @@
|
|||
<CellDisplayTemplate>
|
||||
@{
|
||||
var keyField = context.Value as Guid?;
|
||||
|
||||
var keyItem = (Company)context.DataItem;
|
||||
string buttonText = "Set owner";
|
||||
if(keyField.IsNullOrEmpty())
|
||||
{
|
||||
<DxButton Click="() => SetOwnerPopup(keyItem)" Text="@buttonText" RenderStyle="ButtonRenderStyle.Primary" />
|
||||
|
||||
if (keyField.IsNullOrEmpty())
|
||||
{
|
||||
string buttonText = "Set owner";
|
||||
<DxButton Click="() => SetOwnerPopup(keyItem)" Text="@buttonText" RenderStyle="ButtonRenderStyle.Primary"/>
|
||||
}
|
||||
else
|
||||
{
|
||||
<span>@keyField</span>
|
||||
{
|
||||
<span>@keyField</span>
|
||||
}
|
||||
}
|
||||
</CellDisplayTemplate>
|
||||
|
|
@ -329,9 +329,14 @@
|
|||
|
||||
async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e)
|
||||
{
|
||||
var company = (Company)e.DataItem;
|
||||
//await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem);
|
||||
//remove orderData from orderData array
|
||||
_logger.Info("orderData deleted");
|
||||
_logger.Info($"companyData deleting; companyId: {company.Id}");
|
||||
|
||||
var response = await devAdminSignalClient.PostDataAsync(SignalRTags.DeleteCompanyAsync, company);
|
||||
|
||||
//resultCompany = await serviceProviderDataService.DeleteServiceProviderAsync(company.Id);
|
||||
//await UpdateDataAsync();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
@using AyCode.Core.Loggers
|
||||
@using AyCode.Services.Loggers
|
||||
@using TIAM.Core.Loggers
|
||||
@using TIAM.Entities.Addresses
|
||||
@layout AdminLayout
|
||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||
@inject IStringLocalizer<TIAMResources> Localizer
|
||||
|
|
@ -247,7 +248,7 @@
|
|||
PhoneNumber = ""
|
||||
};
|
||||
|
||||
userEditModel.Profile = new ProfileDto
|
||||
userEditModel.ProfileDto = new TIAM.Entities.Profiles.Profile
|
||||
{
|
||||
Name = "New user"
|
||||
};
|
||||
|
|
@ -314,7 +315,7 @@
|
|||
async Task UpdateDataAsync()
|
||||
{
|
||||
//refresh grid
|
||||
UserData = (await UserDataService.GetUsersWithDetailsAsync()).OrderBy(x => x.Profile?.Name).ToList();
|
||||
UserData = (await UserDataService.GetUsersWithDetailsAsync()).OrderBy(x => x.ProfileDto?.Name).ToList();
|
||||
_logger.Info("orderData grid refreshed");
|
||||
}
|
||||
|
||||
|
|
@ -322,7 +323,7 @@
|
|||
{
|
||||
_logger = new LoggerClient<ManageUsers>(LogWriters.ToArray());
|
||||
|
||||
UserData = (await UserDataService.GetUsersWithDetailsAsync()).OrderBy(x => x.Profile?.Name).ToList();
|
||||
UserData = (await UserDataService.GetUsersWithDetailsAsync()).OrderBy(x => x.ProfileDto?.Name).ToList();
|
||||
base.OnInitialized();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -147,6 +147,9 @@ namespace TIAMSharedUI.Pages.User.SysAdmins
|
|||
{
|
||||
//remove orderData from orderData array
|
||||
_logger.Info("orderData deleted");
|
||||
|
||||
//var transferDestinationWizardModel = (TransferDestinationWizardModel)e.DataItem;
|
||||
//await TransferDataService.CreateTransferDestination(TransferDestinationWizardModel.CopyToTransferDestination(transferDestinationWizardModel));
|
||||
//await UpdateDataAsync();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ using Microsoft.AspNetCore.Mvc;
|
|||
using QRCoder;
|
||||
using System.Drawing;
|
||||
using System.Drawing.Imaging;
|
||||
using AyCode.Core.Extensions;
|
||||
using TIAM.Database.DataLayers.Admins;
|
||||
using TIAM.Entities.ServiceProviders;
|
||||
using TIAM.Entities.Users;
|
||||
|
|
@ -27,14 +28,14 @@ namespace TIAMWebApp.Server.Controllers
|
|||
[Route(APIUrls.CreateServiceProviderRouteName)]
|
||||
[Tags("In-Progress", "ServiceProvider")]
|
||||
[EndpointSummary("Create service provider")]
|
||||
public async Task<IActionResult> CreateServiceProvider([FromBody] ServiceProviderModel serializedServiceProviderModel)
|
||||
public async Task<string> CreateServiceProvider([FromBody] ServiceProviderModel serializedServiceProviderModel)
|
||||
{
|
||||
_logger.Info(@"CreateServiceProvider called");
|
||||
|
||||
//if (serializedServiceProviderModel.GetArrayLength() == 0)
|
||||
if (serializedServiceProviderModel == null)
|
||||
{
|
||||
return BadRequest("SerializedLoginModel is required");
|
||||
return string.Empty;//BadRequest("SerializedLoginModel is required").ToJson();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -50,10 +51,11 @@ namespace TIAMWebApp.Server.Controllers
|
|||
|
||||
//no owner set yet
|
||||
var ownerId = serviceProvider.OwnerId == Guid.Empty ? null : serviceProvider.OwnerId;
|
||||
ownerId = Guid.Parse("540271F6-C604-4C16-8160-D5A7CAFEDF00"); //TESZT - J.
|
||||
|
||||
if (name is null)
|
||||
{
|
||||
return BadRequest("Invalid request");
|
||||
return string.Empty;//BadRequest("Invalid request");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -72,19 +74,19 @@ namespace TIAMWebApp.Server.Controllers
|
|||
if (!result)
|
||||
{
|
||||
serviceProvider = null;
|
||||
return BadRequest(result);
|
||||
return string.Empty;//BadRequest(result);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
return Ok(toCreate);
|
||||
|
||||
return toCreate.ToJson();//Ok(toCreate);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
|
||||
return BadRequest();
|
||||
return string.Empty;//BadRequest();
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -113,13 +115,13 @@ namespace TIAMWebApp.Server.Controllers
|
|||
[AllowAnonymous]
|
||||
[HttpPost]
|
||||
[Route(APIUrls.UpdateServiceProviderRouteName)]
|
||||
public async Task<Company> UpdateServiceProvider(Company companyToModify)
|
||||
public async Task<string> UpdateServiceProvider(Company companyToModify)
|
||||
{
|
||||
_logger.Info($"UpdateServiceProvider called! + {companyToModify.Id}");
|
||||
|
||||
var result = await adminDal.UpdateServiceProviderAsync(companyToModify);
|
||||
var result = await adminDal.UpdateCompanyAsync(companyToModify);
|
||||
|
||||
return result ? companyToModify : null;
|
||||
return result ? companyToModify.ToJson() : string.Empty;
|
||||
}
|
||||
|
||||
//17.
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@ using Microsoft.AspNetCore.Server.Kestrel.Core;
|
|||
using Microsoft.AspNetCore.SignalR;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Microsoft.AspNetCore.ResponseCompression;
|
||||
using System.IO.Compression;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
|
|
@ -45,7 +47,7 @@ builder.Services.AddScoped<ServiceProviderAPIController>();
|
|||
builder.Services.AddScoped<TransferDataAPIController>();
|
||||
|
||||
|
||||
builder.Services.AddSignalR();//.AddMessagePackProtocol(options => options.SerializerOptions = MessagePackSerializerOptions.Standard.WithSecurity(MessagePackSecurity.UntrustedData));
|
||||
builder.Services.AddSignalR(options => options.MaximumReceiveMessageSize = 128 * 1024);//.AddMessagePackProtocol(options => options.SerializerOptions = MessagePackSerializerOptions.Standard.WithSecurity(MessagePackSecurity.UntrustedData));
|
||||
|
||||
builder.Services.AddCors(options =>
|
||||
{
|
||||
|
|
@ -146,6 +148,23 @@ builder.WebHost.ConfigureKestrel((context, options) =>
|
|||
});
|
||||
});
|
||||
|
||||
//builder.Services.AddResponseCompression(options =>
|
||||
//{
|
||||
// options.EnableForHttps = true;
|
||||
// options.Providers.Add<BrotliCompressionProvider>();
|
||||
// options.Providers.Add<GzipCompressionProvider>();
|
||||
//});
|
||||
|
||||
//builder.Services.Configure<BrotliCompressionProviderOptions>(options =>
|
||||
//{
|
||||
// options.Level = CompressionLevel.Optimal;
|
||||
//});
|
||||
|
||||
//builder.Services.Configure<GzipCompressionProviderOptions>(options =>
|
||||
//{
|
||||
// options.Level = CompressionLevel.Optimal;
|
||||
//});
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
// Configure the HTTP request pipeline.
|
||||
|
|
@ -178,7 +197,11 @@ app.MapRazorPages();
|
|||
app.MapControllers();
|
||||
app.MapBlazorHub();
|
||||
|
||||
//app.UseResponseCompression();
|
||||
//if (!app.Environment.IsDevelopment())
|
||||
{
|
||||
//app.UseResponseCompression();
|
||||
}
|
||||
|
||||
app.MapHub<SignalRHub>("/TiamChatHub");
|
||||
app.MapHub<LoggerSignalRHub>("/TiamLoggerHub");
|
||||
app.MapHub<DevAdminSignalRHub>("/DevAdminHub");
|
||||
|
|
|
|||
|
|
@ -85,10 +85,10 @@ public class DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController
|
|||
return;
|
||||
case SignalRTags.UpdateCompanyAsync:
|
||||
|
||||
var updaCompany = message!.MessagePackTo<SignalPostJsonDataMessage<Company>>().PostData;
|
||||
var updateCompany = message!.MessagePackTo<SignalPostJsonDataMessage<Company>>().PostData;
|
||||
|
||||
await serviceProviderAPIController.UpdateServiceProvider(updaCompany);
|
||||
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success, updaCompany), requestId);
|
||||
await serviceProviderAPIController.UpdateServiceProvider(updateCompany);
|
||||
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success, updateCompany), requestId);
|
||||
|
||||
return;
|
||||
|
||||
|
|
@ -100,6 +100,12 @@ public class DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController
|
|||
//await ResponseToCaller(messageTag, new SignalResponseMessage<string>(SignalResponseStatus.Success, createCompany), requestId);
|
||||
return;
|
||||
|
||||
case SignalRTags.DeleteCompanyAsync:
|
||||
var deleteCompany = message!.MessagePackTo<SignalPostJsonDataMessage<Company>>().PostData;
|
||||
|
||||
await adminDal.RemoveCompanyAsync(deleteCompany.Id);
|
||||
await ResponseToCaller(messageTag, new SignalResponseJsonMessage(SignalResponseStatus.Success), requestId);
|
||||
return;
|
||||
default:
|
||||
_logger.Error($"Server OnReceiveMessage; messageTag not found! messageTag: {messageTag}");
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ namespace TIAMWebApp.Shared.Application.Interfaces
|
|||
public Task GetPropertiesByOwnerIdAsync(Guid id, Action<Dictionary<Guid, string>?> callback);
|
||||
|
||||
//13. delete service provider
|
||||
public Task DeleteServiceProviderAsync(Guid serviceProviderId);
|
||||
public Task<bool> DeleteServiceProviderAsync(Guid serviceProviderId);
|
||||
|
||||
//14 Update service provider
|
||||
public Task<Company> UpdateServiceProviderAsync(Company serviceProvider);
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ namespace TIAMWebApp.Shared.Application.Models
|
|||
|
||||
public string Email => UserModelDto.UserDto.EmailAddress;
|
||||
public UserType UserType { get; set; }
|
||||
public string? UserName => UserModelDto?.Profile?.Name;
|
||||
public string? UserName => UserModelDto?.ProfileDto?.Name;
|
||||
public string DisplayName => string.IsNullOrWhiteSpace(UserName) ? UserId.ToString() : UserName;
|
||||
|
||||
public Dictionary<Guid, string>? HasProperties { get; set; }
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ namespace TIAMWebApp.Shared.Application.Services
|
|||
}
|
||||
|
||||
//13.
|
||||
public Task DeleteServiceProviderAsync(Guid serviceProviderId)
|
||||
public Task<bool> DeleteServiceProviderAsync(Guid serviceProviderId)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue