using System.Windows.Input;
using WorkFlowCheck.Common.DTO;

namespace WorkFlowCheck.MAUI.Pages.BaseStock.CheckPoints;

public partial class CheckPointEditPage : ContentPage
{
    public CheckPointDTO CheckPointDTO { get; set; }
    public ICommand SaveCommand { get; }
    public ICommand CancelCommand { get; }

    public CheckPointEditPage(CheckPointDTO checkPointDTO)
    {
        InitializeComponent();
        CheckPointDTO = checkPointDTO;
        BindingContext = this;

        SaveCommand = new Command(OnSave);
        CancelCommand = new Command(OnCancel);

        LoadCheckPointCheckListRows();
    }
    private void LoadCheckPointCheckListRows()
    {
        //IsRefreshing = true;
        //await _syncService.SyncDatas();
        CheckPointCheckListRows.ItemsSource = CheckPointDTO.CheckListTemplateRowDTO;
        //IsRefreshing = false;
        //OnPropertyChanged(nameof(IsRefreshing));
    }
    private async void OnSave()
    {
        // Adatok mentése és visszairányítás az előző oldalra
        // Például adatbázisba mentés előtt itt végrehajthatsz további műveleteket
        await Navigation.PopAsync();
    }

    // A törlési (Cancel) logika
    private async void OnCancel()
    {
        // Visszatérés az előző oldalra anélkül, hogy mentenénk bármit
        //await Navigation.PopAsync();
        await Shell.Current.GoToAsync("//CheckPointsPage");

    }
}
public class AnswerTypeTemplateSelector : DataTemplateSelector
{
    public DataTemplate I_N_Template { get; set; }
    public DataTemplate P_Template { get; set; }
    public DataTemplate V_Template { get; set; }
    public DataTemplate SI_N_Template { get; set; }
    public DataTemplate I_SN_Template { get; set; }
    public DataTemplate PI_N_Template { get; set; }
    public DataTemplate I_PN_Template { get; set; }

    protected override DataTemplate OnSelectTemplate(object item, BindableObject container) 
    {
        if (item is CheckListTemplateRowDTO model)
        {
            return model.AnswerType switch
            {
                "I-N" => I_N_Template,
                "P" => P_Template,
                "V" => V_Template,
                "SI-N" => SI_N_Template,
                "I-SN" => I_SN_Template,
                "PI-N" => PI_N_Template,
                "I-PN" => I_PN_Template,
                _ => I_N_Template
            };
        }

        return null;
    }
}