示例#1
0
            protected override async Task RunProcess()
            {
                if (mode == DeleteBranchMode.ActualBranchOnly)
                {
                    await AppendProcess(cli.DeleteRemote(deletingBranch)).WaitUntilComplete();

                    await repository.BranchUpdated(deletingBranch, null, await repository.GetBranchRef(deletingBranch).Take(1));
                }
                else
                {
                    var details = await repository.GetBranchDetails(deletingBranch).FirstAsync();

                    using (var unitOfWork = unitOfWorkFactory.CreateUnitOfWork())
                    {
                        settings.DeleteBranchSettings(deletingBranch, unitOfWork);

                        await unitOfWork.CommitAsync();
                    }

                    if (mode != DeleteBranchMode.GroupOnly)
                    {
                        foreach (var branch in details.Branches)
                        {
                            await AppendProcess(cli.DeleteRemote(branch.Name)).WaitUntilComplete();

                            await repository.BranchUpdated(branch.Name, null, await repository.GetBranchRef(branch.Name).Take(1));
                        }
                    }
                }
            }