@using salesbook.Shared.Core.Dto
@using salesbook.Shared.Components.Layout
@using salesbook.Shared.Core.Interface
@using salesbook.Shared.Components.Layout.Overlay
@inject IAttachedService AttachedService
@if (RequireNewName)
{
}
else
{
@if (!SelectTypePicture)
{
@if (CanAddPosition)
{
}
}
else
{
}
}
@if (RequireNewName)
{
Salva
}
@code {
[CascadingParameter] private IMudDialogInstance MudDialog { get; set; }
[Parameter] public bool CanAddPosition { get; set; }
//Overlay for save
private bool VisibleOverlay { get; set; }
private bool SuccessAnimation { get; set; }
private AttachedDTO? Attached { get; set; }
private bool RequireNewName { get; set; }
private bool SelectTypePicture { get; set; }
private string? _newName;
private string? NewName
{
get => _newName;
set
{
_newName = value;
StateHasChanged();
}
}
protected override async Task OnInitializedAsync()
{
SelectTypePicture = false;
RequireNewName = false;
Snackbar.Configuration.PositionClass = Defaults.Classes.Position.TopCenter;
}
private async Task OnImage()
{
SelectTypePicture = true;
StateHasChanged();
}
private async Task OnCamera()
{
Attached = await AttachedService.SelectImageFromCamera();
RequireNewName = true;
StateHasChanged();
}
private async Task OnGallery()
{
Attached = await AttachedService.SelectImageFromGallery();
RequireNewName = true;
StateHasChanged();
}
private async Task OnFile()
{
Attached = await AttachedService.SelectFile();
MudDialog.Close(Attached);
}
private async Task OnPosition()
{
Attached = await AttachedService.SelectPosition();
RequireNewName = true;
StateHasChanged();
}
private void OnNewName()
{
switch (Attached.Type)
{
case AttachedDTO.TypeAttached.Position:
{
CanAddPosition = false;
Attached.Description = NewName!;
Attached.Name = NewName!;
break;
}
case AttachedDTO.TypeAttached.Image:
{
var extension = Path.GetExtension(Attached.Name);
Attached.Name = NewName! + extension;
break;
}
case AttachedDTO.TypeAttached.Document:
break;
default:
throw new ArgumentOutOfRangeException();
}
MudDialog.Close(Attached);
}
}