From 5011eee037dfcfdca1cdef5f614144ed3310b920 Mon Sep 17 00:00:00 2001 From: Shannon Date: Wed, 25 Jun 2014 11:00:53 +1000 Subject: [PATCH] fixes merge issue --- .../Configuration/UmbracoSettings/IServer.cs | 3 ++ .../UmbracoSettings/ServerElement.cs | 19 ++++++++ .../Sync/ServerEnvironmentHelper.cs | 32 ++++++------- src/Umbraco.Web/Scheduling/ScheduledTasks.cs | 47 +++++++++---------- 4 files changed, 57 insertions(+), 44 deletions(-) diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/IServer.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/IServer.cs index 5ad0715302..856c570277 100644 --- a/src/Umbraco.Core/Configuration/UmbracoSettings/IServer.cs +++ b/src/Umbraco.Core/Configuration/UmbracoSettings/IServer.cs @@ -5,5 +5,8 @@ string ForcePortnumber { get; } string ForceProtocol { get; } string ServerAddress { get; } + + string AppId { get; } + string ServerName { get; } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Configuration/UmbracoSettings/ServerElement.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/ServerElement.cs index 2374005eec..7c00c02277 100644 --- a/src/Umbraco.Core/Configuration/UmbracoSettings/ServerElement.cs +++ b/src/Umbraco.Core/Configuration/UmbracoSettings/ServerElement.cs @@ -26,5 +26,24 @@ { get { return Value; } } + + public string AppId + { + get + { + return RawXml.Attribute("appId") == null + ? null + : RawXml.Attribute("appId").Value; + } + } + public string ServerName + { + get + { + return RawXml.Attribute("serverName") == null + ? null + : RawXml.Attribute("serverName").Value; + } + } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Sync/ServerEnvironmentHelper.cs b/src/Umbraco.Core/Sync/ServerEnvironmentHelper.cs index 73dca4cc98..aadad2abe0 100644 --- a/src/Umbraco.Core/Sync/ServerEnvironmentHelper.cs +++ b/src/Umbraco.Core/Sync/ServerEnvironmentHelper.cs @@ -28,21 +28,18 @@ namespace Umbraco.Core.Sync return string.Format("http://{0}", ApplicationContext.Current.OriginalRequestUrl); } - var servers = UmbracoSettings.DistributionServers; + var servers = UmbracoConfig.For.UmbracoSettings().DistributedCall.Servers.ToArray(); - var nodes = servers.SelectNodes("./server"); - if (nodes == null) + if (servers.Any() == false) { //cannot be determined, then the base url has to be the first url registered return string.Format("http://{0}", ApplicationContext.Current.OriginalRequestUrl); } - var xmlNodes = nodes.Cast().ToList(); - - foreach (var xmlNode in xmlNodes) + foreach (var server in servers) { - var appId = xmlNode.AttributeValue("appId"); - var serverName = xmlNode.AttributeValue("serverName"); + var appId = server.AppId; + var serverName = server.ServerName; if (appId.IsNullOrWhiteSpace() && serverName.IsNullOrWhiteSpace()) { @@ -54,9 +51,9 @@ namespace Umbraco.Core.Sync { //match by appId or computer name! return the url configured return string.Format("{0}://{1}:{2}/{3}", - xmlNode.AttributeValue("forceProtocol").IsNullOrWhiteSpace() ? "http" : xmlNode.AttributeValue("forceProtocol"), - xmlNode.InnerText, - xmlNode.AttributeValue("forcePortnumber").IsNullOrWhiteSpace() ? "80" : xmlNode.AttributeValue("forcePortnumber"), + server.ForceProtocol.IsNullOrWhiteSpace() ? "http" : server.ForceProtocol, + server.ServerAddress, + server.ForcePortnumber.IsNullOrWhiteSpace() ? "80" : server.ForcePortnumber, IOHelper.ResolveUrl(SystemDirectories.Umbraco).TrimStart('/')); } } @@ -71,20 +68,19 @@ namespace Umbraco.Core.Sync /// public static CurrentServerEnvironmentStatus GetStatus() { - if (UmbracoSettings.UseDistributedCalls == false) + if (UmbracoConfig.For.UmbracoSettings().DistributedCall.Enabled == false) { return CurrentServerEnvironmentStatus.Single; } - var servers = UmbracoSettings.DistributionServers; + var servers = UmbracoConfig.For.UmbracoSettings().DistributedCall.Servers.ToArray(); - var nodes = servers.SelectNodes("./server"); - if (nodes == null) + if (servers.Any() == false) { return CurrentServerEnvironmentStatus.Unknown; } - var master = nodes.Cast().FirstOrDefault(); + var master = servers.FirstOrDefault(); if (master == null) { @@ -95,8 +91,8 @@ namespace Umbraco.Core.Sync //TODO: In v7 we have publicized ServerRegisterResolver - we won't be able to determine this based on that // but we'd need to change the IServerAddress interfaces which is breaking. - var appId = master.AttributeValue("appId"); - var serverName = master.AttributeValue("serverName"); + var appId = master.AppId; + var serverName = master.ServerName; if (appId.IsNullOrWhiteSpace() && serverName.IsNullOrWhiteSpace()) { diff --git a/src/Umbraco.Web/Scheduling/ScheduledTasks.cs b/src/Umbraco.Web/Scheduling/ScheduledTasks.cs index 9abf7d9f69..b25f50c198 100644 --- a/src/Umbraco.Web/Scheduling/ScheduledTasks.cs +++ b/src/Umbraco.Web/Scheduling/ScheduledTasks.cs @@ -1,5 +1,6 @@ using System; using System.Collections; +using System.Linq; using System.Net; using System.Xml; using Umbraco.Core.Configuration; @@ -43,35 +44,29 @@ namespace Umbraco.Web.Scheduling { - var scheduledTasks = UmbracoSettings.ScheduledTasks; - if (scheduledTasks != null) + var scheduledTasks = UmbracoConfig.For.UmbracoSettings().ScheduledTasks.Tasks; + foreach (var t in scheduledTasks) { - var tasks = scheduledTasks.SelectNodes("./task"); - if (tasks == null) return; - - foreach (XmlNode task in tasks) + var runTask = false; + if (!ScheduledTaskTimes.ContainsKey(t.Alias)) { - var runTask = false; - if (ScheduledTaskTimes.ContainsKey(task.Attributes.GetNamedItem("alias").Value) == false) - { - runTask = true; - ScheduledTaskTimes.Add(task.Attributes.GetNamedItem("alias").Value, DateTime.Now); - } - // Add 1 second to timespan to compensate for differencies in timer - else if (new TimeSpan( - DateTime.Now.Ticks - ((DateTime)ScheduledTaskTimes[task.Attributes.GetNamedItem("alias").Value]).Ticks).TotalSeconds + 1 - >= int.Parse(task.Attributes.GetNamedItem("interval").Value)) - { - runTask = true; - ScheduledTaskTimes[task.Attributes.GetNamedItem("alias").Value] = DateTime.Now; - } + runTask = true; + ScheduledTaskTimes.Add(t.Alias, DateTime.Now); + } + /// Add 1 second to timespan to compensate for differencies in timer + else if ( + new TimeSpan( + DateTime.Now.Ticks - ((DateTime)ScheduledTaskTimes[t.Alias]).Ticks).TotalSeconds + 1 >= t.Interval) + { + runTask = true; + ScheduledTaskTimes[t.Alias] = DateTime.Now; + } - if (runTask) - { - bool taskResult = GetTaskByHttp(task.Attributes.GetNamedItem("url").Value); - if (bool.Parse(task.Attributes.GetNamedItem("log").Value)) - LogHelper.Info(string.Format("{0} has been called with response: {1}", task.Attributes.GetNamedItem("alias").Value, taskResult)); - } + if (runTask) + { + bool taskResult = GetTaskByHttp(t.Url); + if (t.Log) + LogHelper.Info(string.Format("{0} has been called with response: {1}", t.Alias, taskResult)); } } }