private void AddNewSource()
{
if (String.IsNullOrEmpty(Name))
{
throw new CommandLineException(NuGetResources.SourcesCommandNameRequired);
}
if (String.Equals(Name, NuGetResources.ReservedPackageNameAll))
{
throw new CommandLineException(NuGetResources.SourcesCommandAllNameIsReserved);
}
if (String.IsNullOrEmpty(Source))
{
throw new CommandLineException(NuGetResources.SourcesCommandSourceRequired);
}
// Make sure that the Source given is a valid one.
if (!PathValidator.IsValidSource(Source))
{
throw new CommandLineException(NuGetResources.SourcesCommandInvalidSource);
}
ValidateCredentials();
// Check to see if we already have a registered source with the same name or source
var sourceList = _sourceProvider.LoadPackageSources().ToList();
bool hasName = sourceList.Any(ps => String.Equals(Name, ps.Name, StringComparison.OrdinalIgnoreCase));
if (hasName)
{
throw new CommandLineException(NuGetResources.SourcesCommandUniqueName);
}
bool hasSource = sourceList.Any(ps => String.Equals(Source, ps.Source, StringComparison.OrdinalIgnoreCase));
if (hasSource)
{
throw new CommandLineException(NuGetResources.SourcesCommandUniqueSource);
}
var newPackageSource = new PackageSource(Source, Name) { UserName = UserName, Password = Password };
sourceList.Add(newPackageSource);
_sourceProvider.SavePackageSources(sourceList);
Console.WriteLine(NuGetResources.SourcesCommandSourceAddedSuccessfully, Name);
}