diff --git a/TIAM.Entities/Auctions/AuctionBid.cs b/TIAM.Entities/Auctions/AuctionBid.cs
index 06103cd7..a3a76a4a 100644
--- a/TIAM.Entities/Auctions/AuctionBid.cs
+++ b/TIAM.Entities/Auctions/AuctionBid.cs
@@ -5,8 +5,8 @@ using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
-using AyCode.Entities.Interfaces;
using AyCode.Entities.Users;
+using AyCode.Interfaces.Entities;
using AyCode.Interfaces.TimeStampInfo;
namespace TIAM.Entities.Auctions
diff --git a/TIAM.Entities/Permissions/PermissionContextMapping.cs b/TIAM.Entities/Permissions/PermissionContextMapping.cs
index 9352f15a..51ad39ac 100644
--- a/TIAM.Entities/Permissions/PermissionContextMapping.cs
+++ b/TIAM.Entities/Permissions/PermissionContextMapping.cs
@@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
-using AyCode.Entities.Interfaces;
+using AyCode.Interfaces.Entities;
using AyCode.Interfaces.TimeStampInfo;
namespace TIAM.Entities.Permissions;
diff --git a/TIAM.Entities/Permissions/PermissionGroup.cs b/TIAM.Entities/Permissions/PermissionGroup.cs
index 9dbedac8..c4724737 100644
--- a/TIAM.Entities/Permissions/PermissionGroup.cs
+++ b/TIAM.Entities/Permissions/PermissionGroup.cs
@@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
-using AyCode.Entities.Interfaces;
+using AyCode.Interfaces.Entities;
using AyCode.Interfaces.TimeStampInfo;
namespace TIAM.Entities.Permissions;
diff --git a/TIAM.Entities/Permissions/PermissionGroupUserMapping.cs b/TIAM.Entities/Permissions/PermissionGroupUserMapping.cs
index a01cbd26..c0bd4dbc 100644
--- a/TIAM.Entities/Permissions/PermissionGroupUserMapping.cs
+++ b/TIAM.Entities/Permissions/PermissionGroupUserMapping.cs
@@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
-using AyCode.Entities.Interfaces;
+using AyCode.Interfaces.Entities;
using AyCode.Interfaces.TimeStampInfo;
namespace TIAM.Entities.Permissions;
diff --git a/TIAM.Entities/Permissions/PermissionsType.cs b/TIAM.Entities/Permissions/PermissionsType.cs
index 1aa7dddd..6742b048 100644
--- a/TIAM.Entities/Permissions/PermissionsType.cs
+++ b/TIAM.Entities/Permissions/PermissionsType.cs
@@ -1,7 +1,7 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
-using AyCode.Entities.Interfaces;
+using AyCode.Interfaces.Entities;
using AyCode.Interfaces.TimeStampInfo;
namespace TIAM.Entities.Permissions;
diff --git a/TIAM.Entities/Products/Product.cs b/TIAM.Entities/Products/Product.cs
index 42610f66..e0702072 100644
--- a/TIAM.Entities/Products/Product.cs
+++ b/TIAM.Entities/Products/Product.cs
@@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
-using AyCode.Entities.Interfaces;
+using AyCode.Interfaces.Entities;
using AyCode.Interfaces.TimeStampInfo;
using TIAM.Core;
diff --git a/TIAM.Entities/Products/ServiceProvider.cs b/TIAM.Entities/Products/ServiceProvider.cs
index 3a14b6ad..34e41e57 100644
--- a/TIAM.Entities/Products/ServiceProvider.cs
+++ b/TIAM.Entities/Products/ServiceProvider.cs
@@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
-using AyCode.Entities.Interfaces;
+using AyCode.Interfaces.Entities;
using AyCode.Interfaces.TimeStampInfo;
namespace TIAM.Entities.Products;
diff --git a/TIAM.Entities/TransferDestinations/TransferDestination.cs b/TIAM.Entities/TransferDestinations/TransferDestination.cs
index 6e112f30..bae06ebe 100644
--- a/TIAM.Entities/TransferDestinations/TransferDestination.cs
+++ b/TIAM.Entities/TransferDestinations/TransferDestination.cs
@@ -1,5 +1,5 @@
using System.ComponentModel.DataAnnotations.Schema;
-using AyCode.Entities.Interfaces;
+using AyCode.Interfaces.Entities;
using AyCode.Entities.Locations;
using AyCode.Interfaces.TimeStampInfo;
diff --git a/TIAM.Entities/Users/AssignedUser.cs b/TIAM.Entities/Users/AssignedUser.cs
index d5e7a2c2..20948080 100644
--- a/TIAM.Entities/Users/AssignedUser.cs
+++ b/TIAM.Entities/Users/AssignedUser.cs
@@ -1,6 +1,6 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
-using AyCode.Entities.Interfaces;
+using AyCode.Interfaces.Entities;
using AyCode.Interfaces.TimeStampInfo;
namespace TIAM.Entities.Users;
diff --git a/TIAMSharedUI/Pages/Components/AuctionComponent.cs b/TIAMSharedUI/Pages/Components/AuctionComponent.cs
new file mode 100644
index 00000000..7d92c2be
--- /dev/null
+++ b/TIAMSharedUI/Pages/Components/AuctionComponent.cs
@@ -0,0 +1,17 @@
+using Microsoft.AspNetCore.Components;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace TIAMSharedUI.Pages.Components
+{
+ public partial class AuctionComponent
+ {
+ [Parameter]
+ public Guid UserId { get; set; }
+
+
+ }
+}
diff --git a/TIAMSharedUI/Pages/Components/AuctionComponent.razor b/TIAMSharedUI/Pages/Components/AuctionComponent.razor
index b81a6fbf..1cf4b5e7 100644
--- a/TIAMSharedUI/Pages/Components/AuctionComponent.razor
+++ b/TIAMSharedUI/Pages/Components/AuctionComponent.razor
@@ -1,5 +1,4 @@
-
Hello @UserId.ToString()
@@ -11,6 +10,5 @@
@code {
- [Parameter]
- public Guid UserId { get; set; }
+
}
diff --git a/TIAMSharedUI/Pages/Components/AuctionItemComponent.cs b/TIAMSharedUI/Pages/Components/AuctionItemComponent.cs
index cdb7ca75..233eca4f 100644
--- a/TIAMSharedUI/Pages/Components/AuctionItemComponent.cs
+++ b/TIAMSharedUI/Pages/Components/AuctionItemComponent.cs
@@ -12,15 +12,23 @@ namespace TIAMSharedUI.Pages.Components
{
[Parameter]
public int AuctionItemId { get; set; }
+ [Parameter]
+ public int TargetAuctionId { get; set; }
+ [Parameter]
+ public Guid UserId { get; set; }
+
public string IsLoading { get; set; } = "";
public int currentStep = 0;
public AuctionBidModel auctionBidModel = new();
+ public string status = "";
+ public Guid sUserId = Guid.Empty;
+
public void NextStep()
{
- currentStep++;
+ currentStep++;
}
public void PreviousStep()
{
@@ -31,7 +39,12 @@ namespace TIAMSharedUI.Pages.Components
{
IsLoading = "loaded!";
base.OnInitialized();
- }
+ }
+
+ public void AddStatus(string message)
+ {
+ status += message + "\n";
+ }
public void SubmitBid()
{
diff --git a/TIAMSharedUI/Pages/Components/AuctionItemComponent.razor b/TIAMSharedUI/Pages/Components/AuctionItemComponent.razor
index d8b18b49..dcaff52c 100644
--- a/TIAMSharedUI/Pages/Components/AuctionItemComponent.razor
+++ b/TIAMSharedUI/Pages/Components/AuctionItemComponent.razor
@@ -7,14 +7,27 @@
-
+
Item @AuctionItemId.ToString()
@IsLoading
- - An item
- - A second item
- - A third item
+ @{
+ if(auctionBidModel.Email != null)
+ {
+ - @auctionBidModel.Email
+ }
+ if(auctionBidModel.OwnerId != Guid.Empty)
+ {
+ - @auctionBidModel.OwnerId
+ }
+ if(auctionBidModel.PhoneNumber != null)
+ {
+ - @auctionBidModel.PhoneNumber
+ }
+ }
+ - Minimum: 25 000
+ - 20 000 Ft
+
@code {
-
+
+ [Parameter]
+ public AuctionBidModel auctionBidModel { get; set; }
+ [Parameter]
+ public int TargetProductId { get; set; }
[Parameter]
public EventCallback
onNext { get; set; }
-
+ [Parameter]
+ public EventCallback auctionBidModelChanged { get; set; }
+
+ public Guid UserId { get; set; }
private string spinnerClass = "";
@@ -31,7 +43,11 @@
{
spinnerClass = "spinner-border spinner-border-sm";
await Task.Delay(500);
- spinnerClass = "";
+ auctionBidModel.Id = Guid.NewGuid();
+ auctionBidModel.OwnerId = sessionService.User.UserId;
+ auctionBidModel.TargetProductId = TargetProductId;
+ spinnerClass = "";
+ await auctionBidModelChanged.InvokeAsync(auctionBidModel);
await onNext.InvokeAsync();
}
diff --git a/TIAMSharedUI/Pages/Components/AuctionStep1.razor b/TIAMSharedUI/Pages/Components/AuctionStep1.razor
index a73fef6c..09807b1b 100644
--- a/TIAMSharedUI/Pages/Components/AuctionStep1.razor
+++ b/TIAMSharedUI/Pages/Components/AuctionStep1.razor
@@ -1,5 +1,8 @@
@using TIAMWebApp.Shared.Application.Models.PageModels;
@using TIAMWebApp.Shared.Application.Models;
+@using TIAMWebApp.Shared.Application.Interfaces;
+@inject ISessionService sessionService;
+
@@ -7,7 +10,7 @@
-
-
- Auction
-
-
+
API
diff --git a/TIAMWebApp/Server/Controllers/EmailAPIController.cs b/TIAMWebApp/Server/Controllers/EmailAPIController.cs
new file mode 100644
index 00000000..cf30321b
--- /dev/null
+++ b/TIAMWebApp/Server/Controllers/EmailAPIController.cs
@@ -0,0 +1,168 @@
+using DevExpress.Office.Crypto;
+using DevExpress.Xpo.DB;
+using DevExpress.XtraPrinting;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Identity;
+using Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json.Linq;
+using Microsoft.IdentityModel.Tokens;
+using System.IdentityModel.Tokens.Jwt;
+using System.Security.Claims;
+using System.Security.Cryptography;
+using System.Text.Json;
+using TIAMWebApp.Shared.Application.Models;
+using TIAMWebApp.Shared.Application.Models.PageModels;
+using TIAMWebApp.Server.Models;
+using System.Text;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.EntityFrameworkCore;
+using TIAM.Database.DataLayers.Users;
+using AyCode.Utils.Helpers;
+using TIAM.Entities.Users;
+using TIAMWebApp.Server.ModelsTIAMWebApp.Shared.Application.Models;
+using TIAMWebApp.Shared.Application.Utility;
+using TIAM.Entities.Auctions;
+
+namespace TIAMWebApp.Server.Controllers
+{
+ [Authorize]
+ [ApiController]
+ [Route("api/[controller]")]
+ public class EmailAPIController : ControllerBase
+ {
+ private AuctionDal _auctionDal;
+ private readonly IConfiguration _configuration;
+ private readonly IWebHostEnvironment _webHostEnvironment;
+ PasswordHasher hasher = new PasswordHasher();
+
+
+ private readonly ILogger _logger;
+
+ public EmailAPIController(ILogger logger, IConfiguration configuration, IWebHostEnvironment webHostEnvironment, AuctionDal auctionDal)
+ {
+ _logger = logger;
+ _configuration = configuration;
+ _webHostEnvironment = webHostEnvironment;
+ _auctionDal = auctionDal;
+ }
+
+ [AllowAnonymous]
+ [HttpPost]
+ [Route("SendEmail")]
+ public async Task SendEmail([FromBody] AuctionBid SerializedAuctionBidModel)
+ {
+ Console.WriteLine("CreateBid called");
+ //if (string.IsNullOrEmpty(SerializedAuctionBidModel.GetRawText()))
+ //{
+ // return BadRequest("SerializedAuctionBidModel is required");
+ //}
+ //else
+ //{
+ //AuctionBidModel? bid = JObject.Parse(SerializedAuctionBidModel.GetRawText()).ToObject();
+ AuctionBid bid = SerializedAuctionBidModel;
+ AuctionBid finalizedBidModel;
+
+ if(bid != null)
+ {
+ //add userModel to users array
+ //Array.Resize(ref users, users.Length + 1);
+ //users[users.Length - 1] = new UserModel(user.Email, user.PhoneNumber, user.Password);
+
+ var userId = bid.OwnerId;
+ var targetProductId = bid.TargetProductId;
+ string? email = bid?.Email;
+ string? phoneNumber = bid?.PhoneNumber;
+ int bidAmount = bid?.BidAmount ?? 0;
+ bool isValid = false;
+
+ if(userId == Guid.Empty || string.IsNullOrEmpty(email) || targetProductId==0 || bidAmount == 0)
+ {
+ return BadRequest("Invalid request");
+ }
+ else
+ {
+ Console.WriteLine($"Bid to be created: {userId}, {targetProductId}, {email}, {phoneNumber}, {bidAmount}, {isValid}");
+ finalizedBidModel = new AuctionBid(userId, targetProductId, email, phoneNumber, bidAmount);
+ await _auctionDal.CreateBidAsync(finalizedBidModel);
+ return Ok(finalizedBidModel.Id);
+ }
+ }
+ else
+ {
+ return BadRequest("Invalid request");
+ }
+ //}
+ }
+
+
+ [AllowAnonymous]
+ [HttpGet]
+ [Route("GetBids")]
+ public Task> GetBids()
+ {
+ //var users = await _userDal.Ctx.Users.ToListAsync();//.GetUsersAsync();
+ //return users;
+ return _auctionDal.GetBids();
+ }
+
+ [AllowAnonymous]
+ [HttpGet]
+ [Route("GetBidsByEmail")]
+ public async Task> GetUserByEmail(string email)
+ {
+ return await _auctionDal.GetBidsByEmail(email);
+ }
+
+ [AllowAnonymous]
+ [HttpPost]
+ [Route("ValidateBid")]
+ public async Task ValidateBid([FromBody] AuctionBid SerializedAuctionBidModel)
+ {
+ Console.WriteLine("ValidateBid called");
+ //var validateBid = JObject.Parse(SerializedAuctionBidModel.GetRawText()).ToObject();
+
+ //check if bid exists
+ AuctionBid? dbBid = null;
+
+ //Console.WriteLine(validateBid?.Id);
+ Console.WriteLine(SerializedAuctionBidModel?.Id);
+ //if (validateBid != null)
+ if (SerializedAuctionBidModel != null)
+ {
+ //dbBid = await _auctionDal.GetBidById(validateBid.Id);
+ dbBid = await _auctionDal.GetBidById(SerializedAuctionBidModel.Id);
+ }
+
+ //check if password is valid
+ //bool isValidUser = await _userManager.CheckPasswordAsync(userModel, authenticateUser.Password);
+
+ //mocking
+ if (dbBid is null)
+ {
+ return Unauthorized("Not found in DB");
+ }
+ else
+ {
+
+ //if (dbBid.Email == validateBid?.Email)
+ if (dbBid.Email == SerializedAuctionBidModel?.Email)
+ {
+ Console.WriteLine("Bid is valid");
+ dbBid.IsValid = true;
+ //Update userModel with refreshToken!!
+ await _auctionDal.UpdateBidAsync(dbBid);
+ return Ok(dbBid.IsValid);
+
+ }
+ else
+ {
+ return Unauthorized("Emails not matching");
+ }
+ }
+
+
+
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/TIAMWebApp/Server/TIAMWebApp.Server.csproj b/TIAMWebApp/Server/TIAMWebApp.Server.csproj
index e8891ee2..043f771b 100644
--- a/TIAMWebApp/Server/TIAMWebApp.Server.csproj
+++ b/TIAMWebApp/Server/TIAMWebApp.Server.csproj
@@ -12,6 +12,7 @@
+