@page "/user/transfers" @using BlazorAnimation @using TIAM.Core.Enums @using TIAM.Entities.ServiceProviders @using TIAM.Entities.Transfers @using TIAM.Models.Dtos.Users @using TIAM.Resources @using TIAMSharedUI.Pages.Components @using TIAMSharedUI.Shared @using TIAMWebApp.Shared.Application.Interfaces @using TIAMWebApp.Shared.Application.Models @using TIAMWebApp.Shared.Application.Models.ClientSide.UI @using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels @using TIAMWebApp.Shared.Application.Models.ClientSide.Messages @using TIAMWebApp.Shared.Application.Models.PageModels @using TIAMWebApp.Shared.Application.Utility @using AyCode.Core.Loggers @using AyCode.Services.Loggers @using TIAM.Core.Loggers @layout AdminLayout @inject IEnumerable LogWriters @inject IStringLocalizer localizer @inject IWizardProcessor wizardProcessor @inject ITransferDataService transferDataService Transfers

Transfer management

Manage transfers here!

@{ var keyField = context.Value; var keyItem = (Transfer)context.DataItem; string buttonText = "Contact"; } @{ TransferStatusModel keyField = Statuses.FirstOrDefault(x => x.StatusValue == Convert.ToInt16(context.Value)); string transferStatusText = keyField.StatusName;

@transferStatusText

}
@{ var transfer2 = (Transfer)EditFormContext.EditModel; } @EditFormContext.GetEditor("FirstName") @EditFormContext.GetEditor("LastName") @EditFormContext.GetEditor("ToAddress") @EditFormContext.GetEditor("FromAddress") @EditFormContext.GetEditor("PassengerCount") @EditFormContext.GetEditor("TransferStatusType")
@code { private ILogger _logger; public Transfer myModel = new Transfer(); public List TransferData { get; set; } bool PopupVisible { get; set; } public List ignoreList = new List { "ReceiverEmailAddress", "ReceiverId", "SenderEmailAddress", "SenderId", "ContextId" }; public List? Statuses { get; set; } public MessageWizardModel messageWizardModel = new MessageWizardModel(); public List? AppoinmentData { get; set; } DateTime StartDate { get; set; } = DateTime.Today; DxSchedulerDataStorage DataStorage = new DxSchedulerDataStorage(); void SendMail(Transfer Item) { _logger.Info($"Sending mail to {Item.ContactEmail}"); 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 email = await wizardProcessor.ProcessWizardAsync(Result.GetType(), Result); _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) { 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 " + ((Transfer)e.EditModel).Id); success = await transferDataService.UpdateTransferAsync((Transfer)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) 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() { //refresh grid TransferData = await transferDataService.GetTransfersAsync(); _logger.Info("orderData grid refreshed"); } protected override async Task OnInitializedAsync() { _logger = new LoggerClient(LogWriters.ToArray()); Statuses = new List { new TransferStatusModel(Convert.ToInt16(TransferStatusType.OrderSubmitted), "Order submitted"), new TransferStatusModel(Convert.ToInt16(TransferStatusType.OrderConfirmed), "Order confirmed"), new TransferStatusModel(Convert.ToInt16(TransferStatusType.AssignedToDriver), "Assigned to driver"), new TransferStatusModel(Convert.ToInt16(TransferStatusType.DriverConfirmed), "Driver confirmed"), new TransferStatusModel(Convert.ToInt16(TransferStatusType.DriverEnRoute), "Driver enroute"), new TransferStatusModel(Convert.ToInt16(TransferStatusType.PassengerPickup), "Passenger in car"), new TransferStatusModel(Convert.ToInt16(TransferStatusType.Finished), "Finished"), new TransferStatusModel(Convert.ToInt16(TransferStatusType.UserCanceled), "User cancelled"), new TransferStatusModel(Convert.ToInt16(TransferStatusType.AdminDenied), "Admin cancelled") }; TransferData = (await transferDataService.GetTransfersAsync()).OrderBy(x => x.TransferStatusType).ThenByDescending(x => x.OrderId).ToList(); AppoinmentData = new List(); foreach (var transfer in TransferData) { // var bnm = DataStorage.CreateAppointmentItem(); // bnm.Start = transfer.Appointment; // bnm.Description = $"{transfer.FullName}, {transfer.ToAddress}"; // bnm.Location = transfer.FromAddress; // bnm.Subject = "Simple transfer"; AppoinmentData.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(); DataStorage.AppointmentMappings = new DxSchedulerAppointmentMappings() { Type = "AppointmentType", Start = "StartDate", End = "EndDate", Subject = "Caption", AllDay = "AllDay", Location = "Location", Description = "Description", LabelId = "Label", StatusId = "Status", RecurrenceInfo = "Recurrence" }; DataStorage.AppointmentsSource = AppoinmentData; base.OnInitialized(); } 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) { Grid2.BeginUpdate(); Grid2.CollapseAllDetailRows(); Grid2.ExpandDetailRow(0); Grid2.EndUpdate(); } } }