Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
        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) }));
        }