Updating Azure with new Yaml serializer implementation

--HG--
branch : dev
This commit is contained in:
Sebastien Ros
2010-11-22 15:25:34 -08:00
parent 579d16bd23
commit fe9225ce8a
2 changed files with 48 additions and 26 deletions

View File

@@ -2,7 +2,6 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Yaml.Serialization;
using JetBrains.Annotations; using JetBrains.Annotations;
using Microsoft.WindowsAzure; using Microsoft.WindowsAzure;
using Microsoft.WindowsAzure.ServiceRuntime; using Microsoft.WindowsAzure.ServiceRuntime;
@@ -95,33 +94,60 @@ namespace Orchard.Azure.Environment.Configuration {
} }
static ShellSettings ParseSettings(string text) { static ShellSettings ParseSettings(string text) {
var ser = new YamlSerializer(); var shellSettings = new ShellSettings();
var content = ser.Deserialize(text, typeof(Content)).Cast<Content>().Single(); if ( String.IsNullOrEmpty(text) )
return new ShellSettings { return shellSettings;
Name = content.Name,
DataProvider = content.DataProvider, string[] settings = text.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
DataConnectionString = content.DataConnectionString, foreach ( var setting in settings ) {
DataTablePrefix = content.DataPrefix, string[] settingFields = setting.Split(new[] { ":" }, StringSplitOptions.RemoveEmptyEntries);
RequestUrlHost = content.RequestUrlHost, int fieldsLength = settingFields.Length;
RequestUrlPrefix = content.RequestUrlPrefix, if ( fieldsLength != 2 )
State = new TenantState(content.State) 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) { static string ComposeSettings(ShellSettings settings) {
if ( settings == null ) if ( settings == null )
return ""; return "";
var ser = new YamlSerializer(); 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",
return ser.Serialize(new Content { settings.Name,
Name = settings.Name, settings.DataProvider,
DataProvider = settings.DataProvider, settings.DataConnectionString ?? "null",
DataConnectionString = settings.DataConnectionString, settings.DataTablePrefix ?? "null",
DataPrefix = settings.DataTablePrefix, settings.RequestUrlHost ?? "null",
RequestUrlHost = settings.RequestUrlHost, settings.RequestUrlPrefix ?? "null",
RequestUrlPrefix = settings.RequestUrlPrefix, settings.State != null ? settings.State.ToString() : String.Empty);
State = settings.State != null ? settings.State.ToString() : String.Empty
});
} }
} }
} }

View File

@@ -68,10 +68,6 @@
</Reference> </Reference>
<Reference Include="System.Data" /> <Reference Include="System.Data" />
<Reference Include="System.Xml" /> <Reference Include="System.Xml" />
<Reference Include="YamlSerializer, Version=0.9.0.2, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\lib\yaml\YamlSerializer.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="CloudBlobContainerExtensions.cs" /> <Compile Include="CloudBlobContainerExtensions.cs" />