Address and Profile Grid
This commit is contained in:
parent
fc754a077a
commit
3302a9ee8e
|
|
@ -0,0 +1,44 @@
|
|||
@using TIAM.Entities.Addresses
|
||||
@* @typeparam TModel *@
|
||||
<EditForm Context="EditFormContext" Model="@Model" OnValidSubmit="OnValidSubmit">
|
||||
<DxFormLayout>
|
||||
<DxFormLayoutGroup ColCountMd="2">
|
||||
<DxFormLayoutItem Caption="Address Text">
|
||||
<DxTextBox @bind-Text="Model.AddressText" />
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption="Is Helper">
|
||||
<DxCheckBox @bind-Checked="Model.IsHelper" />
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption="Is Valid">
|
||||
<DxCheckBox @bind-Checked="Model.IsValid" />
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption="Latitude">
|
||||
<DxSpinEdit @bind-Value="Model.Latitude" />
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption="Longitude">
|
||||
<DxSpinEdit @bind-Value="Model.Longitude" />
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption="Created">
|
||||
<DxDateEdit @bind-Date="Model.Created" ReadOnly="true" />
|
||||
</DxFormLayoutItem>
|
||||
<DxFormLayoutItem Caption="Modified">
|
||||
<DxDateEdit @bind-Date="Model.Modified" ReadOnly="true" />
|
||||
</DxFormLayoutItem>
|
||||
<DxButton Context="ButtonContext" RenderStyle="ButtonRenderStyle.Primary" ButtonType="ButtonType.Submit">Save Changes</DxButton>
|
||||
</DxFormLayoutGroup>
|
||||
</DxFormLayout>
|
||||
</EditForm>
|
||||
|
||||
@code {
|
||||
[Parameter]
|
||||
public Address Model { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public EventCallback<Address> OnAddressChanged { get; set; }
|
||||
|
||||
|
||||
private async Task OnValidSubmit()
|
||||
{
|
||||
await OnAddressChanged.InvokeAsync(Model);
|
||||
}
|
||||
}
|
||||
|
|
@ -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<IAcLogWriterClientBase> LogWriters
|
||||
|
||||
<div class="mb-2">
|
||||
Profile
|
||||
</div>
|
||||
<DxGrid Data="_detailGridData"
|
||||
PageSize="5"
|
||||
AutoExpandAllGroupRows="true"
|
||||
KeyboardNavigationEnabled="KeyboardNavigationEnabled"
|
||||
KeyFieldName="Id"
|
||||
ValidationEnabled="false"
|
||||
CustomizeEditModel="CustomizeEditModel"
|
||||
EditModelSaving="EditModelSaving"
|
||||
DataItemDeleting="DataItemDeleting"
|
||||
EditMode="GridEditMode.EditForm"
|
||||
ColumnResizeMode="GridColumnResizeMode.NextColumn"
|
||||
ShowFilterRow="true">
|
||||
<Columns>
|
||||
<DxGridCommandColumn NewButtonVisible="true" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
|
||||
<DxGridDataColumn FieldName="Id" GroupIndex="0" />
|
||||
<DxGridDataColumn FieldName="AddressText" />
|
||||
<DxGridDataColumn FieldName="IsValid" Width="40" />
|
||||
<DxGridDataColumn FieldName="IsHelper" Width="40"/>
|
||||
<DxGridDataColumn FieldName="Latitude" Width="40"/>
|
||||
<DxGridDataColumn FieldName="Longitude" Width="40"/>
|
||||
<DxGridDataColumn FieldName="Created" Width="40"/>
|
||||
<DxGridDataColumn FieldName="Modified" Width="40"/>
|
||||
</Columns>
|
||||
<EditFormTemplate>
|
||||
@{
|
||||
Address bleh = (Address)context.EditModel;
|
||||
}
|
||||
@* <EditAddressComponent TModel="Address" Model="@bleh" OnAddressChanged="@((Address model) => SaveAddress(model))" /> *@
|
||||
<EditAddressComponent Model="@((Address)context.EditModel)" OnAddressChanged="@((Address model) => SaveAddress(model))" />
|
||||
</EditFormTemplate>
|
||||
|
||||
</DxGrid>
|
||||
|
||||
@code {
|
||||
[Parameter]
|
||||
public bool KeyboardNavigationEnabled { get; set; }
|
||||
[Parameter]
|
||||
public object AddressContext { get; set; }
|
||||
[Parameter]
|
||||
public string ContextIdType { get; set; }
|
||||
|
||||
|
||||
List<TIAM.Entities.Addresses.Address> _detailGridData;
|
||||
|
||||
List<TIAM.Entities.Addresses.Address> _availableProfiles;
|
||||
|
||||
ILogger _logger;
|
||||
|
||||
public void SaveAddress(Address addressToSave)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
Address myAddress = new Address();
|
||||
|
||||
|
||||
_logger = new LoggerClient<AddressGridComponent>(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();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -37,12 +37,18 @@
|
|||
<DxPopup
|
||||
@bind-Visible="@SetOwnerPopupVisible"
|
||||
ShowFooter="true"
|
||||
HeaderText="Set owner"
|
||||
HeaderText="Set owner by adding E-mail address"
|
||||
>
|
||||
<BodyContentTemplate>
|
||||
<DxTextBox CssClass="form-field" @Bind-Text="@UpdateOwnerIdText">
|
||||
|
||||
</DxTextBox>
|
||||
<label for="emailID" class="demo-text mt-4 mb-1">
|
||||
Put user email here
|
||||
</label>
|
||||
<DxMaskedInput @bind-Value="@Email"
|
||||
CssClass="cw-320"
|
||||
Mask="@EmailMask"
|
||||
InputId="emailID"
|
||||
MaskMode="MaskMode.RegEx" />
|
||||
|
||||
</BodyContentTemplate>
|
||||
<FooterContentTemplate>
|
||||
<DxButton CssClass="popup-button my-1 ms-2" RenderStyle="ButtonRenderStyle.Primary" Text="OK" Click="@(() => SetOwnerPopupVisible = false)" />
|
||||
|
|
@ -102,9 +108,10 @@
|
|||
<CellDisplayTemplate>
|
||||
@{
|
||||
var keyField = context.Value;
|
||||
Guid keyFieldValue = (Guid)keyField;
|
||||
var keyItem = (Company)context.DataItem;
|
||||
string buttonText = "Set owner";
|
||||
if(keyField == null)
|
||||
if(keyFieldValue == Guid.Empty)
|
||||
{
|
||||
<DxButton Click="() => SetOwnerPopup(keyItem)" Text="@buttonText" RenderStyle="ButtonRenderStyle.Primary" />
|
||||
}
|
||||
|
|
@ -119,8 +126,11 @@
|
|||
</DxGridDataColumn> *@
|
||||
|
||||
</Columns>
|
||||
<DetailRowTemplate>
|
||||
@* <DetailRowTemplate>
|
||||
<CompaniesNestedUserProductMapping CurrentCompany="(TIAM.Entities.ServiceProviders.Company)context.DataItem" KeyboardNavigationEnabled="true" />
|
||||
</DetailRowTemplate> *@
|
||||
<DetailRowTemplate>
|
||||
<AddressGridComponent Context="(TIAM.Entities.ServiceProviders.Company)context.DataItem" KeyboardNavigationEnabled="true" />
|
||||
</DetailRowTemplate>
|
||||
<EditFormTemplate Context="EditFormContext">
|
||||
@{
|
||||
|
|
@ -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<Company> 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);
|
||||
|
|
|
|||
|
|
@ -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<IAcLogWriterClientBase> LogWriters
|
||||
|
||||
<div class="mb-2">
|
||||
Profile
|
||||
</div>
|
||||
<DxGrid Data="_detailGridData"
|
||||
PageSize="5"
|
||||
AutoExpandAllGroupRows="true"
|
||||
KeyboardNavigationEnabled="KeyboardNavigationEnabled"
|
||||
KeyFieldName="Id"
|
||||
ValidationEnabled="false"
|
||||
CustomizeEditModel="CustomizeEditModel"
|
||||
EditModelSaving="EditModelSaving"
|
||||
DataItemDeleting="DataItemDeleting"
|
||||
EditMode="GridEditMode.EditForm"
|
||||
ColumnResizeMode="GridColumnResizeMode.NextColumn"
|
||||
ShowFilterRow="true">
|
||||
<Columns>
|
||||
<DxGridCommandColumn NewButtonVisible="true" Width="8%" FixedPosition="GridColumnFixedPosition.Left" />
|
||||
<DxGridDataColumn FieldName="Id" GroupIndex="0" />
|
||||
<DxGridDataColumn FieldName="UserId" />
|
||||
<DxGridDataColumn FieldName="ProductId" Width="40%" />
|
||||
<DxGridDataColumn FieldName="Permissions" />
|
||||
</Columns>
|
||||
|
||||
|
||||
</DxGrid>
|
||||
|
||||
@code {
|
||||
[Parameter]
|
||||
public bool KeyboardNavigationEnabled { get; set; }
|
||||
[Parameter]
|
||||
public object ProfileContext { get; set; }
|
||||
[Parameter]
|
||||
public string ContextIdType { get; set; }
|
||||
|
||||
List<TIAM.Entities.Profiles.Profile> _detailGridData;
|
||||
|
||||
List<TIAM.Entities.Profiles.Profile> _availableProfiles;
|
||||
|
||||
ILogger _logger;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
_logger = new LoggerClient<UserGrid_MasterDetail_NestedGrid_ServiceProviders>(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();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue