Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 15 additions & 5 deletions VersionOne.VisualStudio.DataLayer/Settings/VersionOneSettings.cs
Original file line number Diff line number Diff line change
@@ -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();
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,19 +42,32 @@
<AssemblyOriginatorKeyFile>..\Common\SigningKey\VersionOne.snk</AssemblyOriginatorKeyFile>
</PropertyGroup>
<ItemGroup>
<Reference Include="Aga.Controls, Version=1.7.0.0, Culture=neutral, PublicKeyToken=fcc90fbf924463a3, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\TreeViewAdv.1.7.0.0\lib\net\Aga.Controls.dll</HintPath>
</Reference>
<Reference Include="FSharp.Data">
<HintPath>..\packages\FSharp.Data.1.1.10\lib\net40\FSharp.Data.dll</HintPath>
</Reference>
<Reference Include="FSharp.Data.DesignTime">
<HintPath>..\packages\FSharp.Data.1.1.10\lib\net40\FSharp.Data.DesignTime.dll</HintPath>
</Reference>
<Reference Include="Ninject, Version=3.0.0.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\Ninject.3.0.1.10\lib\net45-full\Ninject.dll</HintPath>
</Reference>
<Reference Include="OAuth2Client">
<HintPath>..\packages\OAuth2Client.1.4.13260.2514\lib\net45\OAuth2Client.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="VersionOne.SDK.APIClient, Version=12.5.0.181, Culture=neutral, PublicKeyToken=e0f410c10d2e7630, processorArchitecture=MSIL">
<Reference Include="VersionOne.SDK.APIClient, Version=14.0.2.213, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\VersionOne.SDK.APIClient.12.5.0.181\lib\net40\VersionOne.SDK.APIClient.dll</HintPath>
<HintPath>..\packages\VersionOne.SDK.APIClient.14.0.2.213\lib\net45\VersionOne.SDK.APIClient.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
Expand Down
76 changes: 50 additions & 26 deletions VersionOne.VisualStudio.DataLayer/VersionOneConnector.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand All @@ -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);
}
}
}
}
6 changes: 4 additions & 2 deletions VersionOne.VisualStudio.DataLayer/packages.config
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="FSharp.Data" version="1.1.10" targetFramework="net45" />
<package id="Ninject" version="3.0.1.10" targetFramework="net45" />
<package id="VersionOne.SDK.APIClient" version="12.5.0.181" targetFramework="net45" />
</packages>
<package id="OAuth2Client" version="1.4.13260.2514" targetFramework="net45" />
<package id="VersionOne.SDK.APIClient" version="14.0.2.213" targetFramework="net45" />
</packages>
20 changes: 16 additions & 4 deletions VersionOne.VisualStudio.Tests/VersionOne.VisualStudio.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,12 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\TreeViewAdv.1.7.0.0\lib\net\Aga.Controls.dll</HintPath>
</Reference>
<Reference Include="FSharp.Data">
<HintPath>..\packages\FSharp.Data.1.1.10\lib\net40\FSharp.Data.dll</HintPath>
</Reference>
<Reference Include="FSharp.Data.DesignTime">
<HintPath>..\packages\FSharp.Data.1.1.10\lib\net40\FSharp.Data.DesignTime.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualStudio.OLE.Interop, Version=7.1.40304.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<EmbedInteropTypes>False</EmbedInteropTypes>
</Reference>
Expand All @@ -66,6 +72,10 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\NUnit.2.6.2\lib\nunit.framework.dll</HintPath>
</Reference>
<Reference Include="OAuth2Client">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\OAuth2Client.1.4.13260.2514\lib\net45\OAuth2Client.dll</HintPath>
</Reference>
<Reference Include="Rhino.Mocks, Version=3.6.0.0, Culture=neutral, PublicKeyToken=0b3305902db7183f, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\RhinoMocks.3.6.1\lib\net\Rhino.Mocks.dll</HintPath>
Expand All @@ -77,11 +87,13 @@
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="VersionOne.SDK.APIClient">
<HintPath>..\packages\VersionOne.SDK.APIClient.12.5.0.181\lib\net40\VersionOne.SDK.APIClient.dll</HintPath>
<Reference Include="VersionOne.SDK.APIClient, Version=14.0.2.213, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\VersionOne.SDK.APIClient.14.0.2.213\lib\net45\VersionOne.SDK.APIClient.dll</HintPath>
</Reference>
<Reference Include="VersionOne.SDK.ObjectModel">
<HintPath>..\packages\VersionOne.SDK.ObjectModel.13.0.0.815\lib\net40\VersionOne.SDK.ObjectModel.dll</HintPath>
<Reference Include="VersionOne.SDK.ObjectModel, Version=14.0.1.866, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\VersionOne.SDK.ObjectModel.14.0.1.866\lib\net45\VersionOne.SDK.ObjectModel.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
Expand Down
8 changes: 5 additions & 3 deletions VersionOne.VisualStudio.Tests/packages.config
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="FSharp.Data" version="1.1.10" targetFramework="net45" />
<package id="Ninject" version="3.0.1.10" targetFramework="net45" />
<package id="NUnit" version="2.6.2" targetFramework="net45" />
<package id="NUnit.Runners" version="2.6.2" targetFramework="net45" />
<package id="RhinoMocks" version="3.6.1" targetFramework="net45" />
<package id="TreeViewAdv" version="1.7.0.0" targetFramework="net45" />
<package id="VersionOne.SDK.APIClient" version="12.5.0.181" targetFramework="net45" />
<package id="VersionOne.SDK.ObjectModel" version="13.0.0.815" targetFramework="net45" />
</packages>
<package id="OAuth2Client" version="1.4.13260.2514" targetFramework="net45" />
<package id="VersionOne.SDK.APIClient" version="14.0.2.213" targetFramework="net45" />
<package id="VersionOne.SDK.ObjectModel" version="14.0.1.866" targetFramework="net45" />
</packages>