using Avalonia.Controls;
using Avalonia.Interactivity;

namespace SourceGit.Views
{
    public partial class CreateBranch : UserControl
    {
        public CreateBranch()
        {
            InitializeComponent();
        }

        protected override void OnLoaded(RoutedEventArgs e)
        {
            base.OnLoaded(e);

            var vm = DataContext as ViewModels.CreateBranch;
            if (vm == null)
                return;

            switch (vm.PreAction)
            {
                case Models.DealWithLocalChanges.DoNothing:
                    RadioDoNothing.IsChecked = true;
                    break;
                case Models.DealWithLocalChanges.StashAndReaply:
                    RadioStashAndReply.IsChecked = true;
                    break;
                default:
                    RadioDiscard.IsChecked = true;
                    break;
            }
        }

        private void OnLocalChangeActionIsCheckedChanged(object sender, RoutedEventArgs e)
        {
            var vm = DataContext as ViewModels.CreateBranch;
            if (vm == null)
                return;

            if (RadioDoNothing.IsChecked == true)
            {
                if (vm.PreAction != Models.DealWithLocalChanges.DoNothing)
                    vm.PreAction = Models.DealWithLocalChanges.DoNothing;
                return;
            }

            if (RadioStashAndReply.IsChecked == true)
            {
                if (vm.PreAction != Models.DealWithLocalChanges.StashAndReaply)
                    vm.PreAction = Models.DealWithLocalChanges.StashAndReaply;
                return;
            }

            if (vm.PreAction != Models.DealWithLocalChanges.Discard)
                vm.PreAction = Models.DealWithLocalChanges.Discard;
        }
    }
}
