diff --git a/TIAMSharedUI/Pages/User/Admin.razor b/TIAMSharedUI/Pages/User/Admin.razor
index b294fd67..7297643c 100644
--- a/TIAMSharedUI/Pages/User/Admin.razor
+++ b/TIAMSharedUI/Pages/User/Admin.razor
@@ -1,4 +1,5 @@
@page "/user/admin"
+@using Microsoft.AspNetCore.Authorization
@using TIAMSharedUI.Pages.User.SysAdmins
@using TIAMSharedUI.Shared
@using TIAMWebApp.Shared.Application.Models;
@@ -7,7 +8,8 @@
@inject IPopulationStructureDataProvider DataProvider
@inject ISupplierService SupplierService
@inject IUserDataService UserDataService
-Transfer
+@attribute [Authorize]
+Administration
Dashboard
diff --git a/TIAMSharedUI/Pages/User/MyServiceProviders.razor b/TIAMSharedUI/Pages/User/MyServiceProviders.razor
index ed1bdad9..5cb0e33f 100644
--- a/TIAMSharedUI/Pages/User/MyServiceProviders.razor
+++ b/TIAMSharedUI/Pages/User/MyServiceProviders.razor
@@ -3,6 +3,7 @@
@using TIAM.Resources
@using TIAMSharedUI.Pages.Components
@using TIAMSharedUI.Shared
+@using TIAMWebApp.Shared.Application.Interfaces
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
@using TIAMWebApp.Shared.Application.Utility
@using AyCode.Core.Loggers
@@ -10,6 +11,8 @@
@layout AdminLayout
@inject IAcLogWriterClientBase BrowserConsoleLogWriter
@inject IStringLocalizer
localizer
+@inject ISessionService SessionService
+@inject IServiceProviderDataService ServiceProviderDataService
Properties
@@ -57,7 +60,7 @@
*@
LogWriters
+@inject IStringLocalizer localizer
+@inject IWizardProcessor wizardProcessor
+@inject IServiceProviderDataService serviceProviderDataService
+@inject ISessionService sessionService
+@inject DevAdminSignalClient devAdminSignalClient;
+Admin - Companies
+
+
+
Company management
+ Manage transfers here!
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ @*
+
+ @{
+ var keyField = context.Value;
+
+ var keyItem = (TiamServiceProvider)context.DataItem;
+ string buttonText = "Contact";
+
+ }
+
+ *@
+
+
+
+
+
+
+
+ @{
+ var transfer2 = (Transfer)EditFormContext.EditModel;
+ }
+
+
+ @EditFormContext.GetEditor("Name")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@code {
+ private LoggerClient _logger;
+
+ //public Transfer myModel = new Transfer();
+
+ public List ServiceProviderDataList { get; set; }
+
+ bool PopupVisible { get; set; }
+ public List IgnoreList =
+ [
+ "ReceiverEmailAddress",
+ "ReceiverFullName",
+ "ReceiverId",
+ "SenderEmailAddress",
+ "SenderFullName",
+ "SenderId",
+ "ContextId",
+ ];
+
+ public List Statuses { get; set; } =
+ [
+ new(Convert.ToInt16(TransferStatusType.OrderSubmitted), "Order submitted"),
+ new(Convert.ToInt16(TransferStatusType.OrderConfirmed), "Order confirmed"),
+ new(Convert.ToInt16(TransferStatusType.AssignedToDriver), "Assigned to driver"),
+ new(Convert.ToInt16(TransferStatusType.DriverConfirmed), "Driver confirmed"),
+ new(Convert.ToInt16(TransferStatusType.DriverEnRoute), "Driver enroute"),
+ new(Convert.ToInt16(TransferStatusType.PassengerPickup), "Passenger in car"),
+ new(Convert.ToInt16(TransferStatusType.Finished), "Finished"),
+ new(Convert.ToInt16(TransferStatusType.UserCanceled), "User cancelled"),
+ new(Convert.ToInt16(TransferStatusType.AdminDenied), "Admin cancelled")
+ ];
+
+ private MessageWizardModel _messageWizardModel = new();
+
+ public List AppointmentModels { get; set; }
+
+ DateTime StartDate { get; set; } = DateTime.Today;
+ DxSchedulerDataStorage _dataStorage = new();
+
+
+ void SendMail(TiamServiceProvider item)
+ {
+ _logger.Info($"Sending mail to {item.OwnerId}, {item.Id}");
+ _messageWizardModel.ReceiverId = Guid.Parse("");
+ _messageWizardModel.ContextId = item.Id;
+ _messageWizardModel.SenderEmailAddress = "";
+ _messageWizardModel.ReceiverEmailAddress = "";
+ _messageWizardModel.ReceiverFullName = "";
+ PopupVisible = true;
+ }
+
+ void CancelCreateClick()
+ {
+
+ PopupVisible = false;
+ }
+ void EulaPopupClosed()
+ {
+ //cancel clicked
+
+ }
+ void EulaPopupClosing(PopupClosingEventArgs args)
+ {
+ //myModel = new TransferWizardModel();
+ _messageWizardModel = new MessageWizardModel();
+ }
+
+ //-----------------------------------------------------------------------------------
+
+
+ public async Task SubmitForm(object result)
+ {
+ var messageModel = result as MessageWizardModel;
+ messageModel.ContextId = _messageWizardModel.ContextId;
+ //messageModel.SenderId = sessionService.User.UserId;
+
+ string FormatEmailContent()
+ {
+ return $@"
+
+
+ Dear {messageModel.SenderFullName},
+ {messageModel.Content}:
+ Best regards,
Tour I Am team
+
+ ";
+ }
+ messageModel.Content = FormatEmailContent();
+
+ _logger.Info(messageModel.Content);
+ var email = await wizardProcessor.ProcessWizardAsync(result.GetType(), messageModel);
+
+ _logger.Info($"Submitted nested form: {result.GetType().FullName}");
+ }
+
+ void Grid_CustomizeElement(GridCustomizeElementEventArgs e)
+ {
+ if (e.ElementType == GridElementType.DataRow && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") == 5)
+ {
+ e.CssClass = "bg-important";
+ }
+ else if (e.ElementType == GridElementType.DataRow && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") > 5 && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") < 35)
+ {
+ e.CssClass = "bg-attention";
+ }
+ else if (e.ElementType == GridElementType.DataRow && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") == 35)
+ {
+ e.CssClass = "bg-finished";
+ }
+ else if (e.ElementType == GridElementType.DataRow && (System.Byte)e.Grid.GetRowValue(e.VisibleIndex, "TransferStatusType") > 35)
+ {
+ e.CssClass = "bg-cancel";
+ }
+ if (e.ElementType == GridElementType.HeaderCell)
+ {
+ e.Style = "background-color: rgba(0, 0, 0, 0.08)";
+ e.CssClass = "header-bold";
+ }
+ }
+
+ void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e)
+ {
+ if (!e.IsNew) return;
+
+ var transferEditModel = (Transfer)e.EditModel; //TODO not valid cast
+ transferEditModel.Id = Guid.NewGuid();
+ transferEditModel.ToAddress = "Where to?";
+ transferEditModel.FromAddress = "From where?";
+ transferEditModel.Appointment = DateTime.UtcNow.AddDays(3);
+ transferEditModel.PassengerCount = 1;
+ transferEditModel.FirstName = "John";
+ transferEditModel.LastName = "Doe";
+ transferEditModel.ContactPhone = "+00000000000";
+ transferEditModel.ContactEmail = "your@email.address";
+ }
+
+ async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e)
+ {
+ bool success = false;
+ if (e.IsNew)
+ {
+ //add new orderData to orderData array
+ _logger.Info("New orderData added");
+ //await transferDataService.CreateTransfer((TransferWizardModel)e.EditModel);
+ }
+ else
+ {
+ _logger.Info("orderData updated at id " + ((TiamServiceProvider)e.EditModel).Id);
+
+ success = await serviceProviderDataService.UpdateServiceProviderAsync((TiamServiceProvider)e.EditModel);
+
+ }
+ //get transfer from TransferData by Id
+
+ // foreach (var transferToModify in (List)TransferData)
+ // {
+ // myModel = (Transfer)e.EditModel;
+
+ // if (transferToModify.Id == myModel.Id)
+ // {
+ // //transferToModify.Driver = myModel.Driver;
+ // }
+ // }
+
+ if (success)
+ {
+ //TODO: ne a teljes grid-et refresh-eljük, elég lenne csak az adott sort! - J.
+ await UpdateDataAsync();
+ }
+ }
+
+ async Task Grid_DataItemDeleting(GridDataItemDeletingEventArgs e)
+ {
+ //await NwindDataService.RemoveEmployeeAsync((EditableEmployee)e.DataItem);
+ //remove orderData from orderData array
+ _logger.Info("orderData deleted");
+ //await UpdateDataAsync();
+ }
+
+ async Task UpdateDataAsync()
+ {
+ ServiceProviderDataList = await serviceProviderDataService.GetServiceProvidersByOwnerIdAsync();
+ _logger.Info("orderData grid refreshed");
+ }
+
+ protected override async Task OnInitializedAsync()
+ {
+ _logger = new LoggerClient(LogWriters.ToArray());
+
+ devAdminSignalClient.OnMessageReceived += (messageTag, message) =>
+ {
+ if (messageTag == SignalRTags.PostTransfersAsync)
+ {
+ var json = message?.MessagePackTo(ContractlessStandardResolver.Options);
+
+ InitializeDataSources(json?.JsonTo>() ?? []);
+ StateHasChanged();
+ }
+ };
+
+ await devAdminSignalClient.Send("", SignalRTags.GetTransfersAsync, null);
+ //InitializeDataSources(await transferDataService.GetTransfersAsync());
+
+ base.OnInitialized();
+ }
+
+ private void InitializeDataSources(List transferDataList)
+ {
+ TransferDataList = transferDataList;
+ AppointmentModels = new List(TransferDataList.Count);
+
+ foreach (var transfer in TransferDataList)
+ {
+ // var bnm = DataStorage.CreateAppointmentItem();
+ // bnm.Start = transfer.Appointment;
+ // bnm.Description = $"{transfer.FullName}, {transfer.ToAddress}";
+ // bnm.Location = transfer.FromAddress;
+ // bnm.Subject = "Simple transfer";
+
+ AppointmentModels.Add(new AppointmentModel { StartDate = transfer.Appointment, EndDate=transfer.Appointment.AddMinutes(30), Description = $"{transfer.FullName}, {transfer.ToAddress}", Location = transfer.FromAddress, Caption = "Simple transfer" });
+ }
+
+ _dataStorage = new DxSchedulerDataStorage
+ {
+ AppointmentMappings = new DxSchedulerAppointmentMappings()
+ {
+ Type = "AppointmentType",
+ Start = "StartDate",
+ End = "EndDate",
+ Subject = "Caption",
+ AllDay = "AllDay",
+ Location = "Location",
+ Description = "Description",
+ LabelId = "Label",
+ StatusId = "Status",
+ RecurrenceInfo = "Recurrence"
+ },
+
+ AppointmentsSource = AppointmentModels
+ };
+ }
+
+ void ColumnChooserButton_Click()
+ {
+ Grid2.ShowColumnChooser();
+ }
+
+ IGrid Grid2 { get; set; }
+ object MasterGridData { get; set; }
+ bool AutoCollapseDetailRow { get; set; }
+
+ protected override void OnAfterRender(bool firstRender)
+ {
+ if (firstRender)
+ {
+ Grid2.ExpandDetailRow(0);
+ }
+ }
+ void AutoCollapseDetailRow_Changed(bool newValue)
+ {
+ AutoCollapseDetailRow = newValue;
+ if (!newValue) return;
+
+ Grid2.BeginUpdate();
+ Grid2.CollapseAllDetailRows();
+ Grid2.ExpandDetailRow(0);
+ Grid2.EndUpdate();
+ }
+}
+
+
+
+
+
+
+ }
\ No newline at end of file
diff --git a/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs b/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs
index 6abec512..af9e9986 100644
--- a/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs
+++ b/TIAMWebApp/Server/Controllers/ServiceProviderAPIController.cs
@@ -98,7 +98,7 @@ namespace TIAMWebApp.Server.Controllers
}
//17.
- [AllowAnonymous]
+ [Authorize]
[HttpPost]
[Route(APIUrls.GetServiceProvidersByOwnerIdRouteName)]
[Tags("Finished", "ServiceProvider")]
diff --git a/TIAMWebApp/Shared/Services/ServiceProviderDataService.cs b/TIAMWebApp/Shared/Services/ServiceProviderDataService.cs
index eba20467..cce91efb 100644
--- a/TIAMWebApp/Shared/Services/ServiceProviderDataService.cs
+++ b/TIAMWebApp/Shared/Services/ServiceProviderDataService.cs
@@ -70,12 +70,17 @@ namespace TIAMWebApp.Shared.Application.Services
//17.
public async Task?> GetPropertiesByOwnerIdAsync(Guid id)
{
- var url = APIUrls.GetServiceProvidersByOwnerId;
+ var url = $"{Setting.ApiBaseUrl}/{APIUrls.GetServiceProvidersByOwnerId}";
var response = await http.PostAsJsonAsync(url, id);
if (response.IsSuccessStatusCode)
{
var result = await response.Content.ReadFromJsonAsync>();
- _logger.Debug(result.FirstOrDefault().Value);
+ string resultString = "";
+ foreach (var item in result)
+ {
+ resultString += item.Value + ", ";
+ }
+ _logger.Debug(resultString);
return result;
}
else