public Loaders(IDataLoaderContextAccessor loadContextAccessor, IBranchSettingsAccessor branchSettings, IUserPermissionAccessor permissionAccessor, IRemoteRepositoryState repositoryState, IBranchIterationNamingConvention branchIteration, IGitServiceApi gitService, ILoggerFactory loggerFactory) { this.logger = loggerFactory.CreateLogger <Loaders>(); this.loadContext = loadContextAccessor.LoadContext; this.branchSettings = branchSettings; this.permissionAccessor = permissionAccessor; this.repositoryState = repositoryState; this.branchIteration = branchIteration; this.gitService = gitService; }
public async Task <IActionResult> PredictConsolidation([FromQuery] string target, [FromQuery] string source, [FromServices] IBranchSettingsAccessor accessor) { var targetGroup = await branchSettings.GetBranchDetails(target).FirstAsync(); var toRemove = targetGroup.DownstreamBranchGroups.Contains(target) ? targetGroup.DownstreamBranchGroups.Intersect((await accessor.GetUpstreamBranchGroups(source))[source].Concat(new[] { source })).ToArray() : targetGroup.UpstreamBranchGroups.Intersect((await accessor.GetDownstreamBranchGroups(source))[source].Concat(new[] { source })).ToArray(); return(Ok(new { toRemove, consolidation = await accessor.CalculateConsolidation(toRemove, target) })); }