diff --git a/TIAMSharedUI/Pages/Components/EditComponents/EditAddressComponent.razor b/TIAMSharedUI/Pages/Components/EditComponents/EditAddressComponent.razor
new file mode 100644
index 00000000..0fa95812
--- /dev/null
+++ b/TIAMSharedUI/Pages/Components/EditComponents/EditAddressComponent.razor
@@ -0,0 +1,44 @@
+@using TIAM.Entities.Addresses
+@* @typeparam TModel *@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Save Changes
+
+
+
+
+@code {
+ [Parameter]
+ public Address Model { get; set; }
+
+ [Parameter]
+ public EventCallback
OnAddressChanged { get; set; }
+
+
+ private async Task OnValidSubmit()
+ {
+ await OnAddressChanged.InvokeAsync(Model);
+ }
+}
diff --git a/TIAMSharedUI/Pages/User/SysAdmins/AddressGridComponent.razor b/TIAMSharedUI/Pages/User/SysAdmins/AddressGridComponent.razor
new file mode 100644
index 00000000..0e53138b
--- /dev/null
+++ b/TIAMSharedUI/Pages/User/SysAdmins/AddressGridComponent.razor
@@ -0,0 +1,151 @@
+@using TIAM.Entities.Products
+@using TIAM.Entities.ServiceProviders
+@using TIAM.Entities.Transfers
+@using TIAM.Entities.Drivers
+@using TIAM.Entities.Users
+@using TIAM.Models.Dtos.Users
+@using TIAMWebApp.Shared.Application.Interfaces
+@using TIAMWebApp.Shared.Application.Utility
+@using AyCode.Services.Loggers
+@using TIAM.Core.Loggers
+@using TIAM.Entities.Addresses
+@using TIAMSharedUI.Pages.Components.EditComponents
+@inject IServiceProviderDataService serviceProviderDataService
+@inject IUserDataService userDataService
+@inject ITransferDataService transferDataService
+@inject IEnumerable LogWriters
+
+
+ Profile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @{
+ Address bleh = (Address)context.EditModel;
+ }
+ @* *@
+
+
+
+
+
+@code {
+ [Parameter]
+ public bool KeyboardNavigationEnabled { get; set; }
+ [Parameter]
+ public object AddressContext { get; set; }
+ [Parameter]
+ public string ContextIdType { get; set; }
+
+
+ List _detailGridData;
+
+ List _availableProfiles;
+
+ ILogger _logger;
+
+ public void SaveAddress(Address addressToSave)
+ {
+
+ }
+
+ protected override async Task OnInitializedAsync()
+ {
+ Address myAddress = new Address();
+
+
+ _logger = new LoggerClient(LogWriters.ToArray());
+ if(ContextIdType == null)
+ {
+ //get all profiles from DB
+ }
+ else
+ {
+ switch (ContextIdType)
+ {
+ case ("userprofile"):
+ //get profile for user
+ UserModelDto resultData = (UserModelDto)AddressContext;
+ _detailGridData.Add(resultData.UserDto.Profile.Address);
+ break;
+ case ("productprofile"):
+ //get profile for user
+ Product resultData2 = (Product)AddressContext;
+ _detailGridData.Add(resultData2.Profile.Address);
+ break;
+ case ("companyProfile"):
+ //get profile for user
+ var resultData3 = (Company)AddressContext;
+ _detailGridData.Add(resultData3.Profile.Address);
+ break;
+ case ("transferdestination"):
+ //get address for transferDestination
+ TransferDestination resultData4 = (TransferDestination)AddressContext;
+ _detailGridData.Add(resultData4.Address);
+ break;
+
+ }
+ }
+
+ _logger.Info($"DetailGridData: {_detailGridData.Count}");
+ }
+
+
+
+ void CustomizeEditModel(GridCustomizeEditModelEventArgs e)
+ {
+ if (!e.IsNew) return;
+
+ //editmodel customize
+
+
+ }
+
+ async Task EditModelSaving(GridEditModelSavingEventArgs e)
+ {
+ if (e.IsNew)
+ //add new orderData to orderData array
+ _logger.Info("Data added");
+ else
+ _logger.Info("Data updated");
+
+ await UpdateDataAsync();
+ }
+
+ async Task DataItemDeleting(GridDataItemDeletingEventArgs e)
+ {
+
+ _logger.Info("orderData deleted");
+
+ }
+
+ async Task UpdateDataAsync()
+ {
+ //refresh grid
+ _logger.Info("orderData grid refreshed");
+ StateHasChanged();
+ }
+
+}
diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor b/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor
index 8f33d017..c7f37154 100644
--- a/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor
+++ b/TIAMSharedUI/Pages/User/SysAdmins/ManageServiceProviders.razor
@@ -37,12 +37,18 @@
-
-
-
+
+
+
@@ -102,9 +108,10 @@
@{
var keyField = context.Value;
+ Guid keyFieldValue = (Guid)keyField;
var keyItem = (Company)context.DataItem;
string buttonText = "Set owner";
- if(keyField == null)
+ if(keyFieldValue == Guid.Empty)
{
}
@@ -119,8 +126,11 @@
*@
-
+ @*
+ *@
+
+
@{
@@ -175,7 +185,8 @@
];
private MessageWizardModel _messageWizardModel = new();
- private string UpdateOwnerIdText;
+ private string Email { get; set; } = "email@email.com";
+ string EmailMask { get; set; } = @"(\w|[.-])+@(\w|-)+\.(\w|-){2,4}";
DateTime StartDate { get; set; } = DateTime.Today;
DxSchedulerDataStorage _dataStorage = new();
@@ -201,7 +212,7 @@
async Task SetOwner(Guid CompanyId)
{
//get user id from DB
- var userModelDto = await userDataService.GetUserByEmailAsync(UpdateOwnerIdText);
+ var userModelDto = await userDataService.GetUserByEmailAsync(Email);
//overwrite ServiceProvider ownerid
var target = await serviceProviderDataService.GetServiceProviderByIdAsync(CompanyId);
diff --git a/TIAMSharedUI/Pages/User/SysAdmins/ProfileGridComponent.razor b/TIAMSharedUI/Pages/User/SysAdmins/ProfileGridComponent.razor
new file mode 100644
index 00000000..df3a63f4
--- /dev/null
+++ b/TIAMSharedUI/Pages/User/SysAdmins/ProfileGridComponent.razor
@@ -0,0 +1,124 @@
+@using TIAM.Entities.Products
+@using TIAM.Entities.ServiceProviders
+@using TIAM.Entities.Transfers
+@using TIAM.Entities.Drivers
+@using TIAM.Entities.Users
+@using TIAM.Models.Dtos.Users
+@using TIAMWebApp.Shared.Application.Interfaces
+@using TIAMWebApp.Shared.Application.Utility
+@using AyCode.Services.Loggers
+@using TIAM.Core.Loggers
+@inject IServiceProviderDataService serviceProviderDataService
+@inject IUserDataService userDataService
+@inject IEnumerable LogWriters
+
+
+ Profile
+
+
+
+
+
+
+
+
+
+
+
+
+
+@code {
+ [Parameter]
+ public bool KeyboardNavigationEnabled { get; set; }
+ [Parameter]
+ public object ProfileContext { get; set; }
+ [Parameter]
+ public string ContextIdType { get; set; }
+
+ List _detailGridData;
+
+ List _availableProfiles;
+
+ ILogger _logger;
+
+ protected override async Task OnInitializedAsync()
+ {
+ _logger = new LoggerClient(LogWriters.ToArray());
+ if(ContextIdType == null)
+ {
+ //get all profiles from DB
+ }
+ else
+ {
+ switch (ContextIdType)
+ {
+ case ("user"):
+ //get profile for user
+ UserModelDto resultData = (UserModelDto)ProfileContext;
+ _detailGridData.Add(resultData.UserDto.Profile);
+ break;
+ case ("product"):
+ //get profile for product
+ //var resultData2 = await serviceProviderDataService.GetProductById(ContextId); //todo
+ Product resultData2 = (Product)ProfileContext;
+ _detailGridData.Add(resultData2.Profile);
+ break;
+ case ("company"):
+ //get profile for company
+ Company resultData3 = (Company)ProfileContext;
+ _detailGridData.Add(resultData3.Profile);
+ break;
+ }
+ }
+
+ _logger.Info($"DetailGridData: {_detailGridData.Count}");
+ }
+
+
+
+ void CustomizeEditModel(GridCustomizeEditModelEventArgs e)
+ {
+ if (!e.IsNew) return;
+
+ //editmodel customize
+
+
+ }
+
+ async Task EditModelSaving(GridEditModelSavingEventArgs e)
+ {
+ if (e.IsNew)
+ //add new orderData to orderData array
+ _logger.Info("Data added");
+ else
+ _logger.Info("Data updated");
+
+ await UpdateDataAsync();
+ }
+
+ async Task DataItemDeleting(GridDataItemDeletingEventArgs e)
+ {
+
+ _logger.Info("orderData deleted");
+
+ }
+
+ async Task UpdateDataAsync()
+ {
+ //refresh grid
+ _logger.Info("orderData grid refreshed");
+ StateHasChanged();
+ }
+
+}
diff --git a/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs b/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs
index a6f014e3..ec622035 100644
--- a/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs
+++ b/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs
@@ -14,6 +14,8 @@ using TIAM.Entities.Transfers;
using System.Text.Json.Nodes;
using System.Text.Json;
using Newtonsoft.Json.Linq;
+using TIAM.Entities.Profiles;
+using TIAM.Entities.Addresses;
namespace TIAMWebApp.Server.Controllers
{
@@ -78,6 +80,10 @@ namespace TIAMWebApp.Server.Controllers
GlobalLogger.Info($@"ServiceProvider to be created: {id}, {name}, {ownerId}");
Company toCreate = new Company(id, name, ownerId, Guid.NewGuid());
+ toCreate.Profile = new Profile();
+ toCreate.Profile.Id = Guid.NewGuid();
+ toCreate.Profile.Address = new Address();
+ toCreate.Profile.Address.Id = Guid.NewGuid();
toCreate.CommissionPercent = commissionRate;
var result = await _adminDal.CreateServiceProviderAsync(toCreate);
if (!result)