mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-14 19:04:51 +08:00
Updating Azure with new Yaml serializer implementation
--HG-- branch : dev
This commit is contained in:
@@ -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<Content>().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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -68,10 +68,6 @@
|
||||
</Reference>
|
||||
<Reference Include="System.Data" />
|
||||
<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>
|
||||
<Compile Include="CloudBlobContainerExtensions.cs" />
|
||||
|
Reference in New Issue
Block a user