diff --git a/TIAM.Database.Test/AdminDalTest.cs b/TIAM.Database.Test/AdminDalTest.cs index 38b4e876..2bfdee32 100644 --- a/TIAM.Database.Test/AdminDalTest.cs +++ b/TIAM.Database.Test/AdminDalTest.cs @@ -378,7 +378,8 @@ namespace TIAM.Database.Test ToAddress = toAddress, PassengerCount = 3, Price = 20000, - ContactName = "xyztest", + FirstName = "xyzFirstName_Test", + LastName = "xyzLastName_Test", ContactEmail = "xyztest@gmail.hu", ContactPhone = "+3671542771", TransferStatusType = TransferStatusType.OrderConfirmed, diff --git a/TIAM.Database/DataLayers/Admins/AdminDal.cs b/TIAM.Database/DataLayers/Admins/AdminDal.cs index afa66892..8de6bc6d 100644 --- a/TIAM.Database/DataLayers/Admins/AdminDal.cs +++ b/TIAM.Database/DataLayers/Admins/AdminDal.cs @@ -103,7 +103,7 @@ namespace TIAM.Database.DataLayers.Admins public Task AddUser(User user) => TransactionAsync(ctx => ctx.AddUser(user)); - public Task AddUser(User user, string profileName, Address address) + public Task AddUser(User user, string profileName, Address address, string? firstName = null, string? lastName = null) { return TransactionAsync(ctx => { @@ -111,6 +111,8 @@ namespace TIAM.Database.DataLayers.Admins profile.Id = Guid.NewGuid(); profile.Name = profileName; + profile.FirstName = firstName; + profile.LastName = lastName; profile.Address = address; user.Profile= profile; diff --git a/TIAM.Entities/Transfers/ITransfeDestinationPrices.cs b/TIAM.Entities/Transfers/ITransfeDestinationPrices.cs index f565f0c3..fc297c03 100644 --- a/TIAM.Entities/Transfers/ITransfeDestinationPrices.cs +++ b/TIAM.Entities/Transfers/ITransfeDestinationPrices.cs @@ -1,4 +1,6 @@ -namespace TIAM.Entities.Transfers; +using TIAM.Core.Enums; + +namespace TIAM.Entities.Transfers; public interface ITransfeDestinationPrices { @@ -8,9 +10,10 @@ public interface ITransfeDestinationPrices public double? Price3 { get; set; } public double ProductCommis { get; set; } - public double? ExtraPrice { get; set; } + + //public double? ExtraPrice { get; set; } /// /// Kihajtás v. behajtás az ExtraPrice! Ha null, akkor mindkettő... /// - public bool? ExtraPriceType { get; set; } + //public TransferExtraPriceType ExtraPriceType { get; set; } } \ No newline at end of file diff --git a/TIAM.Entities/Transfers/Transfer.cs b/TIAM.Entities/Transfers/Transfer.cs index 4e7900f7..6238d728 100644 --- a/TIAM.Entities/Transfers/Transfer.cs +++ b/TIAM.Entities/Transfers/Transfer.cs @@ -3,14 +3,16 @@ using AyCode.Interfaces.TimeStampInfo; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; using System.Dynamic; +using AyCode.Interfaces.Profiles.Dtos; using TIAM.Core.Enums; using TIAM.Entities.Products; +using TIAM.Entities.Profiles; using TIAM.Entities.Users; namespace TIAM.Entities.Transfers; [Table(nameof(Transfer))] -public class Transfer: IEntityGuid, ITimeStampInfo, IProductForeignKey, IUserForeignKey +public class Transfer: IEntityGuid, IAcFullName, ITimeStampInfo, IProductForeignKey, IUserForeignKey { [Key, DatabaseGenerated(DatabaseGeneratedOption.None)] public Guid Id { get; set; } @@ -33,12 +35,16 @@ public class Transfer: IEntityGuid, ITimeStampInfo, IProductForeignKey, I public bool Payed { get; set; } public double? Price { get; set; } public byte PassengerCount { get; set; } - + public byte LuggageCount { get; set; } + [MaxLength(50)] public string? FlightNumber { get; set; } [MaxLength(200)] public string FromAddress { get; set; } [MaxLength(200)] public string? ToAddress { get; set; } - public string ContactName {get;set; } + public string? FullName => Profile.GetFullName(FirstName, LastName); + [Column("ContactFirstName")]public string? FirstName { get; set; } + [Column("ContactLastName")]public string? LastName { get; set; } + public string ContactEmail {get;set; } public string ContactPhone {get;set; } diff --git a/TIAM.Entities/Transfers/TransferDestination.cs b/TIAM.Entities/Transfers/TransferDestination.cs index 6f70fd77..d955a70c 100644 --- a/TIAM.Entities/Transfers/TransferDestination.cs +++ b/TIAM.Entities/Transfers/TransferDestination.cs @@ -29,11 +29,11 @@ namespace TIAM.Entities.Transfers public double? Price3 { get; set; } public double ProductCommis { get;set; } - public double? ExtraPrice { get; set; } - /// - /// Kihajtás v. behajtás az ExtraPrice! Ha null, akkor mindkettő... - /// - public bool? ExtraPriceType { get; set; } + public double ExtraPrice { get; set; } + ///// + ///// Kihajtás v. behajtás az ExtraPrice! Ha null, akkor mindkettő... + ///// + //public TransferExtraPriceType ExtraPriceType { get; set; } //TEMPORARY!!! public string? AddressString { get; set; } diff --git a/TIAM.Entities/Transfers/TransferDestinationToProduct.cs b/TIAM.Entities/Transfers/TransferDestinationToProduct.cs index 3eb2a308..449bbdc4 100644 --- a/TIAM.Entities/Transfers/TransferDestinationToProduct.cs +++ b/TIAM.Entities/Transfers/TransferDestinationToProduct.cs @@ -24,11 +24,12 @@ namespace TIAM.Entities.Transfers public double? Price3 { get; set; } public double ProductCommis { get;set; } - public double? ExtraPrice { get; set; } - /// - /// Kihajtás v. behajtás az ExtraPrice! Ha null, akkor mindkettő... - /// - public bool? ExtraPriceType { get; set; } + + //public double? ExtraPrice { get; set; } + ///// + ///// Kihajtás v. behajtás az ExtraPrice! Ha null, akkor mindkettő... + ///// + //public TransferExtraPriceType ExtraPriceType { get; set; } public DateTime Created { get; set; } public DateTime Modified { get; set; } diff --git a/TIAM.Models/Dtos/Profiles/ProfileDto.cs b/TIAM.Models/Dtos/Profiles/ProfileDto.cs index 58443ccd..bee0afab 100644 --- a/TIAM.Models/Dtos/Profiles/ProfileDto.cs +++ b/TIAM.Models/Dtos/Profiles/ProfileDto.cs @@ -2,13 +2,18 @@ namespace TIAM.Models.Dtos.Profiles; -public class ProfileDto : IProfileDto +public class ProfileDto : IProfileDto //TODO: AcProfileDtoBase - J. { public Guid Id { get; set; } public Guid? UserMediaId { get; set; } public Guid AddressId { get; set; } public string Name { get; set; } + public string? FullName => Profile.GetFullName(FirstName, LastName); + public string? FirstName { get; set; } + public string? LastName { get; set; } + //public string NickName { get; set; } + public string? Description { get; set; } public string? ThumbnailUrl { get; set; } diff --git a/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs b/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs index 65536470..f0024123 100644 --- a/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs +++ b/TIAMWebApp/Server/Controllers/TransferDataAPIController.cs @@ -115,7 +115,7 @@ namespace TIAMWebApp.Server.Controllers Console.WriteLine($"TransferDestination to be created: {transferDestination.Price2}"); Console.WriteLine($"TransferDestination to be created: {transferDestination.Price3}"); Console.WriteLine($"TransferDestination to be created: {transferDestination.ExtraPrice}"); - Console.WriteLine($"TransferDestination to be created: {transferDestination.ExtraPriceType}"); + //Console.WriteLine($"TransferDestination to be created: {transferDestination.ExtraPriceType}"); Console.WriteLine($"TransferDestination to be created: {transferDestination.AddressString}"); Console.WriteLine($"TransferDestination to be created: {transferDestination.Description}"); diff --git a/TIAMWebApp/Server/Services/TransferBackendService.cs b/TIAMWebApp/Server/Services/TransferBackendService.cs index dcc6ea24..e3c59e7b 100644 --- a/TIAMWebApp/Server/Services/TransferBackendService.cs +++ b/TIAMWebApp/Server/Services/TransferBackendService.cs @@ -6,16 +6,9 @@ using TIAM.Entities.Transfers; namespace TIAMWebApp.Server.Services { - public class TransferBackendService + public class TransferBackendService(IConfiguration configuration, AdminDal adminDal) { - private readonly IConfiguration _configuration; - private readonly AdminDal _adminDal; - - public TransferBackendService(IConfiguration configuration, AdminDal adminDal) - { - _configuration = configuration; - _adminDal = adminDal; - } + //private readonly IConfiguration _configuration = configuration; public double GetTransferPrice(Guid productId, Guid fromTransferDestinationId, Guid toTranferDestinationId, in byte seatNumber) { @@ -24,7 +17,7 @@ namespace TIAMWebApp.Server.Services public double GetTransferPrice(Guid productId, TransferDestination fromTransferDestination, TransferDestination toTransferDestination, in byte seatNumber) { - var product = _adminDal.GetProductById(productId); + var product = adminDal.GetProductById(productId); if (product == null) return -1; @@ -35,20 +28,23 @@ namespace TIAMWebApp.Server.Services { var baseDestination = product.Profile.AddressId == fromTransferDestination.AddressId ? toTransferDestination : fromTransferDestination; - var transferDestinationToProduct = _adminDal.GetTransferDestinationToProduct(product.Id, baseDestination.Id); + var transferDestinationToProduct = adminDal.GetTransferDestinationToProduct(product.Id, baseDestination.Id); var tranferDestinationPrice = transferDestinationToProduct ?? baseDestination as ITransfeDestinationPrices; - //A ProductCommis nem ugyanaz mint az ExtraPrice?!? - J. - var price = GetSeatNumberPrice(in tranferDestinationPrice, seatNumber) + tranferDestinationPrice.ProductCommis; + var price = GetSeatNumberPrice(in tranferDestinationPrice, seatNumber) + tranferDestinationPrice.ProductCommis + GetExtraPrice(in fromTransferDestination); //TODO: ExtraPrice - J. seatnum percent price, FirstName, LastName, CascadeDelete - //if (baseDestination.Id == fromTransferDestination.Id && ) return price; } - public double GetSeatNumberPrice(in ITransfeDestinationPrices transfeDestinationPrices, in byte seatNumber) - => GetSeatNumberPrice(transfeDestinationPrices.Price, transfeDestinationPrices.Price2, transfeDestinationPrices.Price3, seatNumber); + public double GetExtraPrice(in TransferDestination fromTransferDestination) + { + return fromTransferDestination.ExtraPrice > 0 ? fromTransferDestination.ExtraPrice : 0; + } + + public double GetSeatNumberPrice(in ITransfeDestinationPrices transferDestinationPrices, in byte seatNumber) + => GetSeatNumberPrice(transferDestinationPrices.Price, transferDestinationPrices.Price2, transferDestinationPrices.Price3, seatNumber); public double GetSeatNumberPrice(double price, in double? price2, in double? price3, in byte seatNumber) {