protected override async Task OnBranchSelection(string command)
 {
     var branch = CurrentRepository.GetBranchInfo(includeRemote: false)
                  .FirstOrDefault(x => string.Equals(x.Name, command, StringComparison.OrdinalIgnoreCase));
     var switchInfo = new SwitchBranchInfo()
     {
         BranchInfo = branch,
         Switch     = true,
         Repository = CurrentRepository
     };
     await GitCommandWrappers.SwitchCommand(switchInfo);
 }
        internal async Task SwitchCommand(SwitchBranchInfo branchInfo)
        {
            var switchResult = await GitCommandWrappers.SwitchCommand(branchInfo);

            if (switchResult.Succeeded)
            {
                await UpdateRepositoryName();
            }
            else
            {
                MessageBox.Show(switchResult.ErrorMessage, "Error", MessageBoxButton.OK, MessageBoxImage.Exclamation);
            }
        }
        protected override async Task OnBranchCommandSelection(string command)
        {
            if (string.Equals("Create Branch", command, StringComparison.OrdinalIgnoreCase))
            {
                var branchPicker = new BranchPicker(CurrentRepository);
                var branchInfo   = branchPicker.Show();

                var switchResult = await GitCommandWrappers.SwitchCommand(branchInfo);

                if (!switchResult.Succeeded)
                {
                    MessageBox.Show(switchResult.ErrorMessage, "Error", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                }
            }
        }