/// Factory class to create connections to Team Foundation Server
/// </summary>
public static class TfsFactory
{ private static string _url;
private static string _user;
private static string _domain;
private static string _password;
private static object _lockObject = new object();
/// <summary>
/// Create a new server instance
/// </summary>
/// <param name="serverConfig">The connection string name</param>
/// <returns></returns>
public static TeamFoundationServer CreateServer(string serverConfig)
{ if (_url == null)
{ lock (_lockObject)
{ if (_url == null)
{ ConnectionStringSettings setting = WebConfigurationManager.ConnectionStrings[serverConfig];
if (setting == null)
throw new Exception("Cannot find a connection string with name " + serverConfig);
TfsConnectionStringBuilder conn = new TfsConnectionStringBuilder(setting.ConnectionString);
_url = conn.TfsUrl;
_user = conn.TfsUsername;
_password = conn.TfsPassword;
_domain = conn.TfsDomain;
}
}
}
return new TeamFoundationServer(_url, new NetworkCredential(_user, _password, _domain));
}
}