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.IO;
using System.Linq;
using System.Yaml.Serialization;
using Orchard.FileSystems.AppData;
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) {
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);
}
}
}

View File

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