diff --git a/doc/distrib/xml/en-US/DSCoreNodes.xml b/doc/distrib/xml/en-US/DSCoreNodes.xml
index 1a34f4c7484..348b8be3932 100644
--- a/doc/distrib/xml/en-US/DSCoreNodes.xml
+++ b/doc/distrib/xml/en-US/DSCoreNodes.xml
@@ -2187,7 +2187,7 @@
- Looks up a localized string similar to • Min and Max values must not be the same..
+ Looks up a localized string similar to • Min and Max values must be different..
diff --git a/src/DynamoCore/Configuration/ExecutionSession.cs b/src/DynamoCore/Configuration/ExecutionSession.cs
index efb62792d36..b738d2f7a89 100644
--- a/src/DynamoCore/Configuration/ExecutionSession.cs
+++ b/src/DynamoCore/Configuration/ExecutionSession.cs
@@ -26,6 +26,7 @@ public ExecutionSession(Scheduler.UpdateGraphAsyncTask updateTask, DynamoModel m
parameters[ParameterKeys.LastExecutionDuration] = new TimeSpan(updateTask.ExecutionEndTime.TickCount - updateTask.ExecutionStartTime.TickCount);
parameters[ParameterKeys.PackagePaths] = pathManager.PackagesDirectories;
parameters[ParameterKeys.Logger] = model.Logger;
+ parameters[ParameterKeys.NoNetworkMode] = model.NoNetworkMode;
}
///
diff --git a/src/DynamoCore/Models/DynamoModel.cs b/src/DynamoCore/Models/DynamoModel.cs
index c34197912fe..a1967ecd5f0 100644
--- a/src/DynamoCore/Models/DynamoModel.cs
+++ b/src/DynamoCore/Models/DynamoModel.cs
@@ -237,7 +237,7 @@ public static string Version
internal bool IsServiceMode { get; set; }
///
- /// True if Dynamo starts up in offline mode.
+ /// True if Dynamo is used in offline mode.
///
internal bool NoNetworkMode { get; }
diff --git a/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModel.cs b/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModel.cs
index a8f12f0d92f..c0b7165e06d 100644
--- a/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModel.cs
+++ b/src/DynamoCoreWpf/ViewModels/Core/DynamoViewModel.cs
@@ -2810,12 +2810,12 @@ internal void ShowPackageManager(object parameters)
internal bool CanShowPackageManagerSearch(object parameters)
{
- return !model.IsServiceMode;
+ return !model.IsServiceMode && !model.NoNetworkMode;
}
internal bool CanShowPackageManager(object parameters)
{
- return !model.IsServiceMode;
+ return !model.IsServiceMode && !model.NoNetworkMode;
}
///
diff --git a/src/DynamoCoreWpf/ViewModels/Menu/PreferencesViewModel.cs b/src/DynamoCoreWpf/ViewModels/Menu/PreferencesViewModel.cs
index cbce1594b0e..59764ec5adf 100644
--- a/src/DynamoCoreWpf/ViewModels/Menu/PreferencesViewModel.cs
+++ b/src/DynamoCoreWpf/ViewModels/Menu/PreferencesViewModel.cs
@@ -1346,6 +1346,24 @@ private void AddPythonEnginesOptions()
///
public TrustedPathViewModel TrustedPathsViewModel { get; set; }
+ private bool noNetworkMode;
+
+ ///
+ /// True if Dynamo is used in offline mode.
+ ///
+ public bool NoNetworkMode
+ {
+ get => noNetworkMode;
+ private set
+ {
+ if (noNetworkMode != value)
+ {
+ noNetworkMode = value;
+ RaisePropertyChanged(nameof(NoNetworkMode));
+ }
+ }
+ }
+
///
/// Returns a boolean value indicating if the Settings importing was successful or not
///
@@ -1469,6 +1487,8 @@ public PreferencesViewModel(DynamoViewModel dynamoViewModel)
this.pythonScriptEditorTextOptions = dynamoViewModel.PythonScriptEditorTextOptions;
this.dynamoViewModel = dynamoViewModel;
+ NoNetworkMode = dynamoViewModel.Model.NoNetworkMode;
+
if (dynamoViewModel.PackageManagerClientViewModel != null)
{
installedPackagesViewModel = new InstalledPackagesViewModel(dynamoViewModel, dynamoViewModel.PackageManagerClientViewModel.PackageManagerExtension.PackageLoader);
diff --git a/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerClientViewModel.cs b/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerClientViewModel.cs
index 116a616f867..b57dc83891a 100644
--- a/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerClientViewModel.cs
+++ b/src/DynamoCoreWpf/ViewModels/PackageManager/PackageManagerClientViewModel.cs
@@ -343,7 +343,7 @@ public void PublishCurrentWorkspace(object m)
public bool CanPublishCurrentWorkspace(object m)
{
- return DynamoViewModel.Model.CurrentWorkspace is CustomNodeWorkspaceModel && AuthenticationManager.HasAuthProvider;
+ return DynamoViewModel.Model.CurrentWorkspace is CustomNodeWorkspaceModel && AuthenticationManager.HasAuthProvider && !Model.NoNetworkMode;
}
public void PublishNewPackage(object m)
@@ -363,7 +363,7 @@ public void PublishNewPackage(object m)
public bool CanPublishNewPackage(object m)
{
- return AuthenticationManager.HasAuthProvider;
+ return AuthenticationManager.HasAuthProvider && !Model.NoNetworkMode;
}
public void PublishCustomNode(Function m)
@@ -393,7 +393,7 @@ public void PublishCustomNode(Function m)
public bool CanPublishCustomNode(Function m)
{
- return AuthenticationManager.HasAuthProvider && m != null;
+ return AuthenticationManager.HasAuthProvider && m != null && !Model.NoNetworkMode;
}
public void PublishSelectedNodes(object m)
@@ -453,7 +453,7 @@ public void PublishSelectedNodes(object m)
public bool CanPublishSelectedNodes(object m)
{
return DynamoSelection.Instance.Selection.Count > 0 &&
- DynamoSelection.Instance.Selection.All(x => x is Function) && AuthenticationManager.HasAuthProvider; ;
+ DynamoSelection.Instance.Selection.All(x => x is Function) && AuthenticationManager.HasAuthProvider && !Model.NoNetworkMode;
}
private void ShowNodePublishInfo()
diff --git a/src/DynamoCoreWpf/Views/Menu/PreferencesView.xaml b/src/DynamoCoreWpf/Views/Menu/PreferencesView.xaml
index ce6a7eefd22..b287691b9d5 100644
--- a/src/DynamoCoreWpf/Views/Menu/PreferencesView.xaml
+++ b/src/DynamoCoreWpf/Views/Menu/PreferencesView.xaml
@@ -14,6 +14,7 @@
xmlns:fa="clr-namespace:FontAwesome5;assembly=FontAwesome5.Net"
xmlns:packagemanager="clr-namespace:Dynamo.Wpf.Views.PackageManager"
xmlns:trustedpaths="clr-namespace:Dynamo.Wpf.Views"
+ xmlns:converters="clr-namespace:Dynamo.Controls;assembly=DynamoCoreWpf"
xmlns:wpfControls="clr-namespace:Dynamo.Wpf.Controls"
d:DataContext="{d:DesignInstance Type=viewModels:PreferencesViewModel}"
WindowStartupLocation="CenterOwner"
@@ -1949,7 +1950,19 @@
+ Text="{x:Static p:Resources.InstalledPackagePartialHyperlinkMessage}"
+ IsHitTestVisible="{Binding NoNetworkMode, Converter={StaticResource InverseBooleanConverter}}">
+
+
+
+
.
diff --git a/src/DynamoPackages/PackageManagerClient.cs b/src/DynamoPackages/PackageManagerClient.cs
index b808f243a38..602ecffce7c 100644
--- a/src/DynamoPackages/PackageManagerClient.cs
+++ b/src/DynamoPackages/PackageManagerClient.cs
@@ -49,18 +49,24 @@ public string BaseUrl
get { return this.client.BaseUrl; }
}
+ internal readonly bool NoNetworkMode;
+
#endregion
- internal PackageManagerClient(IGregClient client, IPackageUploadBuilder builder, string packageUploadDirectory)
+ internal PackageManagerClient(IGregClient client, IPackageUploadBuilder builder, string packageUploadDirectory,
+ bool noNetworkMode = false)
{
this.packageUploadDirectory = packageUploadDirectory;
this.uploadBuilder = builder;
this.client = client;
this.packageMaintainers = new Dictionary();
+ this.NoNetworkMode = noNetworkMode;
}
internal bool Upvote(string packageId)
{
+ if (NoNetworkMode) return false;
+
return FailFunc.TryExecute(() =>
{
var pkgResponse = this.client.ExecuteAndDeserialize(new Upvote(packageId));
@@ -70,6 +76,8 @@ internal bool Upvote(string packageId)
internal List UserVotes()
{
+ if (NoNetworkMode) return null;
+
var votes = FailFunc.TryExecute(() =>
{
var nv = new GetUserVotes();
@@ -82,6 +90,8 @@ internal List UserVotes()
internal List CompatibilityMap()
{
+ if (NoNetworkMode) return null;
+
var compatibilityMap = FailFunc.TryExecute(() =>
{
var cm = new GetCompatibilityMap();
@@ -99,6 +109,8 @@ internal PackageManagerResult DownloadPackage(string packageId, string version,
{
try
{
+ if (NoNetworkMode) throw new Exception(DynamoPackages.Properties.Resources.DownloadPackageDisabled);
+
var response = this.client.Execute(new PackageDownload(packageId, version));
pathToPackage = PackageDownload.GetFileFromResponse(response);
return PackageManagerResult.Succeeded();
@@ -112,6 +124,8 @@ internal PackageManagerResult DownloadPackage(string packageId, string version,
internal IEnumerable ListAll()
{
+ if (NoNetworkMode) return new List();
+
return FailFunc.TryExecute(() => {
var nv = HeaderCollectionDownload.ByEngine("dynamo");
var pkgResponse = this.client.ExecuteAndDeserializeWithContent>(nv);
@@ -146,6 +160,8 @@ void CleanPackagesWithWrongVersions(List packages)
///
internal PackageHeader GetPackageMaintainers(IPackageInfo packageInfo)
{
+ if (NoNetworkMode) return null;
+
var header = FailFunc.TryExecute(() =>
{
var nv = new GetMaintainers("dynamo", packageInfo.Name);
@@ -162,6 +178,8 @@ internal PackageHeader GetPackageMaintainers(IPackageInfo packageInfo)
///
internal UserPackages GetUsersLatestPackages()
{
+ if (NoNetworkMode) return null;
+
var packages = FailFunc.TryExecute(() =>
{
var nv = new GetMyPackages();
@@ -179,6 +197,8 @@ internal UserPackages GetUsersLatestPackages()
/// Package version metadata
internal PackageVersion GetPackageVersionHeader(IPackageInfo packageInfo)
{
+ if (NoNetworkMode) return null;
+
var req = new HeaderVersionDownload("dynamo", packageInfo.Name, packageInfo.Version.ToString());
var pkgResponse = this.client.ExecuteAndDeserializeWithContent(req);
if (!pkgResponse.success)
@@ -196,6 +216,8 @@ internal PackageVersion GetPackageVersionHeader(IPackageInfo packageInfo)
/// Package version metadata
internal virtual PackageVersion GetPackageVersionHeader(string id, string version)
{
+ if (NoNetworkMode) return null;
+
var req = new HeaderVersionDownload(id, version);
var pkgResponse = this.client.ExecuteAndDeserializeWithContent(req);
if (!pkgResponse.success)
@@ -211,6 +233,8 @@ internal virtual PackageVersion GetPackageVersionHeader(string id, string versio
///
internal virtual IEnumerable GetKnownHosts()
{
+ if (NoNetworkMode) return null;
+
if (cachedHosts == null)
{
cachedHosts = FailFunc.TryExecute(() =>
@@ -235,6 +259,8 @@ public bool SetTermsOfUseAcceptanceStatus()
private bool ExecuteTermsOfUseCall(bool queryAcceptanceStatus)
{
+ if (NoNetworkMode) return false;
+
return FailFunc.TryExecute(() =>
{
var request = new TermsOfUse(queryAcceptanceStatus);
@@ -258,6 +284,8 @@ private bool ExecuteTermsOfUseCall(bool queryAcceptanceStatus)
/// A Used to track the upload status.
internal PackageUploadHandle PublishAsync(Package package, object files, IEnumerable markdownFiles, bool isNewVersion, IEnumerable roots, bool retainFolderStructure)
{
+ if (NoNetworkMode) return null;
+
var packageUploadHandle = new PackageUploadHandle(PackageUploadBuilder.NewRequestBody(package));
Task.Factory.StartNew(() =>
@@ -321,6 +349,8 @@ internal void Publish(Package package, object files, IEnumerable markdow
internal PackageManagerResult Deprecate(string name)
{
+ if (NoNetworkMode) return null;
+
return FailFunc.TryExecute(() =>
{
var pkgResponse = this.client.ExecuteAndDeserialize(new Deprecate(name, PackageEngineName));
@@ -330,6 +360,8 @@ internal PackageManagerResult Deprecate(string name)
internal PackageManagerResult Undeprecate(string name)
{
+ if (NoNetworkMode) return null;
+
return FailFunc.TryExecute(() =>
{
var pkgResponse = this.client.ExecuteAndDeserialize(new Undeprecate(name, PackageEngineName));
@@ -339,14 +371,16 @@ internal PackageManagerResult Undeprecate(string name)
internal bool DoesCurrentUserOwnPackage(Package package,string username)
{
+ if (NoNetworkMode) return false;
+
bool value;
- if (this.packageMaintainers.Count > 0 && this.packageMaintainers.TryGetValue(package.Name, out value)) {
+ if (packageMaintainers.Count > 0 && packageMaintainers.TryGetValue(package.Name, out value)) {
return value;
}
var pkg = new PackageInfo(package.Name, new Version(package.VersionName));
var mnt = GetPackageMaintainers(pkg);
value = (mnt != null) && (mnt.maintainers.Any(maintainer => maintainer.username.Equals(username)));
- this.packageMaintainers[package.Name] = value;
+ packageMaintainers[package.Name] = value;
return value;
}
@@ -386,7 +420,7 @@ internal void LoadCompatibilityMap()
{
compatibilityMap = new Dictionary>();
- var compatibilityMapList = this.CompatibilityMap();
+ var compatibilityMapList = CompatibilityMap();
PackageManagerClient.compatibilityMapList = compatibilityMapList; // Loads the full CompatibilityMap as a side-effect
foreach (var host in compatibilityMapList)
diff --git a/src/DynamoPackages/PackageManagerExtension.cs b/src/DynamoPackages/PackageManagerExtension.cs
index 257eb61a63e..690db27912d 100644
--- a/src/DynamoPackages/PackageManagerExtension.cs
+++ b/src/DynamoPackages/PackageManagerExtension.cs
@@ -157,11 +157,12 @@ public void Startup(StartupParams startupParams)
var packageUploadDirectory = startupParams.PathManager.DefaultPackagesDirectory;
+ noNetworkMode = startupParams.NoNetworkMode;
+
PackageManagerClient = new PackageManagerClient(
new GregClient(startupParams.AuthProvider, url),
- uploadBuilder, packageUploadDirectory);
+ uploadBuilder, packageUploadDirectory, noNetworkMode);
- noNetworkMode = startupParams.NoNetworkMode;
//we don't ask dpm for the compatibility map in offline mode.
if (!noNetworkMode)
diff --git a/src/DynamoPackages/Properties/Resources.Designer.cs b/src/DynamoPackages/Properties/Resources.Designer.cs
index 44c2d96fe09..eea0f4fcff2 100644
--- a/src/DynamoPackages/Properties/Resources.Designer.cs
+++ b/src/DynamoPackages/Properties/Resources.Designer.cs
@@ -78,6 +78,15 @@ public static string CannotRemovePackageAssemblyTitle {
}
}
+ ///
+ /// Looks up a localized string similar to Package download is disabled in no-network mode..
+ ///
+ public static string DownloadPackageDisabled {
+ get {
+ return ResourceManager.GetString("DownloadPackageDisabled", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to The folder '{0}' does not exist.
///
diff --git a/src/DynamoPackages/Properties/Resources.en-US.resx b/src/DynamoPackages/Properties/Resources.en-US.resx
index 36b2910a0d1..49e86589f20 100644
--- a/src/DynamoPackages/Properties/Resources.en-US.resx
+++ b/src/DynamoPackages/Properties/Resources.en-US.resx
@@ -124,6 +124,9 @@
Cannot update assembly
+
+ Package download is disabled in no-network mode.
+
The folder '{0}' does not exist
This warning message is shown (during start up) when user specifies additional folders in DynamoSettings.xml file but the folders do not exist.
@@ -140,4 +143,4 @@
{0} was not scanned for packages because a preference setting disabled loading from that location."
This warning message is shown when a package directory is skipped due to a preference setting disabling loads from that location type.
-
+
\ No newline at end of file
diff --git a/src/DynamoPackages/Properties/Resources.resx b/src/DynamoPackages/Properties/Resources.resx
index 36b2910a0d1..49e86589f20 100644
--- a/src/DynamoPackages/Properties/Resources.resx
+++ b/src/DynamoPackages/Properties/Resources.resx
@@ -124,6 +124,9 @@
Cannot update assembly
+
+ Package download is disabled in no-network mode.
+
The folder '{0}' does not exist
This warning message is shown (during start up) when user specifies additional folders in DynamoSettings.xml file but the folders do not exist.
@@ -140,4 +143,4 @@
{0} was not scanned for packages because a preference setting disabled loading from that location."
This warning message is shown when a package directory is skipped due to a preference setting disabling loads from that location type.
-
+
\ No newline at end of file
diff --git a/src/Libraries/CoreNodeModels/WebRequest.cs b/src/Libraries/CoreNodeModels/WebRequest.cs
index 492439eada2..263d38a32cd 100644
--- a/src/Libraries/CoreNodeModels/WebRequest.cs
+++ b/src/Libraries/CoreNodeModels/WebRequest.cs
@@ -1,15 +1,17 @@
-using System;
+using System;
using System.Collections.Generic;
using CoreNodeModels.Properties;
using DSCore;
+using Dynamo.Events;
using Dynamo.Graph.Nodes;
+using Dynamo.Session;
using Newtonsoft.Json;
using ProtoCore.AST.AssociativeAST;
namespace CoreNodeModels
{
[NodeName("Web Request")]
- [NodeDescription("WebRequestDescription", typeof(Resources))]
+ [NodeDescription(nameof(Resources.WebRequestDescription), typeof(Resources))]
[NodeCategory(BuiltinNodeCategories.CORE_WEB)]
[IsDesignScriptCompatible]
[OutPortTypes("var[]..[]")]
diff --git a/src/Libraries/CoreNodes/Properties/Resources.Designer.cs b/src/Libraries/CoreNodes/Properties/Resources.Designer.cs
index 931e867ca0d..ad57cf693d6 100644
--- a/src/Libraries/CoreNodes/Properties/Resources.Designer.cs
+++ b/src/Libraries/CoreNodes/Properties/Resources.Designer.cs
@@ -70,7 +70,7 @@ internal static string BitmapOverflowError {
}
///
- /// Looks up a localized string similar to • Min and Max values must not be the same..
+ /// Looks up a localized string similar to • Min and Max values must be different..
///
internal static string CurveMapperEqualMinMaxWarning {
get {
diff --git a/src/Libraries/CoreNodes/Properties/Resources.en-US.resx b/src/Libraries/CoreNodes/Properties/Resources.en-US.resx
index 8ec550b83ce..12558c02c91 100644
--- a/src/Libraries/CoreNodes/Properties/Resources.en-US.resx
+++ b/src/Libraries/CoreNodes/Properties/Resources.en-US.resx
@@ -235,7 +235,7 @@
Input must be a single value or a non-nested list.
- • Min and Max values must not be the same.
+ • Min and Max values must be different.
• Values must be a list of numbers or a single number ≥ 2.
diff --git a/src/Libraries/CoreNodes/Properties/Resources.resx b/src/Libraries/CoreNodes/Properties/Resources.resx
index 22e81e55202..bee17961411 100644
--- a/src/Libraries/CoreNodes/Properties/Resources.resx
+++ b/src/Libraries/CoreNodes/Properties/Resources.resx
@@ -235,7 +235,7 @@
Input must be a single value or a non-nested list.
- • Min and Max values must not be the same.
+ • Min and Max values must be different.
• Values must be a list of numbers or a single number ≥ 2.
diff --git a/src/Libraries/CoreNodes/Web.cs b/src/Libraries/CoreNodes/Web.cs
index 518a45714da..c546e23d622 100644
--- a/src/Libraries/CoreNodes/Web.cs
+++ b/src/Libraries/CoreNodes/Web.cs
@@ -2,6 +2,8 @@
using System.IO;
using Autodesk.DesignScript.Runtime;
using Dynamo.Configuration;
+using Dynamo.Events;
+using Dynamo.Session;
namespace DSCore
{
@@ -10,6 +12,9 @@ public class Web
{
public static string WebRequestByUrl(string url)
{
+ // Prevent the node from executing in no network mode.
+ ExecutionSessionHelper.ThrowIfNoNetworkMode();
+
if (string.IsNullOrEmpty(url))
{
throw new ArgumentException(Properties.Resources.WebRequestNullUrlMessage);
diff --git a/src/NodeServices/DynamoServices.csproj b/src/NodeServices/DynamoServices.csproj
index caae8a34e55..a2bfa4ba341 100644
--- a/src/NodeServices/DynamoServices.csproj
+++ b/src/NodeServices/DynamoServices.csproj
@@ -25,4 +25,20 @@
+
+
+ True
+ True
+ Resources.resx
+
+
+
+
+
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
\ No newline at end of file
diff --git a/src/NodeServices/ExecutionSession.cs b/src/NodeServices/ExecutionSession.cs
index 480d841eff0..5fffaa1628b 100644
--- a/src/NodeServices/ExecutionSession.cs
+++ b/src/NodeServices/ExecutionSession.cs
@@ -1,4 +1,6 @@
+using System;
using System.Collections.Generic;
+using Dynamo.Events;
namespace Dynamo.Session
{
@@ -81,5 +83,31 @@ public class ParameterKeys
/// The return value is an ILogger
///
public static readonly string Logger = nameof(Logger);
+
+ ///
+ /// True if Dynamo is used in offline mode.
+ ///
+ public static readonly string NoNetworkMode = nameof(NoNetworkMode);
+ }
+
+ public static class ExecutionSessionHelper
+ {
+ ///
+ /// Throw exception in no-network mode.
+ /// This helper method can be used to display a warning on a node that
+ /// needs to be prevented from running when no-network mode is enabled.
+ ///
+ ///
+ public static void ThrowIfNoNetworkMode()
+ {
+ var session = ExecutionEvents.ActiveSession;
+ if (session != null)
+ {
+ if ((bool)session.GetParameterValue(ParameterKeys.NoNetworkMode))
+ {
+ throw new Exception(DynamoServices.Properties.Resources.WebRequestOfflineWarning);
+ }
+ }
+ }
}
}
diff --git a/src/NodeServices/Properties/Resources.Designer.cs b/src/NodeServices/Properties/Resources.Designer.cs
new file mode 100644
index 00000000000..7722b3a5469
--- /dev/null
+++ b/src/NodeServices/Properties/Resources.Designer.cs
@@ -0,0 +1,72 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace DynamoServices.Properties {
+ using System;
+
+
+ ///
+ /// A strongly-typed resource class, for looking up localized strings, etc.
+ ///
+ // This class was auto-generated by the StronglyTypedResourceBuilder
+ // class via a tool like ResGen or Visual Studio.
+ // To add or remove a member, edit your .ResX file then rerun ResGen
+ // with the /str option, or rebuild your VS project.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources() {
+ }
+
+ ///
+ /// Returns the cached ResourceManager instance used by this class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager {
+ get {
+ if (object.ReferenceEquals(resourceMan, null)) {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DynamoServices.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Overrides the current thread's CurrentUICulture property for all
+ /// resource lookups using this strongly typed resource class.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture {
+ get {
+ return resourceCulture;
+ }
+ set {
+ resourceCulture = value;
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to The Web Request node is unavailable in No Network mode..
+ ///
+ internal static string WebRequestOfflineWarning {
+ get {
+ return ResourceManager.GetString("WebRequestOfflineWarning", resourceCulture);
+ }
+ }
+ }
+}
diff --git a/src/NodeServices/Properties/Resources.en-US.resx b/src/NodeServices/Properties/Resources.en-US.resx
new file mode 100644
index 00000000000..9091fe5abde
--- /dev/null
+++ b/src/NodeServices/Properties/Resources.en-US.resx
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 1.3
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ The Web Request node is unavailable in No Network mode.
+
+
diff --git a/src/NodeServices/Properties/Resources.resx b/src/NodeServices/Properties/Resources.resx
new file mode 100644
index 00000000000..9091fe5abde
--- /dev/null
+++ b/src/NodeServices/Properties/Resources.resx
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 1.3
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ The Web Request node is unavailable in No Network mode.
+
+
diff --git a/test/DynamoCoreWpf2Tests/PackageManager/PackageManagerControlTests.cs b/test/DynamoCoreWpf2Tests/PackageManager/PackageManagerControlTests.cs
index ead9b7272ab..63798baaed7 100644
--- a/test/DynamoCoreWpf2Tests/PackageManager/PackageManagerControlTests.cs
+++ b/test/DynamoCoreWpf2Tests/PackageManager/PackageManagerControlTests.cs
@@ -23,7 +23,7 @@ public void SearchBoxControlTextTests()
{
// Setup
var mockGreg = new Mock();
- var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty);
+ var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty, false);
var pmCVM = new Mock(ViewModel, clientmock.Object) { CallBase = true };
var packageManagerSearchViewModel = new PackageManagerSearchViewModel(pmCVM.Object);
packageManagerSearchViewModel.RegisterTransientHandlers();
diff --git a/test/DynamoCoreWpf2Tests/PackageManager/PackageManagerSearchElementViewModelTests.cs b/test/DynamoCoreWpf2Tests/PackageManager/PackageManagerSearchElementViewModelTests.cs
index 885f81cd7d0..8b337a269df 100644
--- a/test/DynamoCoreWpf2Tests/PackageManager/PackageManagerSearchElementViewModelTests.cs
+++ b/test/DynamoCoreWpf2Tests/PackageManager/PackageManagerSearchElementViewModelTests.cs
@@ -49,7 +49,7 @@ public void TestPackageManagerSearchElementCanInstall()
string formItFilterName = "FormIt";
var mockGreg = new Mock();
- var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty);
+ var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty, false);
var pmCVM = new Mock(ViewModel, clientmock.Object) { CallBase = true }; ;
var ext = Model.GetPackageManagerExtension();
@@ -203,7 +203,7 @@ public void PackageSearchDialogSearchIntersectAgainstHostFilters()
List intersectionPackagesName = new List { "DynamoTestPackage1", "DynamoTestPackage2" };
var mockGreg = new Mock();
- var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty);
+ var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty, false);
var pmCVM = new Mock(ViewModel, clientmock.Object) {CallBase=true };
var packageManagerSearchViewModel = new PackageManagerSearchViewModel(pmCVM.Object);
@@ -306,7 +306,7 @@ public void PackageSearchDialogSearchTestStatusFilters()
List deprecatedPackagesName = new List { "DynamoTestPackage1", "DynamoTestPackage2" };
var mockGreg = new Mock();
- var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty);
+ var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty, false);
var pmCVM = new Mock(ViewModel, clientmock.Object) { CallBase = true };
var packageManagerSearchViewModel = new PackageManagerSearchViewModel(pmCVM.Object);
@@ -454,7 +454,7 @@ public void PackageSearchDialogSearchTestDependencyFilters()
List noDependencyPackagesName = new List { "DynamoIronPython2.7", "dynamo", "mise en barre", "Test-PackageDependencyFilter" };
var mockGreg = new Mock();
- var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty);
+ var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty, false);
var pmCVM = new Mock(ViewModel, clientmock.Object) { CallBase = true };
var packageManagerSearchViewModel = new PackageManagerSearchViewModel(pmCVM.Object);
@@ -579,7 +579,7 @@ public void PackageSearchDialogSearchTestCompatibilityFilters()
List unknownCompatibilityPackagesName = new List { "DynamoXCompatPackage" };
var mockGreg = new Mock();
- var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty);
+ var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty, false);
var pmCVM = new Mock(ViewModel, clientmock.Object) { CallBase = true };
var packageManagerSearchViewModel = new PackageManagerSearchViewModel(pmCVM.Object);
@@ -696,7 +696,7 @@ public void PackageSearchDialogSearchDifferentLanguage()
List packageHeaders = new List();
var mockGreg = new Mock();
- var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty);
+ var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty, false);
var pmCVM = new Mock(ViewModel, clientmock.Object) { CallBase = true };
List cachedPackages = new List();
foreach (var packageName in packagesNameDifferentLanguages)
@@ -762,7 +762,7 @@ public void PackageSearchOrderAfterTextReset()
List packagesVotes = new List { 50, 60, 90, 40 };
var mockGreg = new Mock();
- var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty);
+ var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty, false);
var pmCVM = new Mock(ViewModel, clientmock.Object) { CallBase = true };
var packageManagerSearchVM = new PackageManagerSearchViewModel(pmCVM.Object);
packageManagerSearchVM.RegisterTransientHandlers();
@@ -859,7 +859,7 @@ public void PackageSearchWithWhitespaceInName()
List packageHeaders = new List();
var mockGreg = new Mock();
- var clientMock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty);
+ var clientMock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty, false);
var pmCVM = new Mock(ViewModel, clientMock.Object) { CallBase = true };
List cachedPackages = new List();
foreach (var packageName in packagesListNames)
@@ -1225,7 +1225,7 @@ public void HostCompatibilityFiltersExclusivity()
{
var mockGreg = new Mock();
- var clientMock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty);
+ var clientMock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty, false);
var pmCVM = new Mock(ViewModel, clientMock.Object) { CallBase = true };
var pmSVM = new PackageManagerSearchViewModel(pmCVM.Object);
pmSVM.RegisterTransientHandlers();
diff --git a/test/DynamoCoreWpf2Tests/PackageManager/PackageManagerUITests.cs b/test/DynamoCoreWpf2Tests/PackageManager/PackageManagerUITests.cs
index 3ee4f301967..160e59af31a 100644
--- a/test/DynamoCoreWpf2Tests/PackageManager/PackageManagerUITests.cs
+++ b/test/DynamoCoreWpf2Tests/PackageManager/PackageManagerUITests.cs
@@ -1202,7 +1202,7 @@ public void PackageManagerDownloadsBeforeInstalling()
var mockGreg = new Mock();
- var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty);
+ var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty, false);
var pmVmMock = new Mock(ViewModel, clientmock.Object) { CallBase = true };
var sharedEngineVersion = DynamoModel.Version;
@@ -1318,7 +1318,7 @@ public void PackageManagerWarnWhenInstallingPackageTargetingOtherHost()
var mockGreg = new Mock();
- var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty);
+ var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty, false);
var pmVmMock = new Mock(ViewModel, clientmock.Object);
var pmMock = new Mock();
@@ -1424,7 +1424,7 @@ public void PackageManagerWarnWhenInstallingPackageTargetingOtherHost()
public void InstallsPackagesEvenIfSomeFailToDownloadShouldNotThrow()
{
var mockGreg = new Mock();
- var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty);
+ var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty, false);
var pmVmMock = new PackageManagerClientViewModel(ViewModel, clientmock.Object);
Assert.DoesNotThrow(() =>
{
diff --git a/test/DynamoCoreWpf2Tests/PackageManager/PackageManagerViewModelTests.cs b/test/DynamoCoreWpf2Tests/PackageManager/PackageManagerViewModelTests.cs
index 14f1c2ce0a6..8ed917a941e 100644
--- a/test/DynamoCoreWpf2Tests/PackageManager/PackageManagerViewModelTests.cs
+++ b/test/DynamoCoreWpf2Tests/PackageManager/PackageManagerViewModelTests.cs
@@ -17,7 +17,7 @@ internal class PackageManagerViewModelTests : SystemTestBase
public void PackageManagerLoadAllViewModelsTests()
{
var mockGreg = new Mock();
- var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty);
+ var clientmock = new Mock(mockGreg.Object, MockMaker.Empty(), string.Empty, false);
var pmCVM = new Mock(ViewModel, clientmock.Object) { CallBase = true }; ;
var packageManagerSearchViewModel = new PackageManagerSearchViewModel(pmCVM.Object);