Click here to Skip to main content
15,895,777 members
Articles / Programming Languages / XML

netTierGenerator

Rate me:
Please Sign up or sign in to vote.
4.81/5 (20 votes)
30 Nov 2008CPOL14 min read 67.6K   2.8K   108  
A 3-tier application framework and code generation tool - the way for rapid and effective development.
<TierModel Namespace="Sys" ServiceName="History">

    <ItemModel DbTable="tblSys_History" ClassName="HistoryInfo" History="False" Caching="False" Equatable="True" Parent="">
        <Comment />
        <KeyProperty NeedToGenerate="true" ReadOnly="False" History="False">
            <Comment />
            <CSharp CSharpName="id" CSharpType="Guid" />
            <Db DbName="rowguid" DbType="uniqueidentifier" IsNullable="False" Length="16" />
        </KeyProperty>
        <Property ReadOnly="False" History="False">
            <Comment />
            <CSharp CSharpName="ObjectType" CSharpType="string" Length="100" />
            <Db DbName="ObjectType" DbType="nvarchar" IsNullable="False" Length="100" />
        </Property>
        <Property ReadOnly="False" History="False">
            <Comment />
            <CSharp CSharpName="ObjectId" CSharpType="Guid" />
            <Db DbName="ObjectId" DbType="uniqueidentifier" IsNullable="False" Length="16" />
        </Property>
        <Property ReadOnly="False" History="False">
            <Comment />
            <CSharp CSharpName="ObjectContent" CSharpType="string" />
            <Db DbName="ObjectContent" DbType="xml" IsNullable="False" Length="max" />
        </Property>
        <Property ReadOnly="False" History="False">
            <Comment />
            <CSharp CSharpName="UserId" CSharpType="Guid" />
            <Db DbName="UserId" DbType="uniqueidentifier" IsNullable="False" Length="16" />
        </Property>
        <Property ReadOnly="False" History="False">
            <Comment />
            <CSharp CSharpName="UpdateDate" CSharpType="DateTime" />
            <Db DbName="UpdateDate" DbType="datetime" IsNullable="False" Length="8" />
        </Property>
        <SelectMethod NeedToCreate="True" DalAccess="True" BllAccess="True" />
        <InsertMethod NeedToCreate="True" DalAccess="True" BllAccess="True" />
        <UpdateMethod NeedToCreate="True" DalAccess="True" BllAccess="True" />
        <DeleteMethod NeedToCreate="True" DalAccess="True" BllAccess="True" />
    </ItemModel>

    <ListItemModel DbView="vwSys_History" ClassName="HistoryListItem" Parent="">
        <Comment />
        <KeyProperty>
            <Comment />
            <CSharp CSharpName="id" CSharpType="Guid" />
            <Db DbName="rowguid" DbType="uniqueidentifier" IsNullable="False" Length="16" />
        </KeyProperty>
        <Property>
            <Comment />
            <CSharp CSharpName="ObjectType" CSharpType="string" Length="100" />
            <Db DbName="ObjectType" DbType="nvarchar" IsNullable="False" Length="100" />
        </Property>
        <Property>
            <Comment />
            <CSharp CSharpName="ObjectId" CSharpType="Guid" />
            <Db DbName="ObjectId" DbType="uniqueidentifier" IsNullable="False" Length="16" />
        </Property>
        <Property>
            <Comment />
            <CSharp CSharpName="UserId" CSharpType="Guid" />
            <Db DbName="UserId" DbType="uniqueidentifier" IsNullable="False" Length="16" />
        </Property>
        <Property>
            <Comment />
            <CSharp CSharpName="UpdateDate" CSharpType="DateTime" />
            <Db DbName="UpdateDate" DbType="datetime" IsNullable="False" Length="8" />
        </Property>
        <Property>
            <Comment />
            <CSharp CSharpName="UserName" CSharpType="string" />
            <Db DbName="UserName" DbType="nvarchar" IsNullable="False" Length="-1" />
        </Property>
    </ListItemModel>

    <SelectMethod Name="GetPreviousHistoryId" DalAccess="True" BllAccess="True">
        <Comment />
        <Return ReturnType="Guid?">
            <Comment />
        </Return>
        <Property>
            <Comment />
            <CSharp CSharpName="Id" CSharpType="Guid" />
            <Db DbName="Id" DbType="uniqueidentifier" IsNullable="False" Length="16" />
        </Property>
        <Sql>
            <Query>
                <![CDATA[
SET ROWCOUNT 1;
DECLARE @ResultId UNIQUEIDENTIFIER, @ObjectType NVARCHAR(100), @ObjectId UNIQUEIDENTIFIER, @UpdateDate DATETIME;
SELECT @ObjectType = ObjectType, @ObjectId = ObjectId, @UpdateDate = UpdateDate
FROM tblSys_History AS History
WHERE History.rowguid = @Id;
SELECT TOP 1 @ResultId = History.rowguid
FROM tblSys_History AS History
WHERE History.ObjectType = @ObjectType AND History.ObjectId = @ObjectId AND History.UpdateDate < @UpdateDate AND History.rowguid <> @Id
ORDER BY History.UpdateDate DESC;
SELECT @ResultId;
SET ROWCOUNT 0;
            ]]>
            </Query>
        </Sql>
    </SelectMethod>
    <SelectMethod Name="GetNextHistoryId" DalAccess="True" BllAccess="True">
        <Comment />
        <Return ReturnType="Guid?">
            <Comment />
        </Return>
        <Property>
            <Comment />
            <CSharp CSharpName="Id" CSharpType="Guid" />
            <Db DbName="Id" DbType="uniqueidentifier" IsNullable="False" Length="16" />
        </Property>
        <Sql>
            <Query>
                <![CDATA[
SET ROWCOUNT 1;
DECLARE @ResultId UNIQUEIDENTIFIER, @ObjectType NVARCHAR(100), @ObjectId UNIQUEIDENTIFIER, @UpdateDate DATETIME;
SELECT @ObjectType = ObjectType, @ObjectId = ObjectId, @UpdateDate = UpdateDate
FROM tblSys_History AS History
WHERE History.rowguid = @Id;
SELECT TOP 1 @ResultId = History.rowguid
FROM tblSys_History AS History
WHERE History.ObjectType = @ObjectType AND History.ObjectId = @ObjectId AND History.UpdateDate > @UpdateDate
ORDER BY History.UpdateDate ASC;
SELECT @ResultId;
SET ROWCOUNT 0;
            ]]>
            </Query>
        </Sql>
    </SelectMethod>
    <SelectMethod Name="GetChildHistoryId" DalAccess="True" BllAccess="True">
        <Comment />
        <Return ReturnType="Guid?">
            <Comment />
        </Return>
        <Property>
            <Comment />
            <CSharp CSharpName="Id" CSharpType="Guid" />
            <Db DbName="Id" DbType="uniqueidentifier" IsNullable="False" Length="16" />
        </Property>
        <Property>
            <Comment />
            <CSharp CSharpName="ObjectType" CSharpType="string" Length="100" />
            <Db DbName="ObjectType" DbType="nvarchar" IsNullable="False" Length="100" />
        </Property>
        <Property>
            <Comment />
            <CSharp CSharpName="ObjectId" CSharpType="Guid" />
            <Db DbName="ObjectId" DbType="uniqueidentifier" IsNullable="False" Length="16" />
        </Property>
        <Sql>
            <Query>
                <![CDATA[
DECLARE @UpdateDate DATETIME, @ResultId UNIQUEIDENTIFIER;
SELECT @UpdateDate = UpdateDate FROM tblSys_History WHERE rowguid = @Id;
SELECT TOP 1 @ResultId = rowguid FROM tblSys_History
WHERE ObjectType = @ObjectType AND ObjectId = @ObjectId AND UpdateDate < DATEADD(MINUTE, 1, @UpdateDate)
ORDER BY UpdateDate DESC;
SELECT @ResultId;
            ]]>
            </Query>
        </Sql>
    </SelectMethod>
    <SelectMethod Name="HasHistory" DalAccess="True" BllAccess="True">
        <Comment />
        <Return ReturnType="bool">
            <Comment />
        </Return>
        <Property>
            <Comment />
            <CSharp CSharpName="ObjectType" CSharpType="string" Length="100" />
            <Db DbName="ObjectType" DbType="nvarchar" IsNullable="False" Length="100" />
        </Property>
        <Property>
            <Comment />
            <CSharp CSharpName="ObjectId" CSharpType="Guid" />
            <Db DbName="ObjectId" DbType="uniqueidentifier" IsNullable="False" Length="16" />
        </Property>
        <Sql>
            <Query>
                <![CDATA[
SELECT 
CASE 
    WHEN EXISTS (SELECT 1 FROM tblSys_History WHERE ObjectType = @ObjectType AND ObjectId = @ObjectId) THEN CAST(1 AS BIT)
    ELSE THEN CAST(0 AS BIT) 
END AS result
            ]]>
            </Query>
        </Sql>
    </SelectMethod>
    <SelectMethod Name="GetHystoryDetails" DalAccess="True" BllAccess="False">
        <Comment />
        <Return ReturnType="IList" Type="HistoryInfo">
            <Comment />
        </Return>
        <Property>
            <Comment />
            <CSharp CSharpName="id" CSharpType="Guid" />
            <Db DbName="id" DbType="uniqueidentifier" IsNullable="False" Length="16" />
        </Property>
        <Sql>
            <Query>
                <![CDATA[
SELECT History1.*
FROM tblSys_History	AS History1
WHERE History1.rowguid = @id
	OR 
	History1.rowguid = 
		(
			SELECT TOP 1 History2.rowguid 
			FROM tblSys_History AS History2 
				INNER JOIN tblSys_History AS History3 
					ON History2.ObjectType = History3.ObjectType
					AND History2.ObjectId = History3.ObjectId
			WHERE History3.rowguid = @id
				AND History2.UpdateDate < History3.UpdateDate
			ORDER BY History2.UpdateDate DESC
		)
ORDER BY History1.UpdateDate DESC
            ]]>
            </Query>
        </Sql>
    </SelectMethod>
    <SelectMethod Name="GetHystoryList" DalAccess="True" BllAccess="True">
        <Comment />
        <Return ReturnType="IList" Type="HistoryInfo">
            <Comment />
        </Return>
        <Property>
            <Comment />
            <CSharp CSharpName="ObjectType" CSharpType="string" Length="100" />
            <Db DbName="ObjectType" DbType="nvarchar" IsNullable="False" Length="100" />
        </Property>
        <Property>
            <Comment />
            <CSharp CSharpName="ObjectId" CSharpType="Guid" />
            <Db DbName="ObjectId" DbType="uniqueidentifier" IsNullable="False" Length="16" />
        </Property>
        <Sql>
            <Query><![CDATA[SELECT * FROM tblSys_History WHERE ObjectType = @ObjectType AND ObjectId = @ObjectId ORDER BY UpdateDate DESC]]></Query>
        </Sql>
    </SelectMethod>
    <SelectMethod Name="GetListPage" DalAccess="True" BllAccess="True">
        <Comment />
        <Return ReturnType="ListPage" Type="HistoryListItem">
            <Comment />
        </Return>
        <Property>
            <Comment />
            <CSharp CSharpName="ObjectType" CSharpType="string" Length="100" />
            <Db DbName="ObjectType" DbType="nvarchar" IsNullable="False" Length="100" />
        </Property>
        <Property>
            <Comment />
            <CSharp CSharpName="ObjectId" CSharpType="Guid" />
            <Db DbName="ObjectId" DbType="uniqueidentifier" IsNullable="False" Length="16" />
        </Property>
        <Sql>
            <Query><![CDATA[SELECT * FROM vwSys_History WHERE ObjectType = @ObjectType AND ObjectId = @ObjectId]]></Query>
        </Sql>
    </SelectMethod>

</TierModel>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Senior)
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions