Sumup phase 2

This commit is contained in:
Adam 2024-05-29 16:14:15 +02:00
commit 88c7bdf760
40 changed files with 235 additions and 126 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,5 @@
namespace TIAM.Database.ModelBuilders.Companies;
public static class CompanyEntityTypeBuilderExtensions
{
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -84,7 +84,7 @@ namespace TIAMWebApp.Shared.Application.Services
}
//13.
public Task DeleteServiceProviderAsync(Guid serviceProviderId)
public Task<bool> DeleteServiceProviderAsync(Guid serviceProviderId)
{
throw new NotImplementedException();
}