Skip to content

Commit

Permalink
add Placeholder Tag.
Browse files Browse the repository at this point in the history
  • Loading branch information
Ahoo-Wang committed Mar 6, 2018
1 parent 565ed03 commit 240b020
Show file tree
Hide file tree
Showing 8 changed files with 74 additions and 13 deletions.
26 changes: 26 additions & 0 deletions Docs/Schemas/SmartSqlMap.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="Dynamic" />
<xs:element ref="Where" />
<xs:element ref="For" />
Expand All @@ -104,6 +105,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="Dynamic" />
<xs:element ref="Where" />
<xs:element ref="For" />
Expand Down Expand Up @@ -139,6 +141,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="Dynamic" />
<xs:element ref="Where" />
<xs:element ref="For" />
Expand Down Expand Up @@ -166,6 +169,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="Dynamic" />
<xs:element ref="Where" />
<xs:element ref="For" />
Expand Down Expand Up @@ -194,6 +198,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="Dynamic" />
<xs:element ref="Where" />
<xs:element ref="For" />
Expand Down Expand Up @@ -222,6 +227,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="Dynamic" />
<xs:element ref="Where" />
<xs:element ref="For" />
Expand Down Expand Up @@ -250,6 +256,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="Dynamic" />
<xs:element ref="Where" />
<xs:element ref="For" />
Expand Down Expand Up @@ -278,6 +285,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="Dynamic" />
<xs:element ref="Where" />
<xs:element ref="For" />
Expand Down Expand Up @@ -306,6 +314,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="Dynamic" />
<xs:element ref="Where" />
<xs:element ref="For" />
Expand Down Expand Up @@ -334,6 +343,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="Dynamic" />
<xs:element ref="Where" />
<xs:element ref="For" />
Expand Down Expand Up @@ -362,6 +372,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="Dynamic" />
<xs:element ref="Where" />
<xs:element ref="For" />
Expand Down Expand Up @@ -390,6 +401,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="Dynamic" />
<xs:element ref="Where" />
<xs:element ref="For" />
Expand Down Expand Up @@ -417,6 +429,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="Dynamic" />
<xs:element ref="Where" />
<xs:element ref="For" />
Expand Down Expand Up @@ -444,6 +457,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="Dynamic" />
<xs:element ref="Where" />
<xs:element ref="For" />
Expand Down Expand Up @@ -471,6 +485,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="Dynamic" />
<xs:element ref="Where" />
<xs:element ref="For" />
Expand All @@ -480,6 +495,12 @@
<xs:attribute name="Property" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="Placeholder">
<xs:complexType mixed="true">
<xs:attribute name="Prepend" type="xs:string" use="optional" />
<xs:attribute name="Property" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="Dynamic">
<xs:complexType mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
Expand All @@ -498,6 +519,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="Dynamic" />
<xs:element ref="Where" />
<xs:element ref="Set" />
Expand Down Expand Up @@ -525,6 +547,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="Dynamic" />
<xs:element ref="Where" />
<xs:element ref="For" />
Expand All @@ -550,6 +573,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="For" />
<xs:element ref="Env" />
</xs:choice>
Expand Down Expand Up @@ -583,6 +607,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="Dynamic" />
<xs:element ref="Where" />
<xs:element ref="Set" />
Expand Down Expand Up @@ -611,6 +636,7 @@
<xs:element ref="IsTrue" />
<xs:element ref="IsFalse" />
<xs:element ref="IsProperty" />
<xs:element ref="Placeholder" />
<xs:element ref="Dynamic" />
<xs:element ref="Where" />
<xs:element ref="Set" />
Expand Down
8 changes: 4 additions & 4 deletions SmartSql.Tests/DataAccess/DataAccess_Test.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public void Insert()
[Fact]
public void Delete()
{
var exeNum = dao.Delete<long>(230151);
var exeNum = dao.Delete(230151);

}

Expand All @@ -42,14 +42,14 @@ public void Update()
[Fact]
public void GetList()
{
var list = dao.GetList<T_Test>(null);
var list = dao.GetList(null);
Assert.NotNull(list);
}

