Driver history grouped by date,
Hotel more clean transfer list Hotel create transfer reload button after saved last transfer Save message first then send message in email Create guest user if email is not in userDb, set referral Id fixed Some more little cleanups
This commit is contained in:
parent
6bfd97beba
commit
0662bb77a7
|
|
@ -31,7 +31,7 @@ else
|
||||||
<div class="card cw-480">
|
<div class="card cw-480">
|
||||||
<div class="card-header text-center py-3">
|
<div class="card-header text-center py-3">
|
||||||
<h4>Details</h4>
|
<h4>Details</h4>
|
||||||
<DxButton Click="StartEditing" RenderStyle="ButtonRenderStyle.Primary">Edit</DxButton>
|
@* <DxButton Click="StartEditing" RenderStyle="ButtonRenderStyle.Primary">Create new</DxButton> *@
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
@CreateCardView()
|
@CreateCardView()
|
||||||
|
|
@ -190,6 +190,8 @@ else
|
||||||
editor.AddAttribute(j++, "Date", property.GetValue(Data));
|
editor.AddAttribute(j++, "Date", property.GetValue(Data));
|
||||||
editor.AddAttribute(j++, "DateExpression", lambda);
|
editor.AddAttribute(j++, "DateExpression", lambda);
|
||||||
editor.AddAttribute(j++, "CssClass", "form-field");
|
editor.AddAttribute(j++, "CssClass", "form-field");
|
||||||
|
editor.AddAttribute(j++, "TimeSectionVisible", true);
|
||||||
|
editor.AddAttribute(j++, "TimeSectionScrollPickerFormat", "tt h m");
|
||||||
editor.AddAttribute(j++, "DateChanged", EventCallback.Factory.Create<DateTime>(this, str => { property.SetValue(Data, str); }));
|
editor.AddAttribute(j++, "DateChanged", EventCallback.Factory.Create<DateTime>(this, str => { property.SetValue(Data, str); }));
|
||||||
editor.CloseComponent();
|
editor.CloseComponent();
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -128,6 +128,38 @@
|
||||||
</DxScheduler>
|
</DxScheduler>
|
||||||
</div>
|
</div>
|
||||||
</DxTabPage>
|
</DxTabPage>
|
||||||
|
|
||||||
|
<DxTabPage Text="History">
|
||||||
|
<div class="d-flex flex-column mb-4 pb-2">
|
||||||
|
|
||||||
|
<TransferDetailGrid @ref="_gridTransfer"
|
||||||
|
Logger="_logger"
|
||||||
|
GetAllMessageTag="SignalRTags.GetTransfersByUserProductMappingId"
|
||||||
|
SignalRClient="AdminSignalRClient"
|
||||||
|
ContextIds="new object[] {driverId}"
|
||||||
|
CustomizeElement="Grid_CustomizeElement"
|
||||||
|
ShowGroupPanel="true"
|
||||||
|
CustomGroup="Grid_CustomGroup"
|
||||||
|
CustomizeGroupValueDisplayText="Grid_CustomizeGroupValueDisplayText"
|
||||||
|
EditMode="GridEditMode.EditForm"
|
||||||
|
ColumnResizeMode="GridColumnResizeMode.NextColumn"
|
||||||
|
AllowSelectRowByClick="false"
|
||||||
|
PageSize="13"
|
||||||
|
ShowFilterRow="true">
|
||||||
|
|
||||||
|
<Columns>
|
||||||
|
<DxGridDataColumn FieldName="Id" ShowInColumnChooser="AcDomain.IsDeveloperVersion" Visible="AcDomain.IsDeveloperVersion" DisplayFormat="N" />
|
||||||
|
<DxGridDataColumn FieldName="Appointment" SortOrder="GridColumnSortOrder.Descending" GroupIndex="0" GroupInterval="GridColumnGroupInterval.Custom" DisplayFormat="g" Width="125" />
|
||||||
|
<DxGridDataColumn FieldName="OrderId" Caption="Order" SortIndex="1" SortOrder="GridColumnSortOrder.Descending" Width="70" />
|
||||||
|
<DxGridDataColumn FieldName="FromAddress" />
|
||||||
|
<DxGridDataColumn FieldName="ToAddress" />
|
||||||
|
<DxGridDataColumn FieldName="Created" DisplayFormat="g" Width="125" Visible="false" CaptionAlignment="GridTextAlignment.Center" TextAlignment="GridTextAlignment.Center" />
|
||||||
|
</Columns>
|
||||||
|
|
||||||
|
</TransferDetailGrid>
|
||||||
|
</div>
|
||||||
|
</DxTabPage>
|
||||||
|
|
||||||
</DxTabs>
|
</DxTabs>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -143,7 +175,7 @@
|
||||||
[Parameter] public Guid DriverId { get; set; }
|
[Parameter] public Guid DriverId { get; set; }
|
||||||
private Guid driverId;
|
private Guid driverId;
|
||||||
private LoggerClient<DriverManageTransfers> _logger;
|
private LoggerClient<DriverManageTransfers> _logger;
|
||||||
|
private TransferGrid _gridTransfer;
|
||||||
private bool _popupVisible;
|
private bool _popupVisible;
|
||||||
|
|
||||||
private List<Transfer>? transfers = [];
|
private List<Transfer>? transfers = [];
|
||||||
|
|
@ -153,6 +185,14 @@
|
||||||
AccordionExpandMode ExpandMode { get; set; } = AccordionExpandMode.SingleOrNone;
|
AccordionExpandMode ExpandMode { get; set; } = AccordionExpandMode.SingleOrNone;
|
||||||
AccordionExpandCollapseAction ExpandCollapseAction { get; set; } = AccordionExpandCollapseAction.HeaderClick;
|
AccordionExpandCollapseAction ExpandCollapseAction { get; set; } = AccordionExpandCollapseAction.HeaderClick;
|
||||||
|
|
||||||
|
private MessageWizardModel _messageWizardModel = new();
|
||||||
|
|
||||||
|
public List<AppointmentModel> AppointmentModels { get; set; } = null!;
|
||||||
|
|
||||||
|
DateTime StartDate { get; set; } = DateTime.Today;
|
||||||
|
DxSchedulerDataStorage _dataStorage = new();
|
||||||
|
|
||||||
|
|
||||||
public List<string> IgnoreList =
|
public List<string> IgnoreList =
|
||||||
[
|
[
|
||||||
"ReceiverEmailAddress",
|
"ReceiverEmailAddress",
|
||||||
|
|
@ -177,14 +217,70 @@
|
||||||
new(Convert.ToByte(TransferStatusType.AdminDenied), "Admin cancelled")
|
new(Convert.ToByte(TransferStatusType.AdminDenied), "Admin cancelled")
|
||||||
];
|
];
|
||||||
|
|
||||||
|
void Grid_CustomizeElement(GridCustomizeElementEventArgs e)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (e.ElementType == GridElementType.HeaderCell)
|
||||||
|
{
|
||||||
|
e.Style = "background-color: rgba(0, 0, 0, 0.08)";
|
||||||
|
e.CssClass = "header-bold";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e.ElementType != GridElementType.DataRow) return;
|
||||||
|
|
||||||
private MessageWizardModel _messageWizardModel = new();
|
var transferStatus = e.Grid?.GetRowValue(e.VisibleIndex, "TransferStatusType");
|
||||||
|
if (transferStatus == null) return;
|
||||||
|
|
||||||
public List<AppointmentModel> AppointmentModels { get; set; } = null!;
|
var transferStatusByte = (byte)transferStatus;
|
||||||
|
|
||||||
|
switch (transferStatusByte)
|
||||||
|
{
|
||||||
|
case 5:
|
||||||
|
e.CssClass = "bg-important";
|
||||||
|
break;
|
||||||
|
case > 5 and < 35:
|
||||||
|
e.CssClass = "bg-attention";
|
||||||
|
break;
|
||||||
|
case 35:
|
||||||
|
e.CssClass = "bg-finished";
|
||||||
|
break;
|
||||||
|
case > 35:
|
||||||
|
e.CssClass = "bg-cancel";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_logger.Error($"Grid_CustomizeElement; {ex.Message}", ex);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Grid_CustomGroup(GridCustomGroupEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.FieldName == "Appointment")
|
||||||
|
{
|
||||||
|
e.SameGroup = Grid_CompareColumnValues(((DateTime)e.Value1).Date, ((DateTime)e.Value2).Date);
|
||||||
|
e.Handled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bool Grid_CompareColumnValues(DateTime value1, DateTime value2)
|
||||||
|
{
|
||||||
|
if (value1 == value2)
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
void Grid_CustomizeGroupValueDisplayText(GridCustomizeGroupValueDisplayTextEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.FieldName == "Appointment")
|
||||||
|
{
|
||||||
|
|
||||||
|
string displayText = ((DateTime)e.Value).Date.ToString();
|
||||||
|
e.DisplayText = displayText;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
DateTime StartDate { get; set; } = DateTime.Today;
|
|
||||||
DxSchedulerDataStorage _dataStorage = new();
|
|
||||||
|
|
||||||
private void RefreshComponent()
|
private void RefreshComponent()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
@page "/user/createAndManageTransfer"
|
@page "/user/createAndManageTransfer"
|
||||||
|
@using AyCode.Core.Consts
|
||||||
|
@using AyCode.Core.Helpers
|
||||||
@using TIAM.Entities.Products
|
@using TIAM.Entities.Products
|
||||||
|
@using TIAM.Entities.ServiceProviders
|
||||||
@using TIAM.Entities.Transfers
|
@using TIAM.Entities.Transfers
|
||||||
@using TIAM.Services
|
@using TIAM.Services
|
||||||
@using TIAMSharedUI.Pages.Components.EditComponents
|
@using TIAMSharedUI.Pages.Components.EditComponents
|
||||||
|
|
@ -7,6 +10,7 @@
|
||||||
@using AyCode.Services.Loggers
|
@using AyCode.Services.Loggers
|
||||||
@using TIAMWebApp.Shared.Application.Interfaces;
|
@using TIAMWebApp.Shared.Application.Interfaces;
|
||||||
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
|
@using TIAMWebApp.Shared.Application.Models.ClientSide.UI.WizardModels
|
||||||
|
@using TIAMWebApp.Shared.Application.Models.PageModels
|
||||||
@using TIAMWebApp.Shared.Application.Services
|
@using TIAMWebApp.Shared.Application.Services
|
||||||
@using TIAMWebApp.Shared.Application.Utility
|
@using TIAMWebApp.Shared.Application.Utility
|
||||||
@layout AdminLayout
|
@layout AdminLayout
|
||||||
|
|
@ -15,6 +19,7 @@
|
||||||
@inject IUserDataService UserDataService
|
@inject IUserDataService UserDataService
|
||||||
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
|
||||||
@inject AdminSignalRClient _adminSignalRClient
|
@inject AdminSignalRClient _adminSignalRClient
|
||||||
|
@inject NavigationManager navManager
|
||||||
|
|
||||||
<PageTitle>Create transfer</PageTitle>
|
<PageTitle>Create transfer</PageTitle>
|
||||||
|
|
||||||
|
|
@ -44,6 +49,11 @@
|
||||||
<DynamicEditForm Data="Data" isEditing="true" IgnoreReflection="TransferIgnorList" OnSubmit="SubmitForm"></DynamicEditForm>
|
<DynamicEditForm Data="Data" isEditing="true" IgnoreReflection="TransferIgnorList" OnSubmit="SubmitForm"></DynamicEditForm>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="row py-3">
|
||||||
|
|
||||||
|
<DxButton RenderStyle="ButtonRenderStyle.Primary" Click="@Reload" Visible="@isReloadVisible">Reload</DxButton>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -52,7 +62,7 @@
|
||||||
|
|
||||||
@code {
|
@code {
|
||||||
private LoggerClient<CreateAndManageTransfer> _logger;
|
private LoggerClient<CreateAndManageTransfer> _logger;
|
||||||
private TransferWizardModel Data;
|
private TransferWizardModel Data = new();
|
||||||
private List<Product> Hotels = new List<Product>();
|
private List<Product> Hotels = new List<Product>();
|
||||||
private Product SelectedHotel;
|
private Product SelectedHotel;
|
||||||
public List<string> TransferIgnorList = new List<string>
|
public List<string> TransferIgnorList = new List<string>
|
||||||
|
|
@ -67,7 +77,7 @@
|
||||||
nameof(TransferWizardModel.ReferralId),
|
nameof(TransferWizardModel.ReferralId),
|
||||||
nameof(TransferWizardModel.Price)
|
nameof(TransferWizardModel.Price)
|
||||||
};
|
};
|
||||||
|
private bool isReloadVisible = false;
|
||||||
|
|
||||||
protected override void OnInitialized()
|
protected override void OnInitialized()
|
||||||
{
|
{
|
||||||
|
|
@ -92,11 +102,60 @@
|
||||||
var valami = ((TransferWizardModel)result).CopyToTransfer();
|
var valami = ((TransferWizardModel)result).CopyToTransfer();
|
||||||
valami.Id = Guid.NewGuid();
|
valami.Id = Guid.NewGuid();
|
||||||
valami.ProductId = SelectedHotel.Id;
|
valami.ProductId = SelectedHotel.Id;
|
||||||
|
var user = await UserDataService.GetUserByEmailAsync(valami.ContactEmail);
|
||||||
|
if (user != null && user.Id != Guid.Empty)
|
||||||
|
{
|
||||||
|
//user exists already
|
||||||
|
var userDetail = await UserDataService.GetUserDetailByIdAsync(user.Id);
|
||||||
|
valami.ReferralId = userDetail.UserDto.RefferalId;
|
||||||
|
valami.UserId = userDetail.Id;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//create a guest user and set referralId
|
||||||
|
var registration = new RegistrationModel();
|
||||||
|
//TODO: Refractor to userDataService
|
||||||
|
|
||||||
|
// var random = new Random();
|
||||||
|
// const string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
|
||||||
|
// var password = new string(Enumerable.Repeat(chars, 10)
|
||||||
|
// .Select(s => s[random.Next(s.Length)]).ToArray());
|
||||||
|
|
||||||
|
var password = AcCharsGenerator.NewPassword(AcConst.MinPasswordLength, 16);
|
||||||
|
|
||||||
|
registration.Email = valami.ContactEmail;
|
||||||
|
registration.PhoneNumber = valami.ContactPhone;
|
||||||
|
registration.Password = password;
|
||||||
|
//get list with one member!
|
||||||
|
var productOwner = await _adminSignalRClient.GetByIdAsync<List<Company>>(SignalRTags.GetCompaniesById, SelectedHotel.ServiceProviderId);
|
||||||
|
|
||||||
|
registration.ReferralId = productOwner[0].AffiliateId;
|
||||||
|
|
||||||
|
var createResult = await UserDataService.CreateGuestUser(registration);
|
||||||
|
if(createResult.isSuccess)
|
||||||
|
{
|
||||||
|
if (createResult.user != null)
|
||||||
|
{
|
||||||
|
valami.UserId = createResult.user.Id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_logger.Info("New user created added");
|
||||||
|
}
|
||||||
//valami.ProductId = SessionService.User.UserId; //TODO ProductID!
|
//valami.ProductId = SessionService.User.UserId; //TODO ProductID!
|
||||||
// await WizardProcessor.ProcessWizardAsync<TransferDestinationWizardModel>(result.GetType(), result);
|
// await WizardProcessor.ProcessWizardAsync<TransferDestinationWizardModel>(result.GetType(), result);
|
||||||
|
|
||||||
var saveResult = await _adminSignalRClient.PostDataAsync<Transfer>(SignalRTags.AddTransfer, valami);
|
var saveResult = await _adminSignalRClient.PostDataAsync<Transfer>(SignalRTags.AddTransfer, valami);
|
||||||
_logger.Info($"Submitted nested form: {result.GetType().FullName}, {valami.ToAddress}, {valami.FromAddress}, {valami.ProductId}");
|
_logger.Info($"Submitted form: {result.GetType().FullName}, {valami.ToAddress}, {valami.FromAddress}, {valami.ProductId}");
|
||||||
|
isReloadVisible = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Reload()
|
||||||
|
{
|
||||||
|
Data = new TransferWizardModel();
|
||||||
|
isReloadVisible = false;
|
||||||
|
StateHasChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -103,25 +103,13 @@
|
||||||
}
|
}
|
||||||
</CellDisplayTemplate>
|
</CellDisplayTemplate>
|
||||||
</DxGridDataColumn>
|
</DxGridDataColumn>
|
||||||
|
|
||||||
<DxGridDataColumn FieldName="Revenue" Caption="Revenue" Width="70" CaptionAlignment="GridTextAlignment.Center" />
|
|
||||||
<DxGridDataColumn FieldName="FullName" />
|
<DxGridDataColumn FieldName="FullName" />
|
||||||
<DxGridDataColumn FieldName="ContactPhone" Width="120" />
|
<DxGridDataColumn FieldName="ContactPhone" Width="120" />
|
||||||
<DxGridDataColumn FieldName="ContactEmail" Width="120">
|
<DxGridDataColumn FieldName="ContactEmail" Width="120">
|
||||||
</DxGridDataColumn>
|
</DxGridDataColumn>
|
||||||
<DxGridDataColumn FieldName="PaymentId" DisplayFormat="N" Visible="false" />
|
|
||||||
<DxGridDataColumn Caption="Paid" FieldName="Paid" Width="75" TextAlignment="GridTextAlignment.Center" CaptionAlignment="GridTextAlignment.Center" />
|
|
||||||
<DxGridDataColumn FieldName="TransferStatusType" Caption="Status" SortIndex="0" Width="120" SortOrder="GridColumnSortOrder.Ascending" SortMode="GridColumnSortMode.Value">
|
|
||||||
<CellDisplayTemplate>
|
|
||||||
@{
|
|
||||||
|
|
||||||
TransferStatusModel keyField = Statuses.FirstOrDefault(x => x.StatusValue == (byte)context.Value)!;
|
|
||||||
string transferStatusText = keyField.StatusName;
|
<DxGridDataColumn FieldName="ReferralId" DisplayFormat="N" Visible="true" />
|
||||||
<text>@transferStatusText</text>
|
|
||||||
}
|
|
||||||
</CellDisplayTemplate>
|
|
||||||
</DxGridDataColumn>
|
|
||||||
<DxGridDataColumn FieldName="ReferralId" DisplayFormat="N" Visible="false" />
|
|
||||||
<DxGridDataColumn FieldName="Comment" Caption="Comment" />
|
<DxGridDataColumn FieldName="Comment" Caption="Comment" />
|
||||||
<DxGridDataColumn FieldName="Created" DisplayFormat="g" Width="125" Visible="false" CaptionAlignment="GridTextAlignment.Center" TextAlignment="GridTextAlignment.Center" />
|
<DxGridDataColumn FieldName="Created" DisplayFormat="g" Width="125" Visible="false" CaptionAlignment="GridTextAlignment.Center" TextAlignment="GridTextAlignment.Center" />
|
||||||
</Columns>
|
</Columns>
|
||||||
|
|
@ -143,9 +131,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="d-flex flex-row mb-4 pb-2">
|
|
||||||
<h4> Some <span class="small text-muted"> conclusion </span></h4>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer py-2 px-4">
|
<div class="card-footer py-2 px-4">
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between">
|
||||||
|
|
|
||||||
|
|
@ -32,14 +32,12 @@
|
||||||
<Animation Effect="@Effect.FadeIn" Speed="@Speed.Fast" Delay="@TimeSpan.FromMilliseconds(250)">
|
<Animation Effect="@Effect.FadeIn" Speed="@Speed.Fast" Delay="@TimeSpan.FromMilliseconds(250)">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="d-flex flex-column mb-4 pb-2">
|
<div class="d-flex flex-column mb-4 pb-2">
|
||||||
<div class="align-self-end pl-2 pb-2">
|
|
||||||
<DxButton Text="Column Chooser"
|
|
||||||
RenderStyle="ButtonRenderStyle.Secondary"
|
|
||||||
IconCssClass="btn-column-chooser"
|
|
||||||
Click="ColumnChooserButton_Click" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<CarGridComponent DetailExpandButtonDisplayMode="GridDetailExpandButtonDisplayMode.Auto" GetAllTag="SignalRTags.GetAllCars"></CarGridComponent>
|
<CarGridComponent
|
||||||
|
@ref="@Grid"
|
||||||
|
DetailExpandButtonDisplayMode="GridDetailExpandButtonDisplayMode.Auto"
|
||||||
|
GetAllTag="SignalRTags.GetAllCars">
|
||||||
|
</CarGridComponent>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
@ -57,123 +55,9 @@
|
||||||
private LoggerClient<ManageUserProductMappings> _logger;
|
private LoggerClient<ManageUserProductMappings> _logger;
|
||||||
//public UserModelDtoDetail UserModelDtoDetail = new();
|
//public UserModelDtoDetail UserModelDtoDetail = new();
|
||||||
|
|
||||||
|
CarGridComponent Grid { get; set; }
|
||||||
bool PopupVisible { get; set; }
|
|
||||||
|
|
||||||
IGrid Grid { get; set; }
|
|
||||||
//object? MasterGridData { get; set; }
|
//object? MasterGridData { get; set; }
|
||||||
|
|
||||||
public List<string> IgnoreList =
|
|
||||||
[
|
|
||||||
"ReceiverEmailAddress",
|
|
||||||
"ReceiverId",
|
|
||||||
"SenderEmailAddress",
|
|
||||||
"SenderId",
|
|
||||||
"ContextId"
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Grid_CustomizeElement(GridCustomizeElementEventArgs e)
|
|
||||||
{
|
|
||||||
if (e.ElementType == GridElementType.DataRow && e.VisibleIndex % 2 == 1)
|
|
||||||
{
|
|
||||||
e.CssClass = "bg-alt";
|
|
||||||
}
|
|
||||||
else if (e.ElementType == GridElementType.HeaderCell)
|
|
||||||
{
|
|
||||||
e.Style = "background-color: rgba(0, 0, 0, 0.08); font-style=bold";
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Grid_CustomizeEditModel(GridCustomizeEditModelEventArgs e)
|
|
||||||
{
|
|
||||||
if (!e.IsNew) return;
|
|
||||||
|
|
||||||
var userEditModel = (UserModelDtoDetail)e.EditModel; //TODO not valid cast
|
|
||||||
userEditModel.Id = Guid.NewGuid();
|
|
||||||
|
|
||||||
userEditModel.UserDto = new UserDtoDetail
|
|
||||||
{
|
|
||||||
AffiliateId = Guid.NewGuid(),
|
|
||||||
EmailAddress = "",
|
|
||||||
PhoneNumber = ""
|
|
||||||
};
|
|
||||||
|
|
||||||
userEditModel.ProfileDto = new TIAM.Entities.Profiles.Profile
|
|
||||||
{
|
|
||||||
Name = "New user"
|
|
||||||
};
|
|
||||||
|
|
||||||
userEditModel.Products = [];
|
|
||||||
userEditModel.ServiceProviders = [];
|
|
||||||
userEditModel.UserProductMappings = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
async Task Grid_EditModelSaving(GridEditModelSavingEventArgs e)
|
|
||||||
{
|
|
||||||
var userModelDtoDetail = ((UserModelDtoDetail)e.EditModel);
|
|
||||||
|
|
||||||
if (e.IsNew)
|
|
||||||
{
|
|
||||||
//add new orderData to orderData array
|
|
||||||
var registration = new RegistrationModel();
|
|
||||||
//TODO: Refractor to userDataService
|
|
||||||
|
|
||||||
// var random = new Random();
|
|
||||||
// const string chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
|
|
||||||
// var password = new string(Enumerable.Repeat(chars, 10)
|
|
||||||
// .Select(s => s[random.Next(s.Length)]).ToArray());
|
|
||||||
|
|
||||||
var password = AcCharsGenerator.NewPassword(AcConst.MinPasswordLength, 16);
|
|
||||||
|
|
||||||
registration.Email = userModelDtoDetail.UserDto.EmailAddress;
|
|
||||||
registration.PhoneNumber = userModelDtoDetail.UserDto.PhoneNumber;
|
|
||||||
registration.Password = password;
|
|
||||||
registration.ReferralId = null;
|
|
||||||
|
|
||||||
await UserDataService.CreateGuestUser(registration);
|
|
||||||
_logger.Info("New user created added");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
_logger.Info("orderData updated at id " + userModelDtoDetail.Id);
|
|
||||||
|
|
||||||
//await transferDataService.UpdateTransferAsync((TransferWizardModel)e.EditModel);
|
|
||||||
//modify transferData where transferData.Id == e.EditModel.Id
|
|
||||||
}
|
|
||||||
//get transfer from TransferData by Id
|
|
||||||
|
|
||||||
// foreach (var transferToModify in (List<Transfer>)TransferData)
|
|
||||||
// {
|
|
||||||
// myModel = (Transfer)e.EditModel;
|
|
||||||
|
|
||||||
// if (transferToModify.Id == myModel.Id)
|
|
||||||
// {
|
|
||||||
// //transferToModify.Driver = myModel.Driver;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
//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()
|
|
||||||
{
|
|
||||||
//refresh grid
|
|
||||||
|
|
||||||
_logger.Info("orderData grid refreshed");
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
_logger = new LoggerClient<ManageUserProductMappings>(LogWriters.ToArray());
|
_logger = new LoggerClient<ManageUserProductMappings>(LogWriters.ToArray());
|
||||||
|
|
@ -181,9 +65,6 @@
|
||||||
base.OnInitialized();
|
base.OnInitialized();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ColumnChooserButton_Click()
|
|
||||||
{
|
|
||||||
Grid.ShowColumnChooser();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,9 @@ using TIAM.Services;
|
||||||
using AyCode.Core.Loggers;
|
using AyCode.Core.Loggers;
|
||||||
using AyCode.Core.Extensions;
|
using AyCode.Core.Extensions;
|
||||||
using TIAM.Entities.Products;
|
using TIAM.Entities.Products;
|
||||||
|
using AyCode.Core.Consts;
|
||||||
|
using AyCode.Core;
|
||||||
|
using TIAM.Core.Consts;
|
||||||
|
|
||||||
namespace TIAMWebApp.Server.Controllers
|
namespace TIAMWebApp.Server.Controllers
|
||||||
{
|
{
|
||||||
|
|
@ -54,12 +57,12 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
|
|
||||||
var messageElement = message.Message;
|
var messageElement = message.Message;
|
||||||
_logger.Debug(message.Message.Subject);
|
_logger.Debug(message.Message.Subject);
|
||||||
messageElement.EmailAddress = "noreply@anataworld.com";
|
messageElement.EmailAddress = TiamConstClient.SystemEmailAddress;
|
||||||
|
await _adminDal.AddEmailMessageAsync(messageElement);
|
||||||
var result = await _messageSenderService.SendMessageAsync(messageElement, (int)message.MessageType);
|
var result = await _messageSenderService.SendMessageAsync(messageElement, (int)message.MessageType);
|
||||||
//_adminDal.AddEmailMessageAsync((TIAM.Entities.Emails.EmailMessage)SerializedMessageSenderModel.Message);
|
//_adminDal.AddEmailMessageAsync((TIAM.Entities.Emails.EmailMessage)SerializedMessageSenderModel.Message);
|
||||||
|
|
||||||
await _adminDal.AddEmailMessageAsync(messageElement);
|
|
||||||
_logger.Debug($"SendEmail result: {result}");
|
_logger.Debug($"SendEmail result: {result}");
|
||||||
|
|
||||||
return Ok(result);
|
return Ok(result);
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
[Authorize]
|
[Authorize]
|
||||||
[ApiController]
|
[ApiController]
|
||||||
[Route("api/v1/[controller]")]
|
[Route("api/v1/[controller]")]
|
||||||
public class ServiceProviderAPIController(AdminDal adminDal, IEnumerable<IAcLogWriterBase> logWriters) : ControllerBase
|
public class ServiceProviderAPIController(AdminDal adminDal, IWebHostEnvironment env, IEnumerable<IAcLogWriterBase> logWriters) : ControllerBase
|
||||||
{
|
{
|
||||||
private readonly TIAM.Core.Loggers.Logger<ServiceProviderAPIController> _logger = new(logWriters.ToArray());
|
private readonly TIAM.Core.Loggers.Logger<ServiceProviderAPIController> _logger = new(logWriters.ToArray());
|
||||||
|
|
||||||
|
|
@ -510,7 +510,8 @@ namespace TIAMWebApp.Server.Controllers
|
||||||
var qrCodeData = qrGenerator.CreateQrCode($"https://touriam.com/{productId}", QRCodeGenerator.ECCLevel.Q);
|
var qrCodeData = qrGenerator.CreateQrCode($"https://touriam.com/{productId}", QRCodeGenerator.ECCLevel.Q);
|
||||||
var qrCode = new QRCode(qrCodeData);
|
var qrCode = new QRCode(qrCodeData);
|
||||||
//Bitmap qrCodeImage = qrCode.GetGraphic(20);
|
//Bitmap qrCodeImage = qrCode.GetGraphic(20);
|
||||||
var rootpath = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "assets");
|
//var rootpath = System.IO.Path.Combine(System.IO.Directory.GetCurrentDirectory(), "assets");
|
||||||
|
var rootpath = System.IO.Path.Combine(env.WebRootPath, "assets");
|
||||||
var qrCodeImage = qrCode.GetGraphic(20, Color.DarkMagenta, Color.White, (Bitmap)Bitmap.FromFile(rootpath + "/myimage.png"));
|
var qrCodeImage = qrCode.GetGraphic(20, Color.DarkMagenta, Color.White, (Bitmap)Bitmap.FromFile(rootpath + "/myimage.png"));
|
||||||
_logger.Info($@"qrCodeLogo: {rootpath}/myimage.png");
|
_logger.Info($@"qrCodeLogo: {rootpath}/myimage.png");
|
||||||
var ms = new MemoryStream();
|
var ms = new MemoryStream();
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,9 @@
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<WasmEnableSIMD>false</WasmEnableSIMD>
|
<WasmEnableSIMD>false</WasmEnableSIMD>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="wwwroot\Assets\myimage.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="AutoMapper" Version="13.0.1" />
|
<PackageReference Include="AutoMapper" Version="13.0.1" />
|
||||||
|
|
|
||||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Loading…
Reference in New Issue