This commit is contained in:
Adam 2024-06-26 11:06:33 +02:00
commit 9412a02d82
7 changed files with 150 additions and 40 deletions

View File

@ -88,15 +88,15 @@
</ItemGroup>
<ItemGroup>
<PackageReference Update="Microsoft.AspNetCore.Components.WebView.Maui" Version="8.0.60" />
<PackageReference Update="Microsoft.AspNetCore.Components.WebView.Maui" Version="8.0.61" />
</ItemGroup>
<ItemGroup>
<PackageReference Update="Microsoft.Maui.Controls" Version="8.0.60" />
<PackageReference Update="Microsoft.Maui.Controls" Version="8.0.61" />
</ItemGroup>
<ItemGroup>
<PackageReference Update="Microsoft.Maui.Controls.Compatibility" Version="8.0.60" />
<PackageReference Update="Microsoft.Maui.Controls.Compatibility" Version="8.0.61" />
</ItemGroup>
</Project>

View File

@ -19,6 +19,7 @@
@using AyCode.Core.Consts
@using AyCode.Core
@using AyCode.Core.Helpers
@using DevExpress.Data.Filtering
@using TIAM.Entities.Emails
@layout AdminLayout
@inject IEnumerable<IAcLogWriterClientBase> LogWriters
@ -132,7 +133,7 @@
<CellDisplayTemplate>
@{
TransferStatusModel keyField = Statuses.FirstOrDefault(x => x.StatusValue == Convert.ToInt16(context.Value));
TransferStatusModel keyField = Statuses.FirstOrDefault(x => x.StatusValue == (byte)context.Value)!;
string transferStatusText = keyField.StatusName;
<text>@transferStatusText</text>
}
@ -149,22 +150,22 @@
</DxTabPage>
</DxTabs>
</DetailRowTemplate>
<EditFormTemplate Context="EditFormContext">
<EditFormTemplate Context="editFormContext">
@{
var transfer2 = (Transfer)EditFormContext.EditModel;
var transfer2 = (Transfer)editFormContext.EditModel;
}
<DxFormLayout CssClass="w-100">
<DxFormLayoutItem Caption=@localizer.GetString(ResourceKeys.FirstName) ColSpanMd="6">
@EditFormContext.GetEditor("FirstName")
@editFormContext.GetEditor("FirstName")
</DxFormLayoutItem>
<DxFormLayoutItem Caption=@localizer.GetString(ResourceKeys.LastName) ColSpanMd="6">
@EditFormContext.GetEditor("LastName")
@editFormContext.GetEditor("LastName")
</DxFormLayoutItem>
<DxFormLayoutItem Caption=@localizer.GetString(ResourceKeys.DestinationAddress) ColSpanMd="6">
@EditFormContext.GetEditor("ToAddress")
@editFormContext.GetEditor("ToAddress")
</DxFormLayoutItem>
<DxFormLayoutItem Caption=@localizer.GetString(ResourceKeys.PickupAddress) ColSpanMd="6">
@EditFormContext.GetEditor("FromAddress")
@editFormContext.GetEditor("FromAddress")
</DxFormLayoutItem>
<DxFormLayoutItem Caption="Trip date:" ColSpanMd="6">
@ -175,21 +176,28 @@
</DxFormLayoutItem>
<DxFormLayoutItem Caption="Passengers:" ColSpanMd="6">
@EditFormContext.GetEditor("PassengerCount")
@editFormContext.GetEditor("PassengerCount")
</DxFormLayoutItem>
<DxFormLayoutItem Caption="Paid:" ColSpanMd="6">
@EditFormContext.GetEditor("Payed")
@editFormContext.GetEditor("Payed")
</DxFormLayoutItem>
<DxFormLayoutItem Caption="Status:" ColSpanMd="6">
@EditFormContext.GetEditor("TransferStatusType")
@editFormContext.GetEditor("TransferStatusType")
</DxFormLayoutItem>
</DxFormLayout>
</EditFormTemplate>
<ToolbarTemplate>
<div>
<DxTagBox Data="@Statuses" Values="@SelectedCategories" @ref="_filterTag"
ValuesChanged="(IEnumerable<TransferStatusModel> values) => TagBox_ValuesChanged(values)"
ValueFieldName="StatusValue" TextFieldName="StatusName" NullText="Select category..."
ClearButtonDisplayMode="DataEditorClearButtonDisplayMode.Auto" aria-label="Select category" />
</div>
</ToolbarTemplate>
</TransferGrid>
</div>
</DxTabPage>
@ -228,6 +236,10 @@
private bool _popupVisible;
private bool _autoCollapseDetailRow;
private TransferGrid _gridTransfer;
private DxTagBox<TransferStatusModel, TransferStatusModel> _filterTag;
List<TransferStatusModel> SelectedCategories { get; set; }
= Statuses.Where(x => x.StatusValue != (byte)TransferStatusType.Finished && x.StatusValue != (byte)TransferStatusType.UserCanceled && x.StatusValue != (byte)TransferStatusType.AdminDenied).ToList();
public List<string> IgnoreList =
[
@ -240,17 +252,17 @@
"ContextId",
];
public List<TransferStatusModel> Statuses { get; set; } =
public static List<TransferStatusModel> 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")
new(Convert.ToByte(TransferStatusType.OrderSubmitted), "Order submitted"),
new(Convert.ToByte(TransferStatusType.OrderConfirmed), "Order confirmed"),
new(Convert.ToByte(TransferStatusType.AssignedToDriver), "Assigned to driver"),
new(Convert.ToByte(TransferStatusType.DriverConfirmed), "Driver confirmed"),
new(Convert.ToByte(TransferStatusType.DriverEnRoute), "Driver enroute"),
new(Convert.ToByte(TransferStatusType.PassengerPickup), "Passenger in car"),
new(Convert.ToByte(TransferStatusType.Finished), "Finished"),
new(Convert.ToByte(TransferStatusType.UserCanceled), "User cancelled"),
new(Convert.ToByte(TransferStatusType.AdminDenied), "Admin cancelled")
];
private MessageWizardModel _messageWizardModel = new();
@ -296,7 +308,7 @@
public async Task SubmitForm(object result)
{
var messageModel = result as MessageWizardModel;
var messageModel = (result as MessageWizardModel)!;
messageModel.ContextId = _messageWizardModel.ContextId;
//messageModel.SenderId = sessionService.User.UserId;
@ -364,11 +376,34 @@
transferEditModel.ContactEmail = "your@email.address";
}
void TagBox_ValuesChanged(IEnumerable<TransferStatusModel> newSelectedCategories)
{
SelectedCategories = newSelectedCategories.ToList();
var filterCriteria = SelectedCategories.Any()
? new InOperator("TransferStatusType", SelectedCategories.Select(c => c.StatusValue))
: null;
_gridTransfer.SetFieldFilterCriteria("TransferStatusType", filterCriteria);
}
private void DataSourceChanged(IList<Transfer> transfers)
{
_logger.Info("DataSourceChanged called");
InitializeAppointments(transfers);
if (SelectedCategories.Count > 0)
TagBox_ValuesChanged(SelectedCategories);
if(!SelectedCategories.Any())
SelectedCategories = [Statuses.FirstOrDefault(x => x.StatusValue == (byte)TransferStatusType.Finished)!];
// var filterTransferStatusType = Statuses.FirstOrDefault(x => x.StatusValue == (byte)TransferStatusType.Finished)!;
// if (SelectedCategories.All(x => x.StatusValue != filterTransferStatusType.StatusValue))
// SelectedCategories.Add(filterTransferStatusType);
}
private void DataSourceItemChanging(GridDataItemChangingEventArgs<Transfer> args)
@ -452,7 +487,7 @@
{
if (firstRender)
{
_gridTransfer.ExpandDetailRow(0);
//_gridTransfer.ExpandDetailRow(0);
}
}

View File

@ -114,7 +114,7 @@ namespace TIAMSharedUI.Shared.Components.Grids
Logger.Debug($"{_gridLogName} OnDataSourceLoaded");
Reload();
_dataSource.LoadItem(_dataSource.First().Id).Forget();
//_dataSource.LoadItem(_dataSource.First().Id).Forget();
return OnDataSourceChanged.InvokeAsync(_dataSource);
}

View File

@ -14,7 +14,7 @@
<ItemGroup>
<PackageReference Include="Blazor.AnimateOnScroll" Version="1.1.0" />
<PackageReference Include="BlazorAnimation" Version="2.2.0" />
<PackageReference Include="DevExpress.Blazor" Version="23.2.3" />
<PackageReference Include="DevExpress.Blazor" Version="24.1.3" />
<PackageReference Include="MessagePack" Version="2.5.168" />
<PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="8.0.6" />
<PackageReference Include="Microsoft.Extensions.Localization" Version="8.0.6" />

View File

@ -0,0 +1,82 @@
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<SupportedPlatform Include="browser" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Blazor.AnimateOnScroll" Version="1.1.0" />
<PackageReference Include="BlazorAnimation" Version="2.2.0" />
<PackageReference Include="DevExpress.Blazor" Version="23.2.3" />
<PackageReference Include="MessagePack" Version="2.5.168" />
<PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="8.0.6" />
<PackageReference Include="Microsoft.Extensions.Localization" Version="8.0.6" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Aycode.Blazor\AyCode.Blazor.Components\AyCode.Blazor.Components.csproj" />
<ProjectReference Include="..\..\Aycode.Blazor\AyCode.Blazor.Models\AyCode.Blazor.Models.csproj" />
<ProjectReference Include="..\TIAM.Entities\TIAM.Entities.csproj" />
<ProjectReference Include="..\TIAM.Models\TIAM.Models.csproj" />
<ProjectReference Include="..\TIAMResources\TIAM.Resources.csproj" />
<ProjectReference Include="..\TIAMWebApp\Shared\TIAMWebApp.Shared.Application.csproj" />
</ItemGroup>
<ItemGroup>
<Reference Include="AyCode.Core">
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.dll</HintPath>
</Reference>
<Reference Include="AyCode.Core.Server">
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Core.Server.dll</HintPath>
</Reference>
<Reference Include="AyCode.Entities">
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Entities.dll</HintPath>
</Reference>
<Reference Include="AyCode.Interfaces">
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Interfaces.dll</HintPath>
</Reference>
<Reference Include="AyCode.Models">
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Models.dll</HintPath>
</Reference>
<Reference Include="AyCode.Services">
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Services.dll</HintPath>
</Reference>
<Reference Include="AyCode.Utils">
<HintPath>..\..\AyCode.Core\AyCode.Services.Server\bin\Debug\net8.0\AyCode.Utils.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Update="Resources\MyResources.Designer.cs">
<DependentUpon>MyResources.resx</DependentUpon>
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Update="Resources\MyResources.resx">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<LastGenOutput>MyResources.Designer.cs</LastGenOutput>
<Generator>PublicResXFileCodeGenerator</Generator>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Folder Include="Pages\User\Guides\" />
</ItemGroup>
<ItemGroup>
<Content Update="Pages\User\SysAdmins\AddressDetailGridComponent.razor">
<ExcludeFromSingleFile>true</ExcludeFromSingleFile>
</Content>
</ItemGroup>
</Project>

View File

@ -371,19 +371,12 @@ namespace TIAMWebApp.Server.Controllers
[Route(APIUrls.AddProductRouteName)]
[Tags("In-Progress", "Product")]
[SignalR(SignalRTags.AddProduct)]
public async Task<IActionResult> AddProduct([FromBody] Product product)
public async Task<Product> AddProduct([FromBody] Product product)
{
_logger.Info(@"AddProduct called");
if (product == null)
{
return BadRequest("Product is required");
}
else
{
var result = await adminDal.AddProductAsync(product);
return Ok(product);
}
var result = await adminDal.AddProductAsync(product);
return product;
}
//[HttpPost]

View File

@ -2,10 +2,10 @@
{
public class TransferStatusModel
{
public int StatusValue { get; set; }
public byte StatusValue { get; set; }
public string StatusName { get; set; }
public TransferStatusModel(int statusValue, string statusName)
public TransferStatusModel(byte statusValue, string statusName)
{
StatusValue = statusValue;
StatusName = statusName;