DO NOT DOWNLOAD. DOWNLOAD LATEST STABLE FROM RELEASE TAB
Integrating LINQ to Umbraco into the umbraco UI Upgrade 4.1 to .NET 3.5 [TFS Changeset #55173]
This commit is contained in:
@@ -77,6 +77,28 @@ namespace umbraco.Linq.DTMetal.CodeBuilder
|
||||
return new ClassGenerator(args);
|
||||
}
|
||||
|
||||
public static ClassGenerator CreateBuilder(string ns, GenerationLanguage lang, XDocument dtml)
|
||||
{
|
||||
var args = new ClassGeneratorArgs()
|
||||
{
|
||||
Namespace = ns,
|
||||
Dtml = dtml
|
||||
};
|
||||
switch (lang)
|
||||
{
|
||||
case GenerationLanguage.VB:
|
||||
args.Provider = new VBCodeProvider();
|
||||
break;
|
||||
|
||||
case GenerationLanguage.CSharp:
|
||||
default:
|
||||
args.Provider = new CSharpCodeProvider();
|
||||
break;
|
||||
}
|
||||
|
||||
return new ClassGenerator(args);
|
||||
}
|
||||
|
||||
internal ClassGenerator(ClassGeneratorArgs args)
|
||||
{
|
||||
this.Args = args;
|
||||
@@ -99,6 +121,24 @@ namespace umbraco.Linq.DTMetal.CodeBuilder
|
||||
}
|
||||
}
|
||||
|
||||
public void Save(Stream stream)
|
||||
{
|
||||
if (this.Code == null)
|
||||
{
|
||||
this.GenerateCode();
|
||||
}
|
||||
|
||||
CodeGeneratorOptions options = new CodeGeneratorOptions()
|
||||
{
|
||||
BracingStyle = "C"
|
||||
};
|
||||
|
||||
using (var sw = new StreamWriter(stream))
|
||||
{
|
||||
this.Args.Provider.GenerateCodeFromCompileUnit(this.Code, sw, options);
|
||||
}
|
||||
}
|
||||
|
||||
internal byte[] SaveForVs()
|
||||
{
|
||||
if (this.Code == null)
|
||||
@@ -177,7 +217,7 @@ namespace umbraco.Linq.DTMetal.CodeBuilder
|
||||
dataContextName += "DataContext";
|
||||
}
|
||||
CodeTypeDeclaration dataContext = new CodeTypeDeclaration(dataContextName);
|
||||
dataContext.BaseTypes.Add("umbracoDataContext");
|
||||
dataContext.BaseTypes.Add("UmbracoDataContext");
|
||||
dataContext.IsClass = true;
|
||||
dataContext.IsPartial = true;
|
||||
|
||||
@@ -206,7 +246,7 @@ namespace umbraco.Linq.DTMetal.CodeBuilder
|
||||
//constructor that takes an umbracoDataProvider
|
||||
ctor = new CodeConstructor();
|
||||
ctor.Attributes = MemberAttributes.Public;
|
||||
ctor.Parameters.Add(new CodeParameterDeclarationExpression("umbracoDataProvider", "provider"));
|
||||
ctor.Parameters.Add(new CodeParameterDeclarationExpression("UmbracoDataProvider", "provider"));
|
||||
ctor.BaseConstructorArgs.Add(new CodePropertyReferenceExpression(null, "provider"));
|
||||
ctor.Statements.Add(statement);
|
||||
dataContext.Members.Add(ctor);
|
||||
@@ -489,7 +529,7 @@ namespace umbraco.Linq.DTMetal.CodeBuilder
|
||||
|
||||
currClass.Members.Add(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
ns.Types.Add(currClass);
|
||||
@@ -512,7 +552,8 @@ namespace umbraco.Linq.DTMetal.CodeBuilder
|
||||
p.HasSet = false;
|
||||
|
||||
new Switch(retyper)
|
||||
.Case<YesNoRetyper>(b => {
|
||||
.Case<YesNoRetyper>(b =>
|
||||
{
|
||||
p.GetStatements.Add(new CodeMethodReturnStatement(
|
||||
GenerateEqualityConditionalStatement(
|
||||
new CodeFieldReferenceExpression(
|
||||
|
||||
@@ -31,6 +31,17 @@ namespace umbraco.Linq.DTMetal.Engine
|
||||
this.DataContextName = dataContextName;
|
||||
}
|
||||
|
||||
public DTMLGenerator(string umbracoConnectionString, string dataContextName, bool disablePluralization)
|
||||
{
|
||||
if (string.IsNullOrEmpty(umbracoConnectionString))
|
||||
{
|
||||
throw new ArgumentNullException("umbracoConnectionString");
|
||||
}
|
||||
|
||||
this.umbracoConnectionString = umbracoConnectionString;
|
||||
this.DataContextName = dataContextName;
|
||||
}
|
||||
|
||||
public void GenerateDTMLFile()
|
||||
{
|
||||
using (var objBuilder = new DocTypeObjectBuilder(this.umbracoConnectionString))
|
||||
@@ -44,5 +55,19 @@ namespace umbraco.Linq.DTMetal.Engine
|
||||
dtmlGen.Save(Path.Combine(this.SavePath, (string.IsNullOrEmpty(this.DataContextName) ? "umbraco" : this.DataContextName) + fileExtension));
|
||||
}
|
||||
}
|
||||
|
||||
internal DocTypeMarkupLanguageBuilder GenerateDTMLStream()
|
||||
{
|
||||
using (var objBuilder = new DocTypeObjectBuilder(this.umbracoConnectionString))
|
||||
{
|
||||
objBuilder.LoadDocTypes();
|
||||
|
||||
var dtmlGen = new DocTypeMarkupLanguageBuilder(objBuilder.DocumentTypes, this.DataContextName, this.DisablePluralization);
|
||||
|
||||
dtmlGen.BuildXml();
|
||||
|
||||
return dtmlGen;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,4 +10,5 @@ using System;
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyProduct("DTMetal.Engine")]
|
||||
[assembly: CLSCompliant(false)]
|
||||
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("umbraco.Linq.DTMetal.Engine.Tests")]
|
||||
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("umbraco.Linq.DTMetal.Engine.Tests")]
|
||||
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("umbraco")]
|
||||
Reference in New Issue
Block a user