diff --git a/TIAM.Database/DataLayers/Admins/AdminDal.cs b/TIAM.Database/DataLayers/Admins/AdminDal.cs index d50e9f52..77032437 100644 --- a/TIAM.Database/DataLayers/Admins/AdminDal.cs +++ b/TIAM.Database/DataLayers/Admins/AdminDal.cs @@ -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 CreateServiceProviderAsync(Company serviceProvider) => TransactionAsync(ctx => ctx.AddServiceProvider(serviceProvider)); + public Task CreateServiceProviderAsync(Company serviceProvider) => TransactionAsync(ctx => ctx.AddServiceProvider(serviceProvider)); //public bool CreateProductAsync(Product product) //{ @@ -237,7 +238,7 @@ namespace TIAM.Database.DataLayers.Admins public Task 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 UpdateServiceProviderAsync(Company company) => TransactionAsync(ctx => ctx.UpdateServiceProvider(company)); + public Task UpdateCompanyAsync(Company company) => TransactionAsync(ctx => ctx.UpdateServiceProvider(company)); //13. (IserviceProviderDataService) delete service provider - public Task DeleteServiceProviderAsync(Guid id) => TransactionAsync(ctx => ctx.RemoveServiceProvider(id)); + public Task RemoveCompanyAsync(Guid id) => TransactionAsync(ctx => ctx.RemoveServiceProvider(id)); + public Task RemoveCompanyAsync(Company company) => TransactionAsync(ctx => ctx.RemoveServiceProvider(company)); //17. (IServiceProviderDataService) get service provider by ownerId diff --git a/TIAM.Database/DbContexts/Admins/AdminDbContext.cs b/TIAM.Database/DbContexts/Admins/AdminDbContext.cs index 593293fb..9b6a1bac 100644 --- a/TIAM.Database/DbContexts/Admins/AdminDbContext.cs +++ b/TIAM.Database/DbContexts/Admins/AdminDbContext.cs @@ -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 Users { get; set; } + public DbSet Profiles { get; set; } + public DbSet Companies { get; set; } + public DbSet UserTokens { get; set; } + public DbSet TransferDestinations { get; set; } public DbSet TransferDestinationToProducts { get; set; } public DbSet Transfers { get; set; } public DbSet TransferToDrivers { get; set; } public DbSet Cars { get; set; } - public DbSet ServiceProviders { get; set; } + //public DbSet ServiceProviders { get; set; } public DbSet Products { get; set; } public DbSet UserProductMappings { get; set; } public DbSet PermissionGroups { get; set; } @@ -79,6 +85,8 @@ namespace TIAM.Database.DbContexts.Admins new EmailMessageEntityTypeDefaultConfigurations().Configure(modelBuilder.Entity()); + new CompanyEntityTypeDefaultConfiguration().Configure(modelBuilder.Entity()); + modelBuilder.Entity().Navigation(e => e.Profile).AutoInclude(true); modelBuilder.Entity().HasOne(x => x.Profile).WithOne().OnDelete(DeleteBehavior.Cascade); diff --git a/TIAM.Database/DbContexts/Admins/AdminDbContextExtension.cs b/TIAM.Database/DbContexts/Admins/AdminDbContextExtension.cs index e76ba82d..c27a6c63 100644 --- a/TIAM.Database/DbContexts/Admins/AdminDbContextExtension.cs +++ b/TIAM.Database/DbContexts/Admins/AdminDbContextExtension.cs @@ -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; } } diff --git a/TIAM.Database/DbContexts/Admins/IAdminDbContext.cs b/TIAM.Database/DbContexts/Admins/IAdminDbContext.cs index 269a8e01..864cc65d 100644 --- a/TIAM.Database/DbContexts/Admins/IAdminDbContext.cs +++ b/TIAM.Database/DbContexts/Admins/IAdminDbContext.cs @@ -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, + IPermissionsDbSetContext, ITransferDestinationDbSet, ITransferDbSet, IEmailMessageDbSet { } \ No newline at end of file diff --git a/TIAM.Database/DbContexts/ServiceProviders/IServiceProviderDbContext.cs b/TIAM.Database/DbContexts/ServiceProviders/IServiceProviderDbContext.cs index 400e9367..a657557c 100644 --- a/TIAM.Database/DbContexts/ServiceProviders/IServiceProviderDbContext.cs +++ b/TIAM.Database/DbContexts/ServiceProviders/IServiceProviderDbContext.cs @@ -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 { } \ No newline at end of file diff --git a/TIAM.Database/DbContexts/ServiceProviders/ServiceProviderDbContext.cs b/TIAM.Database/DbContexts/ServiceProviders/ServiceProviderDbContext.cs index 563446d0..2c601fd6 100644 --- a/TIAM.Database/DbContexts/ServiceProviders/ServiceProviderDbContext.cs +++ b/TIAM.Database/DbContexts/ServiceProviders/ServiceProviderDbContext.cs @@ -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 TransferDestinations { get; set; } public DbSet TransferDestinationToProducts { get; set; } + public DbSet Companies { get; set; } + public DbSet Profiles { get; set; } + public DbSet Users { get; set; } public DbSet UserProductMappings { get; set; } diff --git a/TIAM.Database/DbContexts/Users/UserDbContext.cs b/TIAM.Database/DbContexts/Users/UserDbContext.cs index 198b0397..0adea911 100644 --- a/TIAM.Database/DbContexts/Users/UserDbContext.cs +++ b/TIAM.Database/DbContexts/Users/UserDbContext.cs @@ -35,6 +35,7 @@ namespace TIAM.Database.DbContexts.Users public DbSet
Addresses { get; set; } public DbSet Profiles { get; set; } public DbSet EmailMessages { get; set; } + public DbSet Companies { get; set; } public DbSet Transfers { get; set; } public DbSet TransferDestinationToProducts { get; set; } @@ -99,5 +100,6 @@ namespace TIAM.Database.DbContexts.Users // //builderUserProductJsonDetail.OwnsMany(userProductJsonDetail => userProductJsonDetail.Cars2); // }); } + } } diff --git a/TIAM.Database/DbSets/ServiceProvider/CompanyDbSetExtensions.cs b/TIAM.Database/DbSets/ServiceProvider/CompanyDbSetExtensions.cs new file mode 100644 index 00000000..449e1a47 --- /dev/null +++ b/TIAM.Database/DbSets/ServiceProvider/CompanyDbSetExtensions.cs @@ -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 GetServiceProviders(this ICompanyDbSet ctx) +// => ctx.Companies; + +// public static List GetServiceProvidersByOwnerId(this ICompanyDbSet ctx, Guid ownerId) +// => ctx.Companies.Where(x => x.OwnerId == ownerId).ToList(); +//} \ No newline at end of file diff --git a/TIAM.Database/DbSets/ServiceProvider/ICompanyDbSet.cs b/TIAM.Database/DbSets/ServiceProvider/ICompanyDbSet.cs new file mode 100644 index 00000000..43e531f6 --- /dev/null +++ b/TIAM.Database/DbSets/ServiceProvider/ICompanyDbSet.cs @@ -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 +{ +} \ No newline at end of file diff --git a/TIAM.Database/DbSets/ServiceProvider/IServiceProviderDbSet.cs b/TIAM.Database/DbSets/ServiceProvider/IServiceProviderDbSet.cs deleted file mode 100644 index b7c884be..00000000 --- a/TIAM.Database/DbSets/ServiceProvider/IServiceProviderDbSet.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Microsoft.EntityFrameworkCore; -using TIAM.Entities.ServiceProviders; - -namespace TIAM.Database.DbSets.ServiceProvider; - -public interface IServiceProviderDbSet -{ - public DbSet ServiceProviders { get; set; } -} \ No newline at end of file diff --git a/TIAM.Database/DbSets/ServiceProvider/ServiceProviderDbSetExtensions.cs b/TIAM.Database/DbSets/ServiceProvider/ServiceProviderDbSetExtensions.cs deleted file mode 100644 index 3a984978..00000000 --- a/TIAM.Database/DbSets/ServiceProvider/ServiceProviderDbSetExtensions.cs +++ /dev/null @@ -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 GetServiceProviders(this IServiceProviderDbSet ctx) - => ctx.ServiceProviders; - - public static List GetServiceProvidersByOwnerId(this IServiceProviderDbSet ctx, Guid ownerId) - => ctx.ServiceProviders.Where(x => x.OwnerId == ownerId).ToList(); - - - -} \ No newline at end of file diff --git a/TIAM.Database/DbSets/Users/IUserDbSet.cs b/TIAM.Database/DbSets/Users/IUserDbSet.cs index 95955b40..d807ce43 100644 --- a/TIAM.Database/DbSets/Users/IUserDbSet.cs +++ b/TIAM.Database/DbSets/Users/IUserDbSet.cs @@ -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 +public interface IUserDbSet : IAcUserDbSetBase { } \ No newline at end of file diff --git a/TIAM.Database/ModelBuilders/Companies/CompanyEntityTypeBuilderExtensions.cs b/TIAM.Database/ModelBuilders/Companies/CompanyEntityTypeBuilderExtensions.cs new file mode 100644 index 00000000..951e65bb --- /dev/null +++ b/TIAM.Database/ModelBuilders/Companies/CompanyEntityTypeBuilderExtensions.cs @@ -0,0 +1,5 @@ +namespace TIAM.Database.ModelBuilders.Companies; + +public static class CompanyEntityTypeBuilderExtensions +{ +} \ No newline at end of file diff --git a/TIAM.Database/ModelBuilders/Companies/CompanyEntityTypeDefaultConfiguration.cs b/TIAM.Database/ModelBuilders/Companies/CompanyEntityTypeDefaultConfiguration.cs new file mode 100644 index 00000000..ecc85f39 --- /dev/null +++ b/TIAM.Database/ModelBuilders/Companies/CompanyEntityTypeDefaultConfiguration.cs @@ -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 //IAcEntityTypeConfiguration// +{ + public override void Configure(EntityTypeBuilder builder) + { + base.Configure(builder); + + //builder + } +} + diff --git a/TIAM.Database/ModelBuilders/Products/ProductEntityTypeBuilderExtensions.cs b/TIAM.Database/ModelBuilders/Products/ProductEntityTypeBuilderExtensions.cs index efdef73f..4e7acdac 100644 --- a/TIAM.Database/ModelBuilders/Products/ProductEntityTypeBuilderExtensions.cs +++ b/TIAM.Database/ModelBuilders/Products/ProductEntityTypeBuilderExtensions.cs @@ -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 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(); + //modelBuilder.Navigation(e => e.Profile).AutoInclude(autoInclude); } #endregion Product diff --git a/TIAM.Database/ModelBuilders/Products/ProductEntityTypeConfigurations.cs b/TIAM.Database/ModelBuilders/Products/ProductEntityTypeConfigurations.cs index f473502e..cdbb16ea 100644 --- a/TIAM.Database/ModelBuilders/Products/ProductEntityTypeConfigurations.cs +++ b/TIAM.Database/ModelBuilders/Products/ProductEntityTypeConfigurations.cs @@ -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; diff --git a/TIAM.Entities/ServiceProviders/Company.cs b/TIAM.Entities/ServiceProviders/Company.cs index cbfc1a38..c4d891a6 100644 --- a/TIAM.Entities/ServiceProviders/Company.cs +++ b/TIAM.Entities/ServiceProviders/Company.cs @@ -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, ICompany +public class Company : AcCompany, ICompany { public virtual List Products { get; } = new(); diff --git a/TIAM.Entities/ServiceProviders/ICompany.cs b/TIAM.Entities/ServiceProviders/ICompany.cs index b52dd5b4..fe797794 100644 --- a/TIAM.Entities/ServiceProviders/ICompany.cs +++ b/TIAM.Entities/ServiceProviders/ICompany.cs @@ -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 : IAcCompany, ICompanyBase - where TUser : class, IUserBase - where TIUserToServiceProvider : class, IUserToCompanyBase - where TProfile : class, IProfileDto +public interface ICompany : IAcCompany, ICompanyBase { public List Products { get; } } \ No newline at end of file diff --git a/TIAM.Services/SignalRTags.cs b/TIAM.Services/SignalRTags.cs index d41fa120..6011991b 100644 --- a/TIAM.Services/SignalRTags.cs +++ b/TIAM.Services/SignalRTags.cs @@ -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; } \ No newline at end of file diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor index 8f33d017..fb4ca71f 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor @@ -19,6 +19,7 @@ @using MessagePack @using MessagePack.Resolvers @using AyCode.Core.Extensions; +@using AyCode.Utils.Extensions @layout AdminLayout @inject IEnumerable LogWriters @inject IStringLocalizer localizer @@ -101,12 +102,17 @@ @{ - var keyField = context.Value; + var keyField = context.Value as Guid?; var keyItem = (Company)context.DataItem; - string buttonText = "Set owner"; - if(keyField == null) - { - + + if (keyField.IsNullOrEmpty()) + { + string buttonText = "Set owner"; + + } + else + { + @keyField } } @@ -313,9 +319,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(); } diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor index 3aa1fb61..fe6a3a11 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor +++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageUsers.razor @@ -244,7 +244,7 @@ PhoneNumber = "" }; - userEditModel.Profile = new ProfileDto + userEditModel.Profile = new TIAM.Entities.Profiles.Profile { Name = "New user" }; diff --git a/TIAMSharedUI/Pages/User/SysAdmins/TransferDestinations.razor.cs b/TIAMSharedUI/Pages/User/SysAdmins/TransferDestinations.razor.cs index 8ab124ae..6bd7fe95 100644 --- a/TIAMSharedUI/Pages/User/SysAdmins/TransferDestinations.razor.cs +++ b/TIAMSharedUI/Pages/User/SysAdmins/TransferDestinations.razor.cs @@ -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(); } diff --git a/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs b/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs index c18a023a..0f4236e1 100644 --- a/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs +++ b/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs @@ -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 CreateServiceProvider([FromBody] ServiceProviderModel serializedServiceProviderModel) + public async Task 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 UpdateServiceProvider(Company companyToModify) + public async Task 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. diff --git a/TIAMWebApp/Server/Program.cs b/TIAMWebApp/Server/Program.cs index 71c8504b..0ebd8edb 100644 --- a/TIAMWebApp/Server/Program.cs +++ b/TIAMWebApp/Server/Program.cs @@ -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(); builder.Services.AddScoped(); -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(); +// options.Providers.Add(); +//}); + +//builder.Services.Configure(options => +//{ +// options.Level = CompressionLevel.Optimal; +//}); + +//builder.Services.Configure(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("/TiamChatHub"); app.MapHub("/TiamLoggerHub"); app.MapHub("/DevAdminHub"); diff --git a/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs b/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs index b16fe6ac..c3bc3e7c 100644 --- a/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs +++ b/TIAMWebApp/Server/Services/DevAdminSignalRhub.cs @@ -85,10 +85,10 @@ public class DevAdminSignalRHub(AdminDal adminDal, ServiceProviderAPIController return; case SignalRTags.UpdateCompanyAsync: - var updaCompany = message!.MessagePackTo>().PostData; + var updateCompany = message!.MessagePackTo>().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(SignalResponseStatus.Success, createCompany), requestId); return; + case SignalRTags.DeleteCompanyAsync: + var deleteCompany = message!.MessagePackTo>().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; diff --git a/TIAMWebApp/Shared/Interfaces/IServiceProviderDataService.cs b/TIAMWebApp/Shared/Interfaces/IServiceProviderDataService.cs index 6b916623..c6550cf9 100644 --- a/TIAMWebApp/Shared/Interfaces/IServiceProviderDataService.cs +++ b/TIAMWebApp/Shared/Interfaces/IServiceProviderDataService.cs @@ -18,7 +18,7 @@ namespace TIAMWebApp.Shared.Application.Interfaces public Task GetPropertiesByOwnerIdAsync(Guid id, Action?> callback); //13. delete service provider - public Task DeleteServiceProviderAsync(Guid serviceProviderId); + public Task DeleteServiceProviderAsync(Guid serviceProviderId); //14 Update service provider public Task UpdateServiceProviderAsync(Company serviceProvider); diff --git a/TIAMWebApp/Shared/Services/ServiceProviderDataService.cs b/TIAMWebApp/Shared/Services/ServiceProviderDataService.cs index 9a1724db..c5647bfe 100644 --- a/TIAMWebApp/Shared/Services/ServiceProviderDataService.cs +++ b/TIAMWebApp/Shared/Services/ServiceProviderDataService.cs @@ -84,7 +84,7 @@ namespace TIAMWebApp.Shared.Application.Services } //13. - public Task DeleteServiceProviderAsync(Guid serviceProviderId) + public Task DeleteServiceProviderAsync(Guid serviceProviderId) { throw new NotImplementedException(); }