diff --git a/src/Orchard.Azure/Environment/Configuration/AzureShellSettingsManager.cs b/src/Orchard.Azure/Environment/Configuration/AzureShellSettingsManager.cs index 65a7a7240..5c5e33d98 100644 --- a/src/Orchard.Azure/Environment/Configuration/AzureShellSettingsManager.cs +++ b/src/Orchard.Azure/Environment/Configuration/AzureShellSettingsManager.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using System.Yaml.Serialization; using JetBrains.Annotations; using Microsoft.WindowsAzure; using Microsoft.WindowsAzure.ServiceRuntime; @@ -95,33 +94,60 @@ namespace Orchard.Azure.Environment.Configuration { } static ShellSettings ParseSettings(string text) { - var ser = new YamlSerializer(); - var content = ser.Deserialize(text, typeof(Content)).Cast().Single(); - return new ShellSettings { - Name = content.Name, - DataProvider = content.DataProvider, - DataConnectionString = content.DataConnectionString, - DataTablePrefix = content.DataPrefix, - RequestUrlHost = content.RequestUrlHost, - RequestUrlPrefix = content.RequestUrlPrefix, - State = new TenantState(content.State) - }; + var shellSettings = new ShellSettings(); + if ( String.IsNullOrEmpty(text) ) + return shellSettings; + + string[] settings = text.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries); + foreach ( var setting in settings ) { + string[] settingFields = setting.Split(new[] { ":" }, StringSplitOptions.RemoveEmptyEntries); + int fieldsLength = settingFields.Length; + if ( fieldsLength != 2 ) + continue; + for ( int i = 0; i < fieldsLength; i++ ) { + settingFields[i] = settingFields[i].Trim(); + } + if ( settingFields[1] != "null" ) { + switch ( settingFields[0] ) { + case "Name": + shellSettings.Name = settingFields[1]; + break; + case "DataProvider": + shellSettings.DataProvider = settingFields[1]; + break; + case "State": + shellSettings.State = new TenantState(settingFields[1]); + break; + case "DataConnectionString": + shellSettings.DataConnectionString = settingFields[1]; + break; + case "DataPrefix": + shellSettings.DataTablePrefix = settingFields[1]; + break; + case "RequestUrlHost": + shellSettings.RequestUrlHost = settingFields[1]; + break; + case "RequestUrlPrefix": + shellSettings.RequestUrlPrefix = settingFields[1]; + break; + } + } + } + return shellSettings; } static string ComposeSettings(ShellSettings settings) { if ( settings == null ) return ""; - var ser = new YamlSerializer(); - return ser.Serialize(new Content { - Name = settings.Name, - DataProvider = settings.DataProvider, - DataConnectionString = settings.DataConnectionString, - DataPrefix = settings.DataTablePrefix, - RequestUrlHost = settings.RequestUrlHost, - RequestUrlPrefix = settings.RequestUrlPrefix, - State = settings.State != null ? settings.State.ToString() : String.Empty - }); + return string.Format("Name: {0}\r\nDataProvider: {1}\r\nDataConnectionString: {2}\r\nDataPrefix: {3}\r\nRequestUrlHost: {4}\r\nRequestUrlPrefix: {5}\r\nState: {6}\r\n", + settings.Name, + settings.DataProvider, + settings.DataConnectionString ?? "null", + settings.DataTablePrefix ?? "null", + settings.RequestUrlHost ?? "null", + settings.RequestUrlPrefix ?? "null", + settings.State != null ? settings.State.ToString() : String.Empty); } } } diff --git a/src/Orchard.Azure/Orchard.Azure.csproj b/src/Orchard.Azure/Orchard.Azure.csproj index 00771440f..b70945429 100644 --- a/src/Orchard.Azure/Orchard.Azure.csproj +++ b/src/Orchard.Azure/Orchard.Azure.csproj @@ -68,10 +68,6 @@ - - False - ..\..\lib\yaml\YamlSerializer.dll -