[Fact]
public void GetListByPage()
{
var list = dao.GetListByPage<T_Test>(new { PageIndex = 1, PageSize = 10 });
var list = dao.GetListByPage(new { PageIndex = 1, PageSize = 10 });
Assert.NotNull(list);
}
[Fact]
Expand All @@ -62,7 +62,7 @@ public void GetRecord()
[Fact]
public void GetEntity()
{
var entity = dao.GetEntity<long>(240162);
var entity = dao.GetEntity(240162);
// Assert.NotNull(entity);
}
}
Expand Down
5 changes: 1 addition & 4 deletions SmartSql.Tests/Maps/T_Test.xml
Original file line number Diff line number Diff line change
Expand Up @@ -63,14 +63,11 @@
</Statement>
<!--新增-->
<Statement Id="Insert">
INSERT INTO T_Test
INSERT INTO <Placeholder Property="TableName"/>
(Name)
VALUES
(@Name)
;Select Scope_Identity();
<Dynamic>

</Dynamic>
</Statement>

<!--删除-->
Expand Down
2 changes: 1 addition & 1 deletion SmartSql.Tests/SmartSqlMapper/SmartSqlMapper_Test.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public void Insert()
{
Scope = "T_Test",
SqlId = "Insert",
Request = new T_Test { Name = $"Name-{preId}" }
Request = new { Name = $"Name-{preId}", TableName = "T_Test1" }
});
}
Assert.Equal<int>(i, insertNum);
Expand Down
8 changes: 4 additions & 4 deletions SmartSql/SmartSql.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@
<PackageProjectUrl>https://github.com/Ahoo-Wang/SmartSql</PackageProjectUrl>
<RepositoryUrl>https://github.com/Ahoo-Wang/SmartSql</RepositoryUrl>
<PackageRequireLicenseAcceptance>False</PackageRequireLicenseAcceptance>
<Version>2.2.2</Version>
<AssemblyVersion>2.2.2</AssemblyVersion>
<FileVersion>2.2.2</FileVersion>
<Version>2.2.6</Version>
<AssemblyVersion>2.2.6</AssemblyVersion>
<FileVersion>2.2.6</FileVersion>
<PackageTags>orm dapper sql read-write-separation cache redis dotnet-core cross-platform high-performance distributed-computing zookeeper</PackageTags>
<PackageReleaseNotes>add Set Tag.</PackageReleaseNotes>
<PackageReleaseNotes>add Placeholder Tag.</PackageReleaseNotes>
</PropertyGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net46' ">
<PackageReference Include="Dapper" Version="1.50.2" />
Expand Down
10 changes: 10 additions & 0 deletions SmartSql/SqlMap/Statement.cs
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,16 @@ public static ITag LoadTag(XmlNode xmlNode, IList<Include> includes)
};
break;
}
case "Placeholder":
{
tag = new Placeholder
{
Prepend = prepend,
Property = property,
ChildTags = new List<ITag>()
};
break;
}
case "Switch":
{
tag = new Switch
Expand Down
1 change: 1 addition & 0 deletions SmartSql/SqlMap/Tags/ITag.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ public enum TagType
IsTrue,
IsFalse,
IsProperty,
Placeholder,
Include,
Switch,
SwitchCase,
Expand Down
27 changes: 27 additions & 0 deletions SmartSql/SqlMap/Tags/Placeholder.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Text;
using SmartSql.Abstractions;

namespace SmartSql.SqlMap.Tags
{
public class Placeholder : Tag
{
public override TagType Type => TagType.Placeholder;
public override string BuildSql(RequestContext context)
{
if (IsCondition(context))
{
Object reqVal = GetPropertyValue(context);
return $" {Prepend}{reqVal.ToString()}";
}
return String.Empty;
}

public override bool IsCondition(RequestContext context)
{
if (context.RequestParameters == null) { return false; }
return context.RequestParameters.ContainsKey(Property);
}
}
}

0 comments on commit 240b020

Please sign in to comment.