зеркало из https://github.com/github/VisualStudio.git
Родитель
e99c17fd7d
Коммит
57b9589d1a
|
@ -1,6 +1,6 @@
|
|||
[submodule "submodules/rothko"]
|
||||
path = submodules/rothko
|
||||
url = https://github.com/shana/Rothko.git
|
||||
url = https://github.com/haacked/Rothko.git
|
||||
[submodule "submodules/reactiveui"]
|
||||
path = submodules/reactiveui
|
||||
url = https://github.com/shana/ReactiveUI
|
||||
|
|
|
@ -43,7 +43,7 @@ namespace DesignTimeStyleHelper
|
|||
SComponentModel sc;
|
||||
|
||||
[Import]
|
||||
public IBrowser Browser;
|
||||
public IVisualStudioBrowser Browser;
|
||||
|
||||
[Import]
|
||||
public ExportFactoryProvider ExportFactoryProvider;
|
||||
|
|
|
@ -6,4 +6,5 @@
|
|||
<package id="Rx-Linq" version="2.2.5" targetFramework="net45" />
|
||||
<package id="Rx-Main" version="2.2.5" targetFramework="net45" />
|
||||
<package id="Rx-PlatformServices" version="2.2.5" targetFramework="net45" />
|
||||
<package id="Rx-XAML" version="2.2.5" targetFramework="net45" />
|
||||
</packages>
|
|
@ -13,10 +13,10 @@ namespace GitHub.Factories
|
|||
public class HostCacheFactory : IHostCacheFactory
|
||||
{
|
||||
readonly Lazy<IBlobCacheFactory> blobCacheFactory;
|
||||
readonly Lazy<IOperatingSystemFacade> operatingSystem;
|
||||
readonly Lazy<IOperatingSystem> operatingSystem;
|
||||
|
||||
[ImportingConstructor]
|
||||
public HostCacheFactory(Lazy<IBlobCacheFactory> blobCacheFactory, Lazy<IOperatingSystemFacade> operatingSystem)
|
||||
public HostCacheFactory(Lazy<IBlobCacheFactory> blobCacheFactory, Lazy<IOperatingSystem> operatingSystem)
|
||||
{
|
||||
this.blobCacheFactory = blobCacheFactory;
|
||||
this.operatingSystem = operatingSystem;
|
||||
|
@ -43,7 +43,7 @@ namespace GitHub.Factories
|
|||
return new HostCache(localMachineCache, userAccountCache);
|
||||
}
|
||||
|
||||
IOperatingSystemFacade OperatingSystem { get { return operatingSystem.Value; } }
|
||||
IOperatingSystem OperatingSystem { get { return operatingSystem.Value; } }
|
||||
IBlobCacheFactory BlobCacheFactory { get { return blobCacheFactory.Value; } }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,6 +63,14 @@
|
|||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\packages\NullGuard.Fody.1.4.1\Lib\portable-net4+sl4+wp7+win8+MonoAndroid16+MonoTouch40\NullGuard.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Octokit, Version=0.6.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\packages\Octokit.0.6.2\lib\net45\Octokit.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Octokit.Reactive, Version=0.6.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\packages\Octokit.Reactive.0.6.2\lib\net45\Octokit.Reactive.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PresentationCore" />
|
||||
<Reference Include="PresentationFramework" />
|
||||
<Reference Include="SQLitePCL.raw, Version=0.7.2.0, Culture=neutral, PublicKeyToken=d89a3d1cc066b805, processorArchitecture=MSIL">
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
using System.ComponentModel.Composition;
|
||||
using System.IO;
|
||||
using GitHub.Services;
|
||||
using NLog;
|
||||
using Rothko;
|
||||
using NLog;
|
||||
|
||||
namespace GitHub
|
||||
{
|
||||
[Export(typeof(IBrowser))]
|
||||
public class Browser : IBrowser
|
||||
[Export(typeof(IVisualStudioBrowser))]
|
||||
public class Browser : IVisualStudioBrowser
|
||||
{
|
||||
static readonly Logger log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
|
|
|
@ -21,9 +21,8 @@ namespace GitHub.ViewModels
|
|||
{
|
||||
static readonly Logger log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
// TODO: Lets fix it so we don't have to suppress this.
|
||||
[SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
|
||||
protected LoginTabViewModel(IRepositoryHosts repositoryHosts, IBrowser browser)
|
||||
protected LoginTabViewModel(IRepositoryHosts repositoryHosts, IVisualStudioBrowser browser)
|
||||
{
|
||||
RepositoryHosts = repositoryHosts;
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ namespace GitHub.ViewModels
|
|||
public class LoginToGitHubForEnterpriseViewModel : LoginTabViewModel, ILoginToGitHubForEnterpriseViewModel
|
||||
{
|
||||
[ImportingConstructor]
|
||||
public LoginToGitHubForEnterpriseViewModel(IRepositoryHosts hosts, IBrowser browser) : base(hosts, browser)
|
||||
public LoginToGitHubForEnterpriseViewModel(IRepositoryHosts hosts, IVisualStudioBrowser browser) : base(hosts, browser)
|
||||
{
|
||||
enterpriseUrlValidator = ReactivePropertyValidator.For(this, x => x.EnterpriseUrl)
|
||||
.IfNullOrEmpty("Please enter an Enterprise URL")
|
||||
|
|
|
@ -16,7 +16,7 @@ namespace GitHub.ViewModels
|
|||
readonly Uri baseUri;
|
||||
|
||||
[ImportingConstructor]
|
||||
public LoginToGitHubViewModel(IRepositoryHosts repositoryHosts, IBrowser browser)
|
||||
public LoginToGitHubViewModel(IRepositoryHosts repositoryHosts, IVisualStudioBrowser browser)
|
||||
: base(repositoryHosts, browser)
|
||||
{
|
||||
baseUri = repositoryHosts.GitHubHost.Address.WebUri;
|
||||
|
|
|
@ -23,7 +23,7 @@ namespace GitHub.ViewModels
|
|||
readonly ObservableAsPropertyHelper<bool> isSms;
|
||||
|
||||
[ImportingConstructor]
|
||||
public TwoFactorDialogViewModel(IBrowser browser)
|
||||
public TwoFactorDialogViewModel(IVisualStudioBrowser browser)
|
||||
{
|
||||
OkCommand = ReactiveCommand.Create(this.WhenAny(
|
||||
x => x.AuthenticationCodeValidator.ValidationResult.IsValid,
|
||||
|
|
|
@ -84,7 +84,7 @@
|
|||
<Compile Include="Primitives\UriString.cs" />
|
||||
<Compile Include="Services\EnterpriseProbeTask.cs" />
|
||||
<Compile Include="Services\ExportFactoryProvider.cs" />
|
||||
<Compile Include="Services\IBrowser.cs" />
|
||||
<Compile Include="Services\IVisualStudioBrowser.cs" />
|
||||
<Compile Include="Services\IEnterpriseProbeTask.cs" />
|
||||
<Compile Include="Services\IUIProvider.cs" />
|
||||
<Compile Include="Services\IWikiProbe.cs" />
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
using System;
|
||||
|
||||
namespace GitHub.Services
|
||||
{
|
||||
public interface IBrowser
|
||||
{
|
||||
void OpenUrl(Uri url);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
using System;
|
||||
|
||||
namespace GitHub.Services
|
||||
{
|
||||
/// <summary>
|
||||
/// A service used to navigate to URLs such as GitHub issues, pull requests, etc.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// This interface is (and needs to be) safe to use within TeamExplorer. It should not pull in other dependencies.
|
||||
/// </remarks>
|
||||
public interface IVisualStudioBrowser
|
||||
{
|
||||
/// <summary>
|
||||
/// Opens the user's default browser to the specified URL.
|
||||
/// </summary>
|
||||
/// <param name="url">The absolute URI to open</param>
|
||||
void OpenUrl(Uri url);
|
||||
}
|
||||
}
|
|
@ -11,7 +11,6 @@
|
|||
<AssemblyName>GitHub.Extensions.Reactive</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<NuGetPackageImportStamp>9b778d60</NuGetPackageImportStamp>
|
||||
<NuGetPackageImportStamp>83c06b42</NuGetPackageImportStamp>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<RunCodeAnalysis>true</RunCodeAnalysis>
|
||||
|
@ -51,6 +50,7 @@
|
|||
<ItemGroup>
|
||||
<Reference Include="NullGuard, Version=1.4.1.0, Culture=neutral, PublicKeyToken=1958ac8092168428, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<Private>True</Private>
|
||||
<HintPath>..\..\packages\NullGuard.Fody.1.4.1\Lib\portable-net4+sl4+wp7+win8+MonoAndroid16+MonoTouch40\NullGuard.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
|
@ -109,6 +109,7 @@
|
|||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="..\..\packages\Fody.1.28.0\build\Fody.targets" Condition="Exists('..\..\packages\Fody.1.28.0\build\Fody.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
|
|
|
@ -96,6 +96,7 @@
|
|||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="..\..\packages\Fody.1.28.0\build\Fody.targets" Condition="Exists('..\..\packages\Fody.1.28.0\build\Fody.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
|
|
|
@ -12,7 +12,11 @@
|
|||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<NuGetPackageImportStamp>86007da4</NuGetPackageImportStamp>
|
||||
<NuGetPackageImportStamp>0264ca35</NuGetPackageImportStamp>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
<RunCodeAnalysis>true</RunCodeAnalysis>
|
||||
<CodeAnalysisRuleSet>..\..\script\GitHubVS.ruleset</CodeAnalysisRuleSet>
|
||||
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
|
@ -47,6 +51,7 @@
|
|||
<ItemGroup>
|
||||
<Reference Include="NullGuard, Version=1.4.1.0, Culture=neutral, PublicKeyToken=1958ac8092168428, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<Private>True</Private>
|
||||
<HintPath>..\..\packages\NullGuard.Fody.1.4.1\Lib\portable-net4+sl4+wp7+win8+MonoAndroid16+MonoTouch40\NullGuard.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="PresentationCore" />
|
||||
|
|
|
@ -76,7 +76,7 @@ namespace GitHub.VisualStudio.Base
|
|||
return visible;
|
||||
}
|
||||
|
||||
protected async void OpenInBrowser(Lazy<IBrowser> browser, string endpoint)
|
||||
protected async void OpenInBrowser(Lazy<IVisualStudioBrowser> browser, string endpoint)
|
||||
{
|
||||
var b = browser.Value;
|
||||
Debug.Assert(b != null, "Could not create a browser helper instance.");
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
|
||||
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">12.0</VisualStudioVersion>
|
||||
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
|
||||
<NuGetPackageImportStamp>1fcdc7f2</NuGetPackageImportStamp>
|
||||
<NuGetPackageImportStamp>8fda56e5</NuGetPackageImportStamp>
|
||||
<TargetFrameworkProfile />
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
|
@ -102,6 +102,14 @@
|
|||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\packages\NullGuard.Fody.1.4.1\Lib\portable-net4+sl4+wp7+win8+MonoAndroid16+MonoTouch40\NullGuard.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Octokit, Version=0.6.2.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\packages\Octokit.0.6.2\lib\net45\Octokit.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Splat, Version=1.6.0.0, Culture=neutral, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>..\..\packages\Splat.1.6.0\lib\Net45\Splat.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.ComponentModel.Composition" />
|
||||
<Reference Include="System.Core" />
|
||||
|
@ -359,6 +367,7 @@
|
|||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="$(VSToolsPath)\VSSDK\Microsoft.VsSDK.targets" Condition="'$(VSToolsPath)' != ''" />
|
||||
<Import Project="..\..\packages\Fody.1.28.0\build\Fody.targets" Condition="Exists('..\..\packages\Fody.1.28.0\build\Fody.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
|
|
|
@ -10,8 +10,8 @@ using Rothko;
|
|||
|
||||
namespace GitHub.VisualStudio.Helpers
|
||||
{
|
||||
[Export(typeof(IBrowser))]
|
||||
public class Browser : IBrowser
|
||||
[Export(typeof(IVisualStudioBrowser))]
|
||||
public class Browser : IVisualStudioBrowser
|
||||
{
|
||||
readonly IServiceProvider serviceProvider;
|
||||
readonly IProcessStarter processManager;
|
||||
|
|
|
@ -17,11 +17,11 @@ namespace GitHub.VisualStudio.TeamExplorerHome
|
|||
{
|
||||
public const string GraphsNavigationItemId = "5245767A-B657-4F8E-BFEE-F04159F1DDA5";
|
||||
|
||||
readonly Lazy<IBrowser> browser;
|
||||
readonly Lazy<IVisualStudioBrowser> browser;
|
||||
|
||||
[ImportingConstructor]
|
||||
public GraphsNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider,
|
||||
ISimpleApiClientFactory apiFactory, Lazy<IBrowser> browser)
|
||||
ISimpleApiClientFactory apiFactory, Lazy<IVisualStudioBrowser> browser)
|
||||
: base(serviceProvider, apiFactory)
|
||||
{
|
||||
this.browser = browser;
|
||||
|
|
|
@ -17,11 +17,11 @@ namespace GitHub.VisualStudio.TeamExplorerHome
|
|||
{
|
||||
public const string IssuesNavigationItemId = "5245767A-B657-4F8E-BFEE-F04159F1DDA4";
|
||||
|
||||
readonly Lazy<IBrowser> browser;
|
||||
readonly Lazy<IVisualStudioBrowser> browser;
|
||||
|
||||
[ImportingConstructor]
|
||||
public IssuesNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider,
|
||||
ISimpleApiClientFactory apiFactory, Lazy<IBrowser> browser)
|
||||
ISimpleApiClientFactory apiFactory, Lazy<IVisualStudioBrowser> browser)
|
||||
: base(serviceProvider, apiFactory)
|
||||
{
|
||||
this.browser = browser;
|
||||
|
|
|
@ -17,11 +17,11 @@ namespace GitHub.VisualStudio.TeamExplorerHome
|
|||
{
|
||||
public const string PullRequestsNavigationItemId = "5245767A-B657-4F8E-BFEE-F04159F1DDA3";
|
||||
|
||||
readonly Lazy<IBrowser> browser;
|
||||
readonly Lazy<IVisualStudioBrowser> browser;
|
||||
|
||||
[ImportingConstructor]
|
||||
public PullRequestsNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider,
|
||||
ISimpleApiClientFactory apiFactory, Lazy<IBrowser> browser)
|
||||
ISimpleApiClientFactory apiFactory, Lazy<IVisualStudioBrowser> browser)
|
||||
: base(serviceProvider, apiFactory)
|
||||
{
|
||||
this.browser = browser;
|
||||
|
|
|
@ -17,11 +17,11 @@ namespace GitHub.VisualStudio.TeamExplorerHome
|
|||
{
|
||||
public const string PulseNavigationItemId = "5245767A-B657-4F8E-BFEE-F04159F1DDA2";
|
||||
|
||||
readonly Lazy<IBrowser> browser;
|
||||
readonly Lazy<IVisualStudioBrowser> browser;
|
||||
|
||||
[ImportingConstructor]
|
||||
public PulseNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider,
|
||||
ISimpleApiClientFactory apiFactory, Lazy<IBrowser> browser)
|
||||
ISimpleApiClientFactory apiFactory, Lazy<IVisualStudioBrowser> browser)
|
||||
: base(serviceProvider, apiFactory)
|
||||
{
|
||||
this.browser = browser;
|
||||
|
|
|
@ -17,11 +17,11 @@ namespace GitHub.VisualStudio.TeamExplorerHome
|
|||
{
|
||||
public const string WikiNavigationItemId = "5245767A-B657-4F8E-BFEE-F04159F1DDA1";
|
||||
|
||||
readonly Lazy<IBrowser> browser;
|
||||
readonly Lazy<IVisualStudioBrowser> browser;
|
||||
|
||||
[ImportingConstructor]
|
||||
public WikiNavigationItem([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider,
|
||||
ISimpleApiClientFactory apiFactory, Lazy<IBrowser> browser)
|
||||
ISimpleApiClientFactory apiFactory, Lazy<IVisualStudioBrowser> browser)
|
||||
: base(serviceProvider, apiFactory)
|
||||
{
|
||||
this.browser = browser;
|
||||
|
|
|
@ -18,7 +18,7 @@ public class LoginToGitHubViewModelTests
|
|||
var gitHubHost = Substitute.For<IRepositoryHost>();
|
||||
gitHubHost.Address.Returns(HostAddress.GitHubDotComHostAddress);
|
||||
repositoryHosts.GitHubHost.Returns(gitHubHost);
|
||||
var browser = Substitute.For<IBrowser>();
|
||||
var browser = Substitute.For<IVisualStudioBrowser>();
|
||||
var loginViewModel = new LoginToGitHubViewModel(repositoryHosts, browser);
|
||||
|
||||
loginViewModel.SignUp.Execute(null);
|
||||
|
@ -36,7 +36,7 @@ public class LoginToGitHubViewModelTests
|
|||
var gitHubHost = Substitute.For<IRepositoryHost>();
|
||||
gitHubHost.Address.Returns(HostAddress.GitHubDotComHostAddress);
|
||||
repositoryHosts.GitHubHost.Returns(gitHubHost);
|
||||
var browser = Substitute.For<IBrowser>();
|
||||
var browser = Substitute.For<IVisualStudioBrowser>();
|
||||
var loginViewModel = new LoginToGitHubViewModel(repositoryHosts, browser);
|
||||
|
||||
loginViewModel.ForgotPassword.Execute(null);
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 3017843941b12b73154bdbbb3374503db96fdec8
|
||||
Subproject commit 9a056be65686807674e8087e2ec2e6602e82e808
|
Загрузка…
Ссылка в новой задаче