Files
2026-05-16 21:29:22 +02:00

176 lines
5.2 KiB
Plaintext

@using Microsoft.AspNetCore.Components.Routing
@using ModelsLib
@using MudBlazor
@inject NavigationManager Navigation
@rendermode InteractiveServer
@inject IWebHostEnvironment Env
@inject PhotoService ShootingDb
@inject IDialogService DialogService
<MudHidden Breakpoint="Breakpoint.MdAndDown">
<MudAppBar Color="Color.Dark" Elevation="4">
<!-- Logo -->
<MudText Typo="Typo.h6" Class="ml-2">
<MudNavLink Href="/" Class="nav-link">
Photo Sharing Helrira
</MudNavLink>
</MudText>
<MudSpacer />
<!-- Menu desktop -->
<MudNavMenu Class="d-flex">
<MudNavLink Href="/shootingdesire" Class="nav-link">
Projets
</MudNavLink>
<MudNavLink Href="/Contact" Class="nav-link">
Contact
</MudNavLink>
</MudNavMenu>
<!-- Recherche desktop -->
<MudStack Row="true" Spacing="2" Class="ml-4">
<MudTextField @bind-Value="Id"
Label="Recherche"
Variant="Variant.Outlined"
Style="color: white;"
InputStyle="color: white;" />
<MudButton OnClick="SendSelection"
Variant="Variant.Outlined"
Color="Color.Inherit">
Rechercher
</MudButton>
</MudStack>
</MudAppBar>
</MudHidden>
<MudHidden Breakpoint="Breakpoint.LgAndUp">
<!-- Drawer mobile -->
<!-- AppBar mobile -->
<MudAppBar Color="Color.Dark" Elevation="4">
<!-- Bouton burger -->
<MudIconButton Icon="@Icons.Material.Filled.Menu"
Color="Color.Default"
OnClick="@(() => _drawerOpen = true)" />
<MudText Typo="Typo.h6" Class="ml-2">
<MudNavLink Href="/" Class="nav-link">
Photo Sharing Helrira
</MudNavLink>
</MudText>
<MudSpacer />
<!-- Bouton recherche -->
<MudIconButton Icon="@Icons.Material.Filled.Search"
Color="Color.Default"
OnClick="OpenSearchDialogAsync" />
</MudAppBar>
<!-- Drawer mobile -->
<MudDrawer @bind-Open="_drawerOpen"
Anchor="Anchor.Left"
Variant="DrawerVariant.Temporary"
Color="Color.Dark"
Class="custom-drawer drawer-fixed-width">
<MudStack Spacing="2" Class="pa-3" Style="display:flex; flex-direction:column; height:100%;">
<MudNavMenu Class="flex-grow-1">
<MudNavLink Href="/shootingdesire">Projets</MudNavLink>
<MudNavLink Href="/Contact">Contact</MudNavLink>
</MudNavMenu>
</MudStack>
</MudDrawer>
</MudHidden>
@code {
private string Id { get; set; } = "";
private bool _drawerOpen = false;
private async Task OpenSearchDialogAsync()
{
try
{
var parameters = new DialogParameters();
parameters.Add("OnSearch", EventCallback.Factory.Create<string>(this, SendSelectionMobil));
var options = new DialogOptions
{
MaxWidth = MaxWidth.Small,
FullWidth = true
};
var dialogRef = await DialogService.ShowAsync<SearchDialog>("", parameters, options);
var result = await dialogRef.Result;
if (!result.Canceled)
{
Console.WriteLine("Résultat : " + result.Data);
}
}
catch (Exception ex)
{
Console.WriteLine("ERREUR DIALOG : " + ex.Message);
Console.WriteLine(ex.StackTrace);
}
}
void ToggleDrawer() => _drawerOpen = !_drawerOpen;
/// <summary>
/// a la validation de la saisie
/// </summary>
private async void SendSelectionMobil(string value)
{
Id = value;
//si une saisie est faite dans le champs
SendSelection();
}
/// <summary>
/// a la validation de la saisie
/// </summary>
private async void SendSelection()
{
//si une saisie est faite dans le champs
if (!string.IsNullOrWhiteSpace(Id))
{
string idSaisie = Id.ToLower().Trim();//passage en full minuscule + suppression espace
var path = Path.Combine(Env.WebRootPath, "Photos", idSaisie);
bool dossierExiste = Directory.Exists(path);//verification de présence du dossier
if (dossierExiste)
{
ShootingData datas = ShootingDb.GetInfosShooting(idSaisie);
if (datas == null)
{
await ShootingDb.AddShootingInfoPerDefault(idSaisie);
}
else
{
if (datas.IsPhotosSelected)
{
Navigation.NavigateTo($"/Share?Id={idSaisie}");//redirection vers le shooting post retouche
}
else
{
Navigation.NavigateTo($"/PhotoSelect?Id={idSaisie}");//redirection vers le shooting à selectionné
}
}
}
else
{
Navigation.NavigateTo($"/PhotoSelectError");//redirection vers page d'erreur
}
}
}
}