public List <Dependency> MergeDependencies(CompileDependencies rawDependencies, CompileDependencies userDefinedDependencies, CompileDependencies userDefinedAuth) { Log($"{nameof(MergeDependencies)}: user-authentication specified: {! string.IsNullOrEmpty(userDefinedAuth.Username)}"); Dependency userAuth = null; if (!string.IsNullOrEmpty(userDefinedAuth.Username)) { if (!string.IsNullOrEmpty(userDefinedAuth.AuthenticationType)) { Authentication = userDefinedAuth.AuthenticationType; } userAuth = new Dependency { Username = userDefinedAuth.Username, Password = userDefinedAuth.Password, Email = userDefinedAuth.Email }; } Log($"{nameof(MergeDependencies)}: raw dependencies count = {rawDependencies.Dependencies.Count}"); IDictionary <string, Dependency> transformedRawDependencies = rawDependencies.Dependencies.Select(p => new Dependency { Branch = p.Branch, Commit = p.Commit, DependencyName = p.DependencyName, TopFolder = p.TopFolder, Remote = p.Remote, Username = (userAuth == null) ? rawDependencies.Username : userAuth.Username, Password = (userAuth == null) ? rawDependencies.Password : userAuth.Password, Email = (userAuth == null) ? rawDependencies.Email : userAuth.Email, LocalFolder = p.LocalFolder }).ToDictionary(p => p.DependencyName); Log($"{nameof(MergeDependencies)}: user-defined dependencies specified: {userDefinedDependencies.Dependencies != null}"); var transformedUserDefinedDependencies = userDefinedDependencies.Dependencies.Select(p => new Dependency { Branch = p.Branch, Commit = p.Commit, DependencyName = p.DependencyName, TopFolder = p.TopFolder, Remote = string.Format(p.Remote, userDefinedDependencies.Username, userDefinedDependencies.Password), Username = (userAuth == null) ? userDefinedDependencies.Username : userAuth.Username, Password = (userAuth == null) ? userDefinedDependencies.Password : userAuth.Password, Email = (userAuth == null) ? userDefinedDependencies.Email : userAuth.Email, LocalFolder = p.LocalFolder }).ToDictionary(p => p.DependencyName); Log($"{nameof(MergeDependencies)}: performing..."); foreach (var p in transformedUserDefinedDependencies) { transformedRawDependencies[p.Key] = p.Value; } Log($"{nameof(MergeDependencies)}: dependencies count = {transformedUserDefinedDependencies.Count}"); return(transformedRawDependencies.Select(p => p.Value).ToList()); }
private CompileDependencies readUserDefinedAuth() { CompileDependencies _userAuth = new CompileDependencies(); if (File.Exists(DependencyFile)) { try { _userAuth = JsonConvert.DeserializeObject <CompileDependencies>(File.ReadAllText(UserAuthenticationFile)); } catch (Exception ex) { Warn($"Unable to read or deserialize '{UserAuthenticationFile}': {ex.Message}"); } } return(_userAuth); }