PERF: Replacing Yaml serializer with simpler implementation.

Removed YamlSerializer.dll dependency and all related documents from Orchard.

--HG--
branch : perf
This commit is contained in:
Suha Can
2010-11-19 13:20:01 -08:00
parent cc6b152b74
commit 8e2497ffbf
5 changed files with 48 additions and 3790 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

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 Orchard.FileSystems.AppData; using Orchard.FileSystems.AppData;
using Orchard.Localization; using Orchard.Localization;
@@ -48,44 +47,61 @@ namespace Orchard.Environment.Configuration {
} }
} }
class Content {
public string Name { get; set; }
public string DataProvider { get; set; }
public string DataConnectionString { get; set; }
public string DataPrefix { get; set; }
public string RequestUrlHost { get; set; }
public string RequestUrlPrefix { get; set; }
public string State { get; set; }
}
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

@@ -153,10 +153,6 @@
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\lib\yaml\Yaml.dll</HintPath> <HintPath>..\..\lib\yaml\Yaml.dll</HintPath>
</Reference> </Reference>
<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="ContentManagement\DefaultContentDisplay.cs" /> <Compile Include="ContentManagement\DefaultContentDisplay.cs" />