From 296f7a13fd4512ce42884903c57d4828f3363133 Mon Sep 17 00:00:00 2001 From: Gary Sharp Date: Wed, 1 Jan 2025 19:23:18 +1100 Subject: [PATCH] feature: online services push notifications --- .../Extensions/DocumentTemplateExtensions.cs | 11 +- Disco.BI/app.config | 52 +- Disco.Models/Disco.Models.csproj | 1 + .../DiscoServices/IConnectNotification.cs | 9 + .../App.config | 40 +- Disco.Services/App.config | 8 + Disco.Services/Disco.Services.csproj | 106 +++- .../DiscoServices/ActivationService.cs | 12 +- .../OnlineServicesAuthentication.cs | 2 + .../DiscoServices/OnlineServicesConnect.cs | 92 ++++ Disco.Services/Logging/LogContext.cs | 11 +- Disco.Services/packages.config | 34 ++ Disco.Web.Extensions/App.config | 48 +- Disco.Web/App_Start/AppConfig.cs | 7 + .../Models/SystemConfig/ActivateModel.cs | 2 +- .../Config/Models/SystemConfig/IndexModel.cs | 2 + .../Config/Views/SystemConfig/Index.cshtml | 20 + .../Views/SystemConfig/Index.generated.cs | 471 ++++++++++-------- Disco.Web/Web.config | 10 +- 19 files changed, 667 insertions(+), 271 deletions(-) create mode 100644 Disco.Models/Services/Interop/DiscoServices/IConnectNotification.cs create mode 100644 Disco.Services/Interop/DiscoServices/OnlineServicesConnect.cs diff --git a/Disco.BI/BI/Extensions/DocumentTemplateExtensions.cs b/Disco.BI/BI/Extensions/DocumentTemplateExtensions.cs index 962fff10..ca5fee60 100644 --- a/Disco.BI/BI/Extensions/DocumentTemplateExtensions.cs +++ b/Disco.BI/BI/Extensions/DocumentTemplateExtensions.cs @@ -17,13 +17,12 @@ namespace Disco.BI.Extensions { public static class DocumentTemplateExtensions { - private static Tuple, List> CreateExpressions(DocumentTemplate dt, DiscoDataContext database) + public static Tuple, List> CreateExpressions(string templateFileName, DiscoDataContext database) { Dictionary expressions = new Dictionary(); List fields = new List(); - string templateFilename = dt.RepositoryFilename(database); - PdfReader pdfReader = new PdfReader(templateFilename); + PdfReader pdfReader = new PdfReader(templateFileName); int pdfFieldOrdinal = 0; foreach (string pdfFieldKey in pdfReader.AcroFields.Fields.Keys) { @@ -61,6 +60,12 @@ namespace Disco.BI.Extensions return Tuple.Create(expressions, fields); } + private static Tuple, List> CreateExpressions(DocumentTemplate dt, DiscoDataContext database) + { + string templateFileName = dt.RepositoryFilename(database); + return CreateExpressions(templateFileName, database); + } + public static Dictionary PdfExpressionsFromCache(this DocumentTemplate dt, DiscoDataContext Database) { return ExpressionCache.GetOrCreateExpressions(dt, () => CreateExpressions(dt, Database)); diff --git a/Disco.BI/app.config b/Disco.BI/app.config index 4ebd93b2..d732e531 100644 --- a/Disco.BI/app.config +++ b/Disco.BI/app.config @@ -1,56 +1,64 @@ - + -
+
- - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + diff --git a/Disco.Models/Disco.Models.csproj b/Disco.Models/Disco.Models.csproj index 976e9e2b..07efcd55 100644 --- a/Disco.Models/Disco.Models.csproj +++ b/Disco.Models/Disco.Models.csproj @@ -82,6 +82,7 @@ + diff --git a/Disco.Models/Services/Interop/DiscoServices/IConnectNotification.cs b/Disco.Models/Services/Interop/DiscoServices/IConnectNotification.cs new file mode 100644 index 00000000..d15fa4e0 --- /dev/null +++ b/Disco.Models/Services/Interop/DiscoServices/IConnectNotification.cs @@ -0,0 +1,9 @@ +namespace Disco.Models.Services.Interop.DiscoServices +{ + public interface IConnectNotification + { + int Version { get; } + int Type { get; } + string Content { get; } + } +} diff --git a/Disco.Services.Plugins.ManifestGenerator/App.config b/Disco.Services.Plugins.ManifestGenerator/App.config index b4565340..8f3e756b 100644 --- a/Disco.Services.Plugins.ManifestGenerator/App.config +++ b/Disco.Services.Plugins.ManifestGenerator/App.config @@ -1,37 +1,45 @@ - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + diff --git a/Disco.Services/App.config b/Disco.Services/App.config index f787e7ee..cd29fb0f 100644 --- a/Disco.Services/App.config +++ b/Disco.Services/App.config @@ -48,6 +48,14 @@ + + + + + + + + diff --git a/Disco.Services/Disco.Services.csproj b/Disco.Services/Disco.Services.csproj index 48bf458f..ea487297 100644 --- a/Disco.Services/Disco.Services.csproj +++ b/Disco.Services/Disco.Services.csproj @@ -56,6 +56,54 @@ ..\packages\Microsoft.AspNet.SignalR.Core.2.1.2\lib\net45\Microsoft.AspNet.SignalR.Core.dll + + ..\packages\Microsoft.AspNetCore.Connections.Abstractions.9.0.0\lib\net462\Microsoft.AspNetCore.Connections.Abstractions.dll + + + ..\packages\Microsoft.AspNetCore.Http.Connections.Client.9.0.0\lib\net462\Microsoft.AspNetCore.Http.Connections.Client.dll + + + ..\packages\Microsoft.AspNetCore.Http.Connections.Common.9.0.0\lib\net462\Microsoft.AspNetCore.Http.Connections.Common.dll + + + ..\packages\Microsoft.AspNetCore.SignalR.Client.9.0.0\lib\net462\Microsoft.AspNetCore.SignalR.Client.dll + + + ..\packages\Microsoft.AspNetCore.SignalR.Client.Core.9.0.0\lib\net462\Microsoft.AspNetCore.SignalR.Client.Core.dll + + + ..\packages\Microsoft.AspNetCore.SignalR.Common.9.0.0\lib\net462\Microsoft.AspNetCore.SignalR.Common.dll + + + ..\packages\Microsoft.AspNetCore.SignalR.Protocols.Json.9.0.0\lib\net462\Microsoft.AspNetCore.SignalR.Protocols.Json.dll + + + ..\packages\Microsoft.Bcl.AsyncInterfaces.9.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\packages\Microsoft.Bcl.TimeProvider.9.0.0\lib\net462\Microsoft.Bcl.TimeProvider.dll + + + ..\packages\Microsoft.Extensions.DependencyInjection.9.0.0\lib\net462\Microsoft.Extensions.DependencyInjection.dll + + + ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.9.0.0\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + ..\packages\Microsoft.Extensions.Features.9.0.0\lib\net462\Microsoft.Extensions.Features.dll + + + ..\packages\Microsoft.Extensions.Logging.9.0.0\lib\net462\Microsoft.Extensions.Logging.dll + + + ..\packages\Microsoft.Extensions.Logging.Abstractions.9.0.0\lib\net462\Microsoft.Extensions.Logging.Abstractions.dll + + + ..\packages\Microsoft.Extensions.Options.9.0.0\lib\net462\Microsoft.Extensions.Options.dll + + + ..\packages\Microsoft.Extensions.Primitives.9.0.0\lib\net462\Microsoft.Extensions.Primitives.dll + ..\packages\Microsoft.Owin.4.2.2\lib\net45\Microsoft.Owin.dll @@ -106,6 +154,9 @@ ..\..\..\Resources\Libraries\Spring.NET\Spring.Core.dll + + ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + @@ -113,10 +164,21 @@ True ..\packages\Microsoft.SqlServer.Compact.4.0.8876.1\lib\net40\System.Data.SqlServerCe.dll + + ..\packages\System.Diagnostics.DiagnosticSource.9.0.0\lib\net462\System.Diagnostics.DiagnosticSource.dll + - + + ..\packages\System.IO.Pipelines.9.0.0\lib\net462\System.IO.Pipelines.dll + + + ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + + ..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll + ..\packages\Microsoft.Net.Http.2.2.22\lib\net45\System.Net.Http.Extensions.dll @@ -124,6 +186,16 @@ ..\packages\Microsoft.Net.Http.2.2.22\lib\net45\System.Net.Http.Primitives.dll + + ..\packages\System.Net.ServerSentEvents.9.0.0\lib\net462\System.Net.ServerSentEvents.dll + + + ..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll + + + + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + False ..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll @@ -140,7 +212,37 @@ False ..\packages\Rx-PlatformServices.2.2.5\lib\net45\System.Reactive.PlatformServices.dll + + ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll + + + ..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net461\System.Security.Cryptography.Algorithms.dll + + + ..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll + + + ..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll + + + ..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll + + + ..\packages\System.Text.Encodings.Web.9.0.0\lib\net462\System.Text.Encodings.Web.dll + + + ..\packages\System.Text.Json.9.0.0\lib\net462\System.Text.Json.dll + + + ..\packages\System.Threading.Channels.9.0.0\lib\net462\System.Threading.Channels.dll + + + ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll @@ -380,6 +482,7 @@ + @@ -553,6 +656,7 @@ + PreserveNewest diff --git a/Disco.Services/Interop/DiscoServices/ActivationService.cs b/Disco.Services/Interop/DiscoServices/ActivationService.cs index 735c6586..3472ac45 100644 --- a/Disco.Services/Interop/DiscoServices/ActivationService.cs +++ b/Disco.Services/Interop/DiscoServices/ActivationService.cs @@ -19,7 +19,7 @@ namespace Disco.Services.Interop.DiscoServices public class ActivationService { private static readonly byte[] onlineServicesActivationKey; - internal const string baseUrl = "https://activate.discoict.com.au"; + internal static readonly Uri BaseUrl = new Uri("https://activate.discoict.com.au"); private readonly DiscoDataContext database; static ActivationService() @@ -40,8 +40,8 @@ namespace Disco.Services.Interop.DiscoServices public string GetDataStoreLocation => Path.Combine(database.DiscoConfiguration.DataStoreLocation, "Activations"); public bool RequiresCleanup => Directory.Exists(GetDataStoreLocation); - public string GetCallbackUrl() - => $"{baseUrl}/api/callback"; + public Uri GetCallbackUrl() + => new Uri(BaseUrl, "/api/callback"); /// /// Begin the activation process @@ -64,7 +64,7 @@ namespace Disco.Services.Interop.DiscoServices ChallengeResponse challenge; using (var httpClient = new HttpClient()) { - httpClient.BaseAddress = new Uri(baseUrl); + httpClient.BaseAddress = BaseUrl; httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var body = new ChallengeRequest() @@ -124,7 +124,7 @@ namespace Disco.Services.Interop.DiscoServices TimeStamp = challenge.TimeStamp, ChallengeResponse = challengeResponse, ChallengeResponseIv = challengeResponseIv, - RedirectUrl = $"{baseUrl}/", + RedirectUrl = new Uri(BaseUrl, "/").ToString(), }; // store activation @@ -174,7 +174,7 @@ namespace Disco.Services.Interop.DiscoServices using (var httpClient = new HttpClient()) { - httpClient.BaseAddress = new Uri(baseUrl); + httpClient.BaseAddress = BaseUrl; httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var body = new CompleteRequest() diff --git a/Disco.Services/Interop/DiscoServices/OnlineServicesAuthentication.cs b/Disco.Services/Interop/DiscoServices/OnlineServicesAuthentication.cs index 7032b593..74a471a3 100644 --- a/Disco.Services/Interop/DiscoServices/OnlineServicesAuthentication.cs +++ b/Disco.Services/Interop/DiscoServices/OnlineServicesAuthentication.cs @@ -132,6 +132,8 @@ namespace Disco.Services.Interop.DiscoServices key = config.ActivationKey; token = null; tokenExpires = null; + + ThreadPool.QueueUserWorkItem(async _ => await OnlineServicesConnect.StartAsync()); } else { diff --git a/Disco.Services/Interop/DiscoServices/OnlineServicesConnect.cs b/Disco.Services/Interop/DiscoServices/OnlineServicesConnect.cs new file mode 100644 index 00000000..4c5bb71c --- /dev/null +++ b/Disco.Services/Interop/DiscoServices/OnlineServicesConnect.cs @@ -0,0 +1,92 @@ +using Disco.Models.Services.Interop.DiscoServices; +using Disco.Services.Logging; +using Microsoft.AspNetCore.SignalR.Client; +using System; +using System.Threading.Tasks; + +namespace Disco.Services.Interop.DiscoServices +{ + public static class OnlineServicesConnect + { + + private static readonly HubConnection connection; + + public static string State => connection.State.ToString(); + + static OnlineServicesConnect() + { + connection = new HubConnectionBuilder() + .WithUrl(new Uri(ActivationService.BaseUrl, "/connect"), options => + { + options.AccessTokenProvider = () => OnlineServicesAuthentication.GetTokenAsync(); + }) + .WithAutomaticReconnect() + .WithStatefulReconnect() + .Build(); + } + + public static async Task StartAsync() + { + try + { + await connection.StartAsync(); + } + catch (Exception ex) + { + SystemLog.LogException("Online Services", ex); + } + } + + public static async Task StopAsync() + { + await connection.StopAsync(); + } + + public static IDisposable SubscribeToNotifications(Action handler, params int[] notificationTypes) + { + return new NotificationSubscription(handler, notificationTypes); + } + + private class NotificationSubscription : IDisposable + { + private readonly IDisposable subscription; + private readonly Action handler; + private readonly int[] notificationTypes; + + public NotificationSubscription(Action handler, params int[] notificationTypes) + { + if (notificationTypes == null || notificationTypes.Length == 0) + { + handler = null; + subscription = null; + notificationTypes = null; + } + else + { + this.handler = handler; + this.notificationTypes = notificationTypes; + subscription = connection.On("Notify", Handler); + } + } + + public void Handler(ConnectNotification notification) + { + if (Array.IndexOf(notificationTypes, notification.Type) >= 0) + handler(notification); + } + + public void Dispose() + { + subscription?.Dispose(); + } + } + + private class ConnectNotification : IConnectNotification + { + public int Version { get; set; } + public int Type { get; set; } + public string Content { get; set; } + } + + } +} diff --git a/Disco.Services/Logging/LogContext.cs b/Disco.Services/Logging/LogContext.cs index 98dfa34c..342f7b20 100644 --- a/Disco.Services/Logging/LogContext.cs +++ b/Disco.Services/Logging/LogContext.cs @@ -50,12 +50,11 @@ namespace Disco.Services.Logging var appDomain = AppDomain.CurrentDomain; var servicesAssemblyName = typeof(LogContext).Assembly.GetName().Name; - var logModuleTypes = (from a in appDomain.GetAssemblies() - where !a.GlobalAssemblyCache && !a.IsDynamic && - (a.GetName().Name == servicesAssemblyName || a.GetReferencedAssemblies().Any(ra => ra.Name == servicesAssemblyName)) - from type in a.GetTypes() - where typeof(LogBase).IsAssignableFrom(type) && !type.IsAbstract - select type); + var logModuleTypes = appDomain.GetAssemblies() + .Where(a => !a.GlobalAssemblyCache && !a.IsDynamic && + (a.GetName().Name == servicesAssemblyName || a.GetReferencedAssemblies().Any(ra => ra.Name == servicesAssemblyName))) + .SelectMany(a => a.GetTypes()) + .Where(t => typeof(LogBase).IsAssignableFrom(t) && !t.IsAbstract); foreach (var logModuleType in logModuleTypes) { var instance = (LogBase)Activator.CreateInstance(logModuleType); diff --git a/Disco.Services/packages.config b/Disco.Services/packages.config index ce827ba7..67378cef 100644 --- a/Disco.Services/packages.config +++ b/Disco.Services/packages.config @@ -8,8 +8,24 @@ + + + + + + + + + + + + + + + + @@ -29,6 +45,24 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Disco.Web.Extensions/App.config b/Disco.Web.Extensions/App.config index 9f709e05..7015d1ec 100644 --- a/Disco.Web.Extensions/App.config +++ b/Disco.Web.Extensions/App.config @@ -1,52 +1,60 @@ - + -
+
- + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + + + + + + diff --git a/Disco.Web/App_Start/AppConfig.cs b/Disco.Web/App_Start/AppConfig.cs index b1dbd6d0..11a0dc63 100644 --- a/Disco.Web/App_Start/AppConfig.cs +++ b/Disco.Web/App_Start/AppConfig.cs @@ -3,6 +3,7 @@ using Disco.Services; using Disco.Services.Interop.DiscoServices; using System; using System.Linq; +using System.Threading; namespace Disco.Web { @@ -86,6 +87,10 @@ namespace Disco.Web DiscoApplication.DocumentDropBoxMonitor.Start(); DiscoApplication.DocumentDropBoxMonitor.ScheduleCurrentFiles(10000); // 10 Second Delay + + // Connect to Online Services + if (Database.DiscoConfiguration.IsActivated) + ThreadPool.QueueUserWorkItem(async _ => await OnlineServicesConnect.StartAsync()); } public static void InitializeUpdateEnvironment(DiscoDataContext Database, Version PreviousVersion) @@ -110,6 +115,8 @@ namespace Disco.Web public static void DisposeEnvironment() { + ThreadPool.QueueUserWorkItem(async _ => await OnlineServicesConnect.StopAsync()); + if (DiscoApplication.DocumentDropBoxMonitor != null) DiscoApplication.DocumentDropBoxMonitor.Dispose(); diff --git a/Disco.Web/Areas/Config/Models/SystemConfig/ActivateModel.cs b/Disco.Web/Areas/Config/Models/SystemConfig/ActivateModel.cs index da25a708..17ad8259 100644 --- a/Disco.Web/Areas/Config/Models/SystemConfig/ActivateModel.cs +++ b/Disco.Web/Areas/Config/Models/SystemConfig/ActivateModel.cs @@ -4,7 +4,7 @@ namespace Disco.Web.Areas.Config.Models.SystemConfig { public class ActivateModel { - public string CallbackUrl { get; set; } + public Uri CallbackUrl { get; set; } public Guid DeploymentId { get; set; } public Guid CorrelationId { get; set; } public string UserId { get; set; } diff --git a/Disco.Web/Areas/Config/Models/SystemConfig/IndexModel.cs b/Disco.Web/Areas/Config/Models/SystemConfig/IndexModel.cs index abfa6deb..40b29bf6 100644 --- a/Disco.Web/Areas/Config/Models/SystemConfig/IndexModel.cs +++ b/Disco.Web/Areas/Config/Models/SystemConfig/IndexModel.cs @@ -120,6 +120,7 @@ namespace Disco.Web.Areas.Config.Models.SystemConfig public bool IsActivated { get; set; } public DateTime? ActivatedOn { get; set; } public string ActivatedBy { get; set; } + public string OnlineServicesState { get; set; } public ScheduledTaskStatus UpdateRunningStatus { get; set; } public DateTime? UpdateNextScheduled { get; set; } @@ -152,6 +153,7 @@ namespace Disco.Web.Areas.Config.Models.SystemConfig IsActivated = config.IsActivated, ActivatedBy = config.ActivatedBy, ActivatedOn = config.ActivatedOn, + OnlineServicesState = OnlineServicesConnect.State, UpdateLatestResponse = config.UpdateLastCheckResponse, UpdateRunningStatus = UpdateQueryTask.RunningStatus, UpdateNextScheduled = UpdateQueryTask.NextScheduled, diff --git a/Disco.Web/Areas/Config/Views/SystemConfig/Index.cshtml b/Disco.Web/Areas/Config/Views/SystemConfig/Index.cshtml index ff068d6c..02af15e8 100644 --- a/Disco.Web/Areas/Config/Views/SystemConfig/Index.cshtml +++ b/Disco.Web/Areas/Config/Views/SystemConfig/Index.cshtml @@ -80,6 +80,26 @@ @if (Model.IsActivated) { @CommonHelpers.FriendlyDate(Model.ActivatedOn) by @Model.ActivatedBy + + switch (Model.OnlineServicesState) + { + case "Disconnected": +
+

Disconnected from Online Services

+
+ break; + case "Connected": +
+

Connected to Online Services

+
+ break; + case "Connecting": + case "Reconnecting": +
+

@Model.OnlineServicesState to Online Services

+
+ break; + } } else { diff --git a/Disco.Web/Areas/Config/Views/SystemConfig/Index.generated.cs b/Disco.Web/Areas/Config/Views/SystemConfig/Index.generated.cs index 9820e4d9..eb6ca067 100644 --- a/Disco.Web/Areas/Config/Views/SystemConfig/Index.generated.cs +++ b/Disco.Web/Areas/Config/Views/SystemConfig/Index.generated.cs @@ -250,6 +250,87 @@ WriteLiteral("\r\n"); #line 83 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + + switch (Model.OnlineServicesState) + { + case "Disconnected": + + + #line default + #line hidden +WriteLiteral(" \r\n Disconnected from Online Services

\r\n \r\n" + +""); + + + #line 90 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + break; + case "Connected": + + + #line default + #line hidden +WriteLiteral(" \r\n Connected to Online Services

\r\n \r\n"); + + + #line 95 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + break; + case "Connecting": + case "Reconnecting": + + + #line default + #line hidden +WriteLiteral(" \r\n "); + + + #line 99 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + Write(Model.OnlineServicesState); + + + #line default + #line hidden +WriteLiteral(" to Online Services

\r\n \r\n"); + + + #line 101 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + break; + } } else { @@ -260,14 +341,14 @@ WriteLiteral("\r\n"); #line default #line hidden - #line 88 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 108 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.AntiForgeryToken()); #line default #line hidden - #line 88 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 108 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" ; @@ -282,7 +363,7 @@ WriteLiteral(" class=\"button small\""); WriteLiteral(">Activate Now\r\n"); - #line 90 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 110 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -304,7 +385,7 @@ WriteLiteral(">Activating Disco ICT with Online Services unlocks additional "\n

\r\n \r\n"); - #line 96 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 116 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -317,13 +398,13 @@ WriteLiteral(" style=\"width: 135px\""); WriteLiteral(">\r\n License:\r\n \r\n \r\n"); - #line 104 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 124 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 104 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 124 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" using (Html.BeginForm(MVC.API.System.LicenseCheck(), FormMethod.Post)) { @@ -331,14 +412,14 @@ WriteLiteral(">\r\n License:\r\n \r\n #line default #line hidden - #line 106 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 126 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.AntiForgeryToken()); #line default #line hidden - #line 106 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 126 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" ; @@ -352,14 +433,14 @@ WriteLiteral(" type=\"text\""); WriteLiteral(" name=\"license\""); -WriteAttribute("value", Tuple.Create(" value=\"", 3985), Tuple.Create("\"", 4007) +WriteAttribute("value", Tuple.Create(" value=\"", 5014), Tuple.Create("\"", 5036) - #line 107 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" -, Tuple.Create(Tuple.Create("", 3993), Tuple.Create(Model.License + #line 127 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" +, Tuple.Create(Tuple.Create("", 5022), Tuple.Create(Model.License #line default #line hidden -, 3993), false) +, 5022), false) ); WriteLiteral(" />\r\n"); @@ -373,7 +454,7 @@ WriteLiteral(" class=\"button small\""); WriteLiteral(">Activate\r\n"); - #line 109 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 129 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -412,13 +493,13 @@ WriteLiteral(@"> "); - #line 136 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 156 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 136 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 156 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" if (Model.License != null) { @@ -432,13 +513,13 @@ WriteLiteral(" style=\"width: 135px\""); WriteLiteral(">\r\n Status:\r\n \r\n \r\n"); - #line 143 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 163 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 143 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 163 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" if (Model.LicenseError != null) { @@ -456,7 +537,7 @@ WriteLiteral(" class=\"fa fa-exclamation-circle fa-lg\""); WriteLiteral("> "); - #line 145 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 165 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Model.LicenseError); @@ -465,7 +546,7 @@ WriteLiteral("> "); WriteLiteral("\r\n"); - #line 146 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 166 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } else { @@ -476,7 +557,7 @@ WriteLiteral("\r\n"); WriteLiteral(" Expires "); - #line 149 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 169 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(CommonHelpers.FriendlyDate(Model.LicenseExpires)); @@ -485,7 +566,7 @@ WriteLiteral(" Expires "); WriteLiteral("\r\n"); - #line 150 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 170 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -494,7 +575,7 @@ WriteLiteral("\r\n"); WriteLiteral(" \r\n \r\n"); - #line 153 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 173 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } else { @@ -531,7 +612,7 @@ WriteLiteral(">Request More Information\r\n \r\n "\n \r\n"); - #line 171 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 191 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -546,13 +627,13 @@ WriteLiteral(" style=\"width: 450px; margin-top: 15px;\""); WriteLiteral(">\r\n

Updates

\r\n \r\n"); - #line 177 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 197 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 177 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 197 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" if (Model.UpdateLatestResponse == null) { @@ -576,7 +657,7 @@ WriteLiteral(" class=\"fa fa-exclamation-circle fa-lg\""); WriteLiteral("> Never\r\n \r\n \r\n"); - #line 188 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 208 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } else { @@ -592,7 +673,7 @@ WriteLiteral(">\r\n Last Run:\r\n \r\n "); - #line 196 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 216 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(CommonHelpers.FriendlyDate(Model.UpdateLatestResponse.UpdateResponseDate.ToLocalTime())); @@ -601,7 +682,7 @@ WriteLiteral(">\r\n Last Run:\r\n \r\n \r\n \r\n"); - #line 199 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 219 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" if (Model.UpdateAvailable) { @@ -621,7 +702,7 @@ WriteLiteral(" class=\"fa fa-info-circle fa-lg information\""); WriteLiteral("> Version "); - #line 207 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 227 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Model.UpdateLatestResponse.LatestVersion); @@ -635,7 +716,7 @@ WriteLiteral(" class=\"smallMessage\""); WriteLiteral(">\r\n [Released "); - #line 210 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 230 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(CommonHelpers.FriendlyDate(Model.UpdateLatestResponse.ReleasedDate)); @@ -648,7 +729,7 @@ WriteLiteral(" class=\"smallMessage\""); WriteLiteral(">"); - #line 212 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 232 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(new HtmlString(Model.UpdateLatestResponse.Description)); @@ -656,14 +737,14 @@ WriteLiteral(">"); #line hidden WriteLiteral("\r\n (Model.UpdateLatestResponse.UrlLink + #line 233 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" +, Tuple.Create(Tuple.Create("", 9630), Tuple.Create(Model.UpdateLatestResponse.UrlLink #line default #line hidden -, 8601), false) +, 9630), false) ); WriteLiteral(" target=\"_blank\""); @@ -671,7 +752,7 @@ WriteLiteral(" target=\"_blank\""); WriteLiteral(">Download Now\r\n \r\n \r\n"); - #line 216 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 236 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } else { @@ -692,7 +773,7 @@ WriteLiteral("> The latest version is installed\r\n "\r\n \r\n"); - #line 227 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 247 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } } @@ -706,13 +787,13 @@ WriteLiteral(" style=\"width: 135px\""); WriteLiteral(">Check for Update:\r\n \r\n\r\n\r\n\r\n \r\n
\r\n"); - #line 233 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 253 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 233 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 253 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" if (Model.UpdateRunningStatus == null) { @@ -723,7 +804,7 @@ WriteLiteral(">Check for Update:\r\n \r\n"); WriteLiteral(" "); - #line 236 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 256 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.ActionLinkSmallButton("Check Now", MVC.API.System.UpdateCheck())); @@ -738,7 +819,7 @@ WriteLiteral(" class=\"smallMessage\""); WriteLiteral(">[Will run automatically "); - #line 237 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 257 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(CommonHelpers.FriendlyDate(Model.UpdateNextScheduled, "Unknown")); @@ -747,7 +828,7 @@ WriteLiteral(">[Will run automatically "); WriteLiteral("]\r\n"); - #line 238 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 258 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } else { @@ -758,7 +839,7 @@ WriteLiteral("]\r\n"); WriteLiteral(" "); - #line 241 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 261 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.ActionLink("View Status", MVC.Config.Logging.TaskStatus(Model.UpdateRunningStatus.SessionId))); @@ -773,7 +854,7 @@ WriteLiteral(" class=\"smallMessage\""); WriteLiteral(">[Running Now]\r\n"); - #line 243 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 263 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -782,13 +863,13 @@ WriteLiteral(">[Running Now]\r\n"); WriteLiteral("\r\n"); - #line 245 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 265 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 245 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 265 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" if (Model.UpdateBetaDeployment) { @@ -808,7 +889,7 @@ WriteLiteral(" class=\"fa fa-info-circle fa-lg\""); WriteLiteral("> Beta Deployment\r\n"); - #line 249 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 269 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -828,7 +909,7 @@ WriteLiteral(">\r\n Primary Domain:\r\n \r\n " "); - #line 262 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 282 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Model.ADPrimaryDomain.Name); @@ -837,7 +918,7 @@ WriteLiteral(">\r\n Primary Domain:\r\n \r\n WriteLiteral(" ["); - #line 262 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 282 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Model.ADPrimaryDomain.NetBiosName); @@ -850,13 +931,13 @@ WriteLiteral(" style=\"width: 135px\""); WriteLiteral(">\r\n Additional Domains:\r\n \r\n \r\n"); - #line 270 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 290 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 270 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 290 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" if (Model.ADDomains.Count > 1) { var adAdditionalDomains = Model.ADDomains.Where(d => d != Model.ADPrimaryDomain).OrderBy(d => d.Name).ToList(); @@ -868,7 +949,7 @@ WriteLiteral(">\r\n Additional Domains:\r\n \r\n WriteLiteral(" "); - #line 274 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 294 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(adDomainFirst.Name); @@ -877,7 +958,7 @@ WriteLiteral(" "); WriteLiteral(" ["); - #line 274 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 294 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(adDomainFirst.NetBiosName); @@ -886,7 +967,7 @@ WriteLiteral(" ["); WriteLiteral("]\r\n"); - #line 275 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 295 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" foreach (var adDomain in adAdditionalDomains.Skip(1)) { @@ -898,7 +979,7 @@ WriteLiteral("
\r\n"); WriteLiteral("
\r\n "); - #line 279 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 299 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(adDomain.Name); @@ -907,7 +988,7 @@ WriteLiteral("
\r\n ["); - #line 279 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 299 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(adDomain.NetBiosName); @@ -916,7 +997,7 @@ WriteLiteral(" ["); WriteLiteral("]\r\n
\r\n"); - #line 281 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 301 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } } else @@ -932,7 +1013,7 @@ WriteLiteral(" class=\"smallMessage\""); WriteLiteral("><None>\r\n"); - #line 286 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 306 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -946,7 +1027,7 @@ WriteLiteral(">\r\n Site:\r\n \r\n
"); - #line 294 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 314 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Model.ADSite.Name); @@ -961,13 +1042,13 @@ WriteLiteral(">\r\n Servers:\r\n \r\n "
\r\n"); - #line 303 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 323 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 303 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 323 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" if (Model.ADServers.Count > 0) { @@ -981,13 +1062,13 @@ WriteLiteral(" class=\"none\""); WriteLiteral(">\r\n"); - #line 306 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 326 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 306 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 326 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" foreach (var server in Model.ADServers) { var serverDescription = string.Format("{0} [{1}]", server.Name.EndsWith(server.Domain.Name, StringComparison.OrdinalIgnoreCase) ? server.Name.Substring(0, server.Name.Length - server.Domain.Name.Length - 1) : server.Name, server.Domain.NetBiosName); @@ -999,13 +1080,13 @@ WriteLiteral(">\r\n"); WriteLiteral("
  • \r\n"); - #line 311 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 331 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 311 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 331 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" if (server.IsAvailable) { @@ -1021,7 +1102,7 @@ WriteLiteral(" title=\"Available\""); WriteLiteral(">\r\n"); - #line 314 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 334 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } else { @@ -1033,24 +1114,24 @@ WriteLiteral(" (server.AvailableWhen.Value.ToLongTimeString() + #line 337 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + , Tuple.Create(Tuple.Create(" ", 14088), Tuple.Create(server.AvailableWhen.Value.ToLongTimeString() #line default #line hidden -, 13060), false) +, 14089), false) ); WriteLiteral(">\r\n"); - #line 318 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 338 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -1059,7 +1140,7 @@ WriteLiteral(">\r\n"); WriteLiteral(" "); - #line 319 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 339 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(serverDescription); @@ -1068,13 +1149,13 @@ WriteLiteral(" "); WriteLiteral("\r\n"); - #line 320 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 340 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 320 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 340 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" if (server.IsSiteServer) { @@ -1090,7 +1171,7 @@ WriteLiteral(" title=\"Site Server\""); WriteLiteral(">\r\n"); - #line 323 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 343 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } else { @@ -1107,7 +1188,7 @@ WriteLiteral(" title=\"Not a Site Server\""); WriteLiteral(">\r\n"); - #line 327 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 347 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -1116,7 +1197,7 @@ WriteLiteral(">\r\n"); WriteLiteral(" "); - #line 328 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 348 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" if (server.IsWritable) { @@ -1132,7 +1213,7 @@ WriteLiteral(" title=\"Writable Domain Controller\""); WriteLiteral(">\r\n"); - #line 331 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 351 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -1141,7 +1222,7 @@ WriteLiteral(">\r\n"); WriteLiteral("
  • \r\n"); - #line 333 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 353 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -1150,7 +1231,7 @@ WriteLiteral(" \r\n"); WriteLiteral(" \r\n"); - #line 335 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 355 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } else { @@ -1169,7 +1250,7 @@ WriteLiteral(" class=\"fa fa-exclamation-circle fa-lg\""); WriteLiteral("> None Found\r\n
    \r\n"); - #line 341 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 361 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -1183,13 +1264,13 @@ WriteLiteral(" style=\"width: 135px\""); WriteLiteral(">\r\n Directory:\r\n \r\n
    \r\n"); - #line 350 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 370 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 350 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 370 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" if (Model.ADAllServers == null) { @@ -1201,7 +1282,7 @@ WriteLiteral("
    \r\n"); WriteLiteral(" "); - #line 353 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 373 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.CheckBoxFor(m => m.ADSearchAllServers, new { disabled = "disabled" })); @@ -1210,7 +1291,7 @@ WriteLiteral(" "); WriteLiteral(" "); - #line 353 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 373 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.LabelFor(m => m.ADSearchAllServers)); @@ -1235,7 +1316,7 @@ WriteLiteral(">Directory servers are currently being retrieved.
    \r\n "
    \r\n"); - #line 361 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 381 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } else { @@ -1249,13 +1330,13 @@ WriteLiteral(">Directory servers are currently being retrieved.
    \r\n WriteLiteral("
    \r\n"); - #line 368 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 388 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 368 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 388 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" if (!canSearchEntireDirectory) { @@ -1263,27 +1344,27 @@ WriteLiteral("
    \r\n"); #line default #line hidden - #line 370 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 390 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.CheckBoxFor(m => m.ADSearchAllServers, new { disabled = "disabled" })); #line default #line hidden - #line 370 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 390 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 370 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 390 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.LabelFor(m => m.ADSearchAllServers)); #line default #line hidden - #line 370 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 390 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" @@ -1304,7 +1385,7 @@ WriteLiteral(" class=\"fa fa-exclamation-circle warning\""); WriteLiteral(">Disco ICT will not search the entire directory which consists of more than "); - #line 373 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 393 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Disco.Services.Interop.ActiveDirectory.ActiveDirectory.MaxAllServerSearch); @@ -1314,7 +1395,7 @@ WriteLiteral(" servers. Only servers within this site will be searched.\r\n "

    \r\n
    \r\n"); - #line 376 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 396 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } else { @@ -1323,40 +1404,40 @@ WriteLiteral(" servers. Only servers within this site will be searched.\r\n #line default #line hidden - #line 379 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 399 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.CheckBoxFor(m => m.ADSearchAllServers)); #line default #line hidden - #line 379 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 399 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 379 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 399 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.LabelFor(m => m.ADSearchAllServers)); #line default #line hidden - #line 379 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 399 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 379 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 399 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(AjaxHelpers.AjaxLoader()); #line default #line hidden - #line 379 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 399 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" @@ -1383,7 +1464,7 @@ WriteLiteral(" \r\n"); - #line 390 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 410 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -1402,7 +1483,7 @@ WriteLiteral("\', \'SearchAllServers\');\r\n WriteLiteral("
    \r\n"); - #line 392 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 412 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } else { @@ -1415,7 +1496,7 @@ WriteLiteral("
    \r\n"); WriteLiteral(" "); - #line 396 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 416 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.CheckBoxFor(m => m.ADSearchAllServers, new { disabled = "disabled" })); @@ -1424,7 +1505,7 @@ WriteLiteral(" "); WriteLiteral(" "); - #line 396 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 416 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.LabelFor(m => m.ADSearchAllServers)); @@ -1447,7 +1528,7 @@ WriteLiteral(">If this setting is enabled, Disco ICT will query all servers "

    \r\n
    \r\n \r\n"); - #line 403 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 423 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -1463,13 +1544,13 @@ WriteLiteral(" class=\"none\""); WriteLiteral(">\r\n"); - #line 408 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 428 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 408 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 428 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" var domainIndex = Model.ADDomains.ToDictionary(d => d.Name, StringComparer.OrdinalIgnoreCase); var siteServers = Model.ADServers.Where(s => s.IsSiteServer).ToDictionary(s => s.Name, StringComparer.OrdinalIgnoreCase); @@ -1492,7 +1573,7 @@ WriteLiteral("
  • \r\n " "); - #line 423 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 443 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(serverDescription); @@ -1501,7 +1582,7 @@ WriteLiteral("
  • \r\n WriteLiteral(""); - #line 423 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 443 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" if (siteServers.ContainsKey(server)) { @@ -1516,7 +1597,7 @@ WriteLiteral(" title=\"Site Server\""); WriteLiteral(">"); - #line 424 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 444 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -1525,7 +1606,7 @@ WriteLiteral(">"); WriteLiteral("
  • \r\n"); - #line 426 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 446 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -1559,7 +1640,7 @@ WriteLiteral(@" "); - #line 452 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 472 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -1572,13 +1653,13 @@ WriteLiteral(" style=\"width: 135px\""); WriteLiteral(">\r\n Searching:\r\n \r\n
    \r\n"); - #line 461 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 481 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 461 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 481 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" object ADSearchWildcardSuffixOnlyAttributes = null; if (!canConfigAD) @@ -1597,7 +1678,7 @@ WriteLiteral("\r\n"); WriteLiteral(" "); - #line 471 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 491 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.CheckBoxFor(m => m.ADSearchWildcardSuffixOnly, ADSearchWildcardSuffixOnlyAttributes)); @@ -1606,7 +1687,7 @@ WriteLiteral(" "); WriteLiteral(" "); - #line 471 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 491 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.LabelFor(m => m.ADSearchWildcardSuffixOnly)); @@ -1615,7 +1696,7 @@ WriteLiteral(" "); WriteLiteral(" "); - #line 471 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 491 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(AjaxHelpers.AjaxLoader()); @@ -1640,13 +1721,13 @@ WriteLiteral(@">If this setting is enabled, Disco ICT will utilize Active Di "); - #line 478 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 498 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 478 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 498 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" if (canConfigAD) { @@ -1658,7 +1739,7 @@ WriteLiteral(" \r\n"); - #line 485 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 505 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -1681,13 +1762,13 @@ WriteLiteral(" style=\"width: 135px\""); WriteLiteral(">\r\n Search Scope:\r\n \r\n \r\n"); - #line 493 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 513 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 493 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 513 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" if (Model.ADSearchContainers != null && Model.ADSearchContainers.Count > 0) { @@ -1704,13 +1785,13 @@ WriteLiteral(" id=\"Config_System_AD_SearchScope_DistinguishedNames\""); WriteLiteral(">\r\n"); - #line 497 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 517 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 497 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 517 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" foreach (var adContainer in Model.ADSearchContainers) { @@ -1722,7 +1803,7 @@ WriteLiteral(" "); - #line 499 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 519 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(adContainer.Item3); @@ -1742,7 +1823,7 @@ WriteLiteral(">"); WriteLiteral("\r\n"); - #line 500 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 520 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -1751,7 +1832,7 @@ WriteLiteral("\r\n"); WriteLiteral(" \r\n"); - #line 502 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 522 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } else { @@ -1779,7 +1860,7 @@ WriteLiteral(">When searching, the entire domain will be queried. This is su "/div>\r\n"); - #line 511 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 531 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -1788,7 +1869,7 @@ WriteLiteral(">When searching, the entire domain will be queried. This is su WriteLiteral(" "); - #line 512 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 532 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" if (canConfigAD) { @@ -1823,7 +1904,7 @@ WriteLiteral(">\r\n"); WriteLiteral(" "); - #line 520 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 540 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(AjaxHelpers.AjaxLoader()); @@ -1839,13 +1920,13 @@ WriteLiteral(" class=\"organisationalUnitTree\""); WriteLiteral(">\r\n \r\n"); - #line 524 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 544 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 524 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 544 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" using (Html.BeginForm(MVC.API.System.UpdateActiveDirectorySearchScope(null, redirect: true))) { } @@ -1892,7 +1973,7 @@ WriteLiteral(" \r\n"); - #line 635 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 655 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -1947,7 +2028,7 @@ WriteLiteral("\', null, function (data) {\r\n WriteLiteral("
    \r\n\r\n"); - #line 643 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 663 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" if (canConfigProxy) { using (Html.BeginForm(MVC.API.System.UpdateProxySettings())) @@ -1973,7 +2054,7 @@ WriteLiteral(">\r\n Address:\r\n WriteLiteral(" "); - #line 655 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 675 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.EditorFor(m => m.ProxyAddress)); @@ -1984,7 +2065,7 @@ WriteLiteral("
    \r\n"); WriteLiteral(" "); - #line 656 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 676 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.ValidationMessageFor(m => m.ProxyAddress)); @@ -2001,7 +2082,7 @@ WriteLiteral(">\r\n Port:\r\n \r\ WriteLiteral(" "); - #line 664 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 684 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.EditorFor(m => m.ProxyPort)); @@ -2012,7 +2093,7 @@ WriteLiteral("
    \r\n"); WriteLiteral(" "); - #line 665 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 685 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.ValidationMessageFor(m => m.ProxyPort)); @@ -2029,7 +2110,7 @@ WriteLiteral(">\r\n Username:\r\n m.ProxyUsername)); @@ -2040,7 +2121,7 @@ WriteLiteral("
    \r\n"); WriteLiteral(" "); - #line 674 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 694 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.ValidationMessageFor(m => m.ProxyUsername)); @@ -2057,7 +2138,7 @@ WriteLiteral(">\r\n Password:\r\n m.ProxyPassword)); @@ -2068,7 +2149,7 @@ WriteLiteral("
    \r\n"); WriteLiteral(" "); - #line 683 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 703 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.ValidationMessageFor(m => m.ProxyPassword)); @@ -2091,7 +2172,7 @@ WriteLiteral(" class=\"button small\""); WriteLiteral(">Save Proxy Settings"); - #line 691 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 711 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(AjaxHelpers.AjaxLoader()); @@ -2106,7 +2187,7 @@ WriteLiteral(@" var url = '"); - #line 697 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 717 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Url.Action(MVC.API.System.UpdateProxySettings())); @@ -2135,7 +2216,7 @@ WriteLiteral("\';\r\n var data = {\r\n " \r\n \r\n \r\n"); - #line 727 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 747 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } } else @@ -2160,7 +2241,7 @@ WriteLiteral(">\r\n Address:\r\n \r\n WriteLiteral(" "); - #line 739 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 759 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.DisplayFor(m => m.ProxyAddress)); @@ -2176,7 +2257,7 @@ WriteLiteral(">\r\n Port:\r\n \r\n WriteLiteral(" "); - #line 747 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 767 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.DisplayFor(m => m.ProxyPort)); @@ -2192,7 +2273,7 @@ WriteLiteral(">\r\n Username:\r\n \r\n WriteLiteral(" "); - #line 755 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 775 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.DisplayFor(m => m.ProxyUsername)); @@ -2208,14 +2289,14 @@ WriteLiteral(">\r\n Password:\r\n \r\n "table>\r\n \r\n"); - #line 768 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 788 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } #line default #line hidden - #line 769 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 789 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" if (canConfigEmail) { @@ -2239,7 +2320,7 @@ WriteLiteral(">\r\n SMTP Server:\r\n \r\n WriteLiteral(" "); - #line 779 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 799 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.EditorFor(m => m.EmailSmtpServer)); @@ -2250,7 +2331,7 @@ WriteLiteral("
    \r\n"); WriteLiteral(" "); - #line 780 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 800 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.ValidationMessageFor(m => m.EmailSmtpServer)); @@ -2266,7 +2347,7 @@ WriteLiteral(">\r\n Port:\r\n \r\n WriteLiteral(" "); - #line 788 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 808 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.EditorFor(m => m.EmailSmtpPort)); @@ -2277,7 +2358,7 @@ WriteLiteral("
    \r\n"); WriteLiteral(" "); - #line 789 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 809 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.ValidationMessageFor(m => m.EmailSmtpPort)); @@ -2294,7 +2375,7 @@ WriteLiteral(">\r\n Default From Address:\r\n WriteLiteral(" "); - #line 797 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 817 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.EditorFor(m => m.EmailFromAddress)); @@ -2305,7 +2386,7 @@ WriteLiteral("
    \r\n"); WriteLiteral(" "); - #line 798 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 818 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.ValidationMessageFor(m => m.EmailFromAddress)); @@ -2322,7 +2403,7 @@ WriteLiteral(">\r\n Reply To Address:\r\n m.EmailReplyToAddress)); @@ -2333,7 +2414,7 @@ WriteLiteral("
    \r\n"); WriteLiteral(" "); - #line 807 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 827 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.ValidationMessageFor(m => m.EmailReplyToAddress)); @@ -2349,7 +2430,7 @@ WriteLiteral(">\r\n  \r\n \r\n WriteLiteral(" "); - #line 815 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 835 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.CheckBoxFor(m => m.EmailEnableSsl)); @@ -2358,7 +2439,7 @@ WriteLiteral(" "); WriteLiteral(" "); - #line 815 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 835 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.LabelFor(m => m.EmailEnableSsl)); @@ -2374,7 +2455,7 @@ WriteLiteral(">\r\n Username:\r\n \r\n WriteLiteral(" "); - #line 823 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 843 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.EditorFor(m => m.EmailUsername)); @@ -2385,7 +2466,7 @@ WriteLiteral("
    \r\n"); WriteLiteral(" "); - #line 824 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 844 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.ValidationMessageFor(m => m.EmailUsername)); @@ -2401,7 +2482,7 @@ WriteLiteral(">\r\n Password:\r\n \r\n WriteLiteral(" "); - #line 832 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 852 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.EditorFor(m => m.EmailPassword)); @@ -2412,7 +2493,7 @@ WriteLiteral("
    \r\n"); WriteLiteral(" "); - #line 833 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 853 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.ValidationMessageFor(m => m.EmailPassword)); @@ -2428,7 +2509,7 @@ WriteLiteral(">\r\n  \r\n \r\n WriteLiteral(" "); - #line 841 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 861 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.AntiForgeryToken()); @@ -2445,7 +2526,7 @@ WriteLiteral(" class=\"button small\""); WriteLiteral(" "); - #line 842 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 862 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Model.EmailIsConfigured ? null : "disabled"); @@ -2462,7 +2543,7 @@ WriteLiteral(" class=\"button small\""); WriteLiteral(">Save Email Settings"); - #line 843 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 863 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(AjaxHelpers.AjaxLoader()); @@ -2483,13 +2564,13 @@ WriteLiteral(" class=\"fa fa-envelope information\""); WriteLiteral("> Recipient Email Address:\r\n
    \r\n"); - #line 847 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 867 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 847 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 867 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" using (Html.BeginForm(MVC.API.System.SendTestEmail(), FormMethod.Post)) { @@ -2514,33 +2595,33 @@ WriteLiteral(" name=\"Recipient\""); WriteLiteral(" type=\"text\""); -WriteAttribute("value", Tuple.Create(" value=\"", 38990), Tuple.Create("\"", 39023) +WriteAttribute("value", Tuple.Create(" value=\"", 40019), Tuple.Create("\"", 40052) - #line 850 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" - , Tuple.Create(Tuple.Create("", 38998), Tuple.Create(CurrentUser.EmailAddress + #line 870 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + , Tuple.Create(Tuple.Create("", 40027), Tuple.Create(CurrentUser.EmailAddress #line default #line hidden -, 38998), false) +, 40027), false) ); WriteLiteral(" />\r\n"); - #line 851 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 871 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" #line default #line hidden - #line 851 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 871 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.AntiForgeryToken()); #line default #line hidden - #line 851 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 871 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -2558,7 +2639,7 @@ WriteLiteral(@" var url = '"); - #line 861 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 881 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Url.Action(MVC.API.System.UpdateEmailSettings())); @@ -2621,7 +2702,7 @@ WriteLiteral("\';\r\n var data = {\r\n "\r\n \r\n \r\n \r\n"); - #line 933 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 953 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } else { @@ -2646,7 +2727,7 @@ WriteLiteral(">\r\n SMTP Server:\r\n \r\n WriteLiteral(" "); - #line 944 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 964 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.DisplayFor(m => m.EmailSmtpServer)); @@ -2662,7 +2743,7 @@ WriteLiteral(">\r\n Port:\r\n \r\n WriteLiteral(" "); - #line 952 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 972 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.DisplayFor(m => m.EmailSmtpPort)); @@ -2679,7 +2760,7 @@ WriteLiteral(">\r\n Default From Address:\r\n WriteLiteral(" "); - #line 960 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 980 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.DisplayFor(m => m.EmailFromAddress)); @@ -2696,7 +2777,7 @@ WriteLiteral(">\r\n Reply To Address:\r\n m.EmailReplyToAddress)); @@ -2713,7 +2794,7 @@ WriteLiteral(">\r\n Enable SSL:\r\n \r\n WriteLiteral(" "); - #line 976 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 996 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.CheckBoxFor(m => m.EmailEnableSsl, new { disabled = "disabled" })); @@ -2722,7 +2803,7 @@ WriteLiteral(" "); WriteLiteral(" "); - #line 976 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 996 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.LabelFor(m => m.EmailEnableSsl)); @@ -2738,7 +2819,7 @@ WriteLiteral(">\r\n Username:\r\n \r\n WriteLiteral(" "); - #line 984 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 1004 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.DisplayFor(m => m.EmailUsername)); @@ -2754,7 +2835,7 @@ WriteLiteral(">\r\n Password:\r\n \r\n "table>\r\n \r\n"); - #line 997 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 1017 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" } @@ -2769,7 +2850,7 @@ WriteLiteral(">\r\n"); WriteLiteral(" "); - #line 999 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" + #line 1019 "..\..\Areas\Config\Views\SystemConfig\Index.cshtml" Write(Html.ActionLinkButton("Update Device Last Network Logons", MVC.API.System.UpdateLastNetworkLogonDates())); diff --git a/Disco.Web/Web.config b/Disco.Web/Web.config index c0b7102a..4c9eee2a 100644 --- a/Disco.Web/Web.config +++ b/Disco.Web/Web.config @@ -1,4 +1,4 @@ - +
    @@ -101,6 +101,14 @@ + + + + + + + +