diff --git a/VersionOne.VisualStudio.DataLayer/Settings/VersionOneSettings.cs b/VersionOne.VisualStudio.DataLayer/Settings/VersionOneSettings.cs
index 7d17a5b..c2f4ca1 100644
--- a/VersionOne.VisualStudio.DataLayer/Settings/VersionOneSettings.cs
+++ b/VersionOne.VisualStudio.DataLayer/Settings/VersionOneSettings.cs
@@ -1,12 +1,22 @@
namespace VersionOne.VisualStudio.DataLayer.Settings {
- public class VersionOneSettings {
+ public class VersionOneSettings
+ {
+ public string Path { get; set; }
+
+ public string Username { get; set; }
+ public string Password { get; set; }
+
public bool Integrated { get; set; }
- public string Path { get; set; }
- public string Username { get; set; }
- public string Password { get; set; }
+
+ public bool OAuth2 { get; set; }
+ public string SecretsFile { get; set; }
+ public string CredsFile { get; set; }
+
public ProxyConnectionSettings ProxySettings { get; set; }
- public VersionOneSettings() {
+ public VersionOneSettings()
+ {
+ OAuth2 = true;
ProxySettings = new ProxyConnectionSettings();
}
}
diff --git a/VersionOne.VisualStudio.DataLayer/VersionOne.VisualStudio.DataLayer.csproj b/VersionOne.VisualStudio.DataLayer/VersionOne.VisualStudio.DataLayer.csproj
index 96a3dc9..9ee21ec 100644
--- a/VersionOne.VisualStudio.DataLayer/VersionOne.VisualStudio.DataLayer.csproj
+++ b/VersionOne.VisualStudio.DataLayer/VersionOne.VisualStudio.DataLayer.csproj
@@ -42,19 +42,32 @@
..\Common\SigningKey\VersionOne.snk
+
+ False
+ ..\packages\TreeViewAdv.1.7.0.0\lib\net\Aga.Controls.dll
+
+
+ ..\packages\FSharp.Data.1.1.10\lib\net40\FSharp.Data.dll
+
+
+ ..\packages\FSharp.Data.1.1.10\lib\net40\FSharp.Data.DesignTime.dll
+
False
..\packages\Ninject.3.0.1.10\lib\net45-full\Ninject.dll
+
+ ..\packages\OAuth2Client.1.4.13260.2514\lib\net45\OAuth2Client.dll
+
-
+
False
- ..\packages\VersionOne.SDK.APIClient.12.5.0.181\lib\net40\VersionOne.SDK.APIClient.dll
+ ..\packages\VersionOne.SDK.APIClient.14.0.2.213\lib\net45\VersionOne.SDK.APIClient.dll
diff --git a/VersionOne.VisualStudio.DataLayer/VersionOneConnector.cs b/VersionOne.VisualStudio.DataLayer/VersionOneConnector.cs
index abcb079..e5ffab2 100644
--- a/VersionOne.VisualStudio.DataLayer/VersionOneConnector.cs
+++ b/VersionOne.VisualStudio.DataLayer/VersionOneConnector.cs
@@ -24,36 +24,52 @@ public string ApiVersion {
public VersionOneSettings VersionOneSettings { get; private set; }
- public void Connect(VersionOneSettings settings) {
- var path = settings.Path;
- var username = settings.Username;
- var password = settings.Password;
- var integrated = settings.Integrated;
- var proxy = GetProxy(settings.ProxySettings);
- VersionOneSettings = settings;
-
- var metaConnector = new V1APIConnector(path + MetaUrlSuffix, username, password, integrated, proxy);
- MetaModel = new MetaModel(metaConnector);
-
- var localizerConnector = new V1APIConnector(path + LocalizerUrlSuffix, username, password, integrated, proxy);
- Localizer = new Localizer(localizerConnector);
-
- var dataConnector = new V1APIConnector(path + DataUrlSuffix, username, password, integrated, proxy);
- Services = new Services(MetaModel, dataConnector);
-
- V1Configuration = LoadV1Configuration();
- }
+ public void Connect(VersionOneSettings settings)
+ {
+ var path = settings.Path;
+ var username = settings.Username;
+ var password = settings.Password;
+ var integrated = settings.Integrated;
+ var proxy = GetProxy(settings.ProxySettings);
+ VersionOneSettings = settings;
+
+ if (VersionOneSettings.OAuth2)
+ {
+ var storage = OAuth2Client.Storage.JsonFileStorage.Default;
+ var metaConnector = new V1OAuth2APIConnector(path + MetaUrlSuffix, storage, proxy);
+ MetaModel = new MetaModel(metaConnector);
+
+ var localizerConnector = new V1OAuth2APIConnector(path + LocalizerUrlSuffix, storage, proxy);
+ Localizer = new Localizer(localizerConnector);
+
+ var dataConnector = new V1OAuth2APIConnector(path + DataUrlSuffix, storage, proxy);
+ Services = new Services(MetaModel, dataConnector);
+
+ }
+ else
+ {
+ var metaConnector = new V1APIConnector(path + MetaUrlSuffix, username, password, integrated, proxy);
+ MetaModel = new MetaModel(metaConnector);
+
+ var localizerConnector = new V1APIConnector(path + LocalizerUrlSuffix, username, password, integrated, proxy);
+ Localizer = new Localizer(localizerConnector);
+
+ var dataConnector = new V1APIConnector(path + DataUrlSuffix, username, password, integrated, proxy);
+ Services = new Services(MetaModel, dataConnector);
+
+ }
+ V1Configuration = LoadV1Configuration();
+ }
public IV1Configuration LoadV1Configuration() {
+ // This V1 API endpoint does not require authentication
if (VersionOneSettings == null) {
throw new InvalidOperationException("Connection is needed for configuration loading.");
}
-
var path = VersionOneSettings.Path;
- var integrated = VersionOneSettings.Integrated;
- var proxy = GetProxy(VersionOneSettings.ProxySettings);
-
- return new V1Configuration(new V1APIConnector(path + ConfigUrlSuffix, null, null, integrated, proxy));
+ var integrated = VersionOneSettings.Integrated;
+ var proxy = GetProxy(VersionOneSettings.ProxySettings);
+ return new V1Configuration(new V1APIConnector(path + ConfigUrlSuffix, null, null, integrated, proxy));
}
private static ProxyProvider GetProxy(ProxyConnectionSettings settings) {
@@ -66,8 +82,16 @@ private static ProxyProvider GetProxy(ProxyConnectionSettings settings) {
}
public void CheckConnection(VersionOneSettings settings) {
- var connectionValidator = new V1ConnectionValidator(settings.Path, settings.Username, settings.Password, settings.Integrated, GetProxy(settings.ProxySettings));
- connectionValidator.Test(ApiVersion);
+ if (settings.OAuth2)
+ {
+ return;
+ }
+ else
+ {
+ var connectionValidator = new V1ConnectionValidator(settings.Path, settings.Username, settings.Password,
+ settings.Integrated, GetProxy(settings.ProxySettings));
+ connectionValidator.Test(ApiVersion);
+ }
}
}
}
\ No newline at end of file
diff --git a/VersionOne.VisualStudio.DataLayer/packages.config b/VersionOne.VisualStudio.DataLayer/packages.config
index 401818f..e202120 100755
--- a/VersionOne.VisualStudio.DataLayer/packages.config
+++ b/VersionOne.VisualStudio.DataLayer/packages.config
@@ -1,5 +1,7 @@
+
-
-
\ No newline at end of file
+
+
+
diff --git a/VersionOne.VisualStudio.Tests/VersionOne.VisualStudio.Tests.csproj b/VersionOne.VisualStudio.Tests/VersionOne.VisualStudio.Tests.csproj
index c36e8fc..c6d0509 100644
--- a/VersionOne.VisualStudio.Tests/VersionOne.VisualStudio.Tests.csproj
+++ b/VersionOne.VisualStudio.Tests/VersionOne.VisualStudio.Tests.csproj
@@ -43,6 +43,12 @@
False
..\packages\TreeViewAdv.1.7.0.0\lib\net\Aga.Controls.dll
+
+ ..\packages\FSharp.Data.1.1.10\lib\net40\FSharp.Data.dll
+
+
+ ..\packages\FSharp.Data.1.1.10\lib\net40\FSharp.Data.DesignTime.dll
+
False
@@ -66,6 +72,10 @@
False
..\packages\NUnit.2.6.2\lib\nunit.framework.dll
+
+ False
+ ..\packages\OAuth2Client.1.4.13260.2514\lib\net45\OAuth2Client.dll
+
False
..\packages\RhinoMocks.3.6.1\lib\net\Rhino.Mocks.dll
@@ -77,11 +87,13 @@
-
- ..\packages\VersionOne.SDK.APIClient.12.5.0.181\lib\net40\VersionOne.SDK.APIClient.dll
+
+ False
+ ..\packages\VersionOne.SDK.APIClient.14.0.2.213\lib\net45\VersionOne.SDK.APIClient.dll
-
- ..\packages\VersionOne.SDK.ObjectModel.13.0.0.815\lib\net40\VersionOne.SDK.ObjectModel.dll
+
+ False
+ ..\packages\VersionOne.SDK.ObjectModel.14.0.1.866\lib\net45\VersionOne.SDK.ObjectModel.dll
diff --git a/VersionOne.VisualStudio.Tests/packages.config b/VersionOne.VisualStudio.Tests/packages.config
index 9aeb770..731f887 100755
--- a/VersionOne.VisualStudio.Tests/packages.config
+++ b/VersionOne.VisualStudio.Tests/packages.config
@@ -1,10 +1,12 @@
+
-
-
-
\ No newline at end of file
+
+
+
+