From 3386f0fdea56a7c63f37e3dc8f90dff21924ef21 Mon Sep 17 00:00:00 2001
From: wei <>
Date: Fri, 28 Jul 2006 12:39:19 +0000
Subject: correcting directory name

---
 .../protected/App_Data/Sqlite/category.xml         | 109 --------------
 .../protected/App_Data/Sqlite/projects.xml         | 159 ---------------------
 .../protected/App_Data/Sqlite/reports.xml          |  87 -----------
 .../protected/App_Data/Sqlite/time-entry.xml       | 100 -------------
 .../protected/App_Data/Sqlite/time-tracker.db      | Bin 32768 -> 0 bytes
 .../protected/App_Data/Sqlite/time-tracker.db.bak  | Bin 32768 -> 0 bytes
 .../protected/App_Data/Sqlite/users.xml            | 137 ------------------
 .../protected/App_Data/Sqlite2/category.xml        | 109 ++++++++++++++
 .../protected/App_Data/Sqlite2/projects.xml        | 159 +++++++++++++++++++++
 .../protected/App_Data/Sqlite2/reports.xml         |  87 +++++++++++
 .../protected/App_Data/Sqlite2/time-entry.xml      | 100 +++++++++++++
 .../protected/App_Data/Sqlite2/time-tracker.db     | Bin 0 -> 32768 bytes
 .../protected/App_Data/Sqlite2/time-tracker.db.bak | Bin 0 -> 32768 bytes
 .../protected/App_Data/Sqlite2/users.xml           | 137 ++++++++++++++++++
 14 files changed, 592 insertions(+), 592 deletions(-)
 delete mode 100644 demos/time-tracker/protected/App_Data/Sqlite/category.xml
 delete mode 100644 demos/time-tracker/protected/App_Data/Sqlite/projects.xml
 delete mode 100644 demos/time-tracker/protected/App_Data/Sqlite/reports.xml
 delete mode 100644 demos/time-tracker/protected/App_Data/Sqlite/time-entry.xml
 delete mode 100644 demos/time-tracker/protected/App_Data/Sqlite/time-tracker.db
 delete mode 100644 demos/time-tracker/protected/App_Data/Sqlite/time-tracker.db.bak
 delete mode 100644 demos/time-tracker/protected/App_Data/Sqlite/users.xml
 create mode 100644 demos/time-tracker/protected/App_Data/Sqlite2/category.xml
 create mode 100644 demos/time-tracker/protected/App_Data/Sqlite2/projects.xml
 create mode 100644 demos/time-tracker/protected/App_Data/Sqlite2/reports.xml
 create mode 100644 demos/time-tracker/protected/App_Data/Sqlite2/time-entry.xml
 create mode 100644 demos/time-tracker/protected/App_Data/Sqlite2/time-tracker.db
 create mode 100644 demos/time-tracker/protected/App_Data/Sqlite2/time-tracker.db.bak
 create mode 100644 demos/time-tracker/protected/App_Data/Sqlite2/users.xml

(limited to 'demos/time-tracker')

diff --git a/demos/time-tracker/protected/App_Data/Sqlite/category.xml b/demos/time-tracker/protected/App_Data/Sqlite/category.xml
deleted file mode 100644
index d89a517f..00000000
--- a/demos/time-tracker/protected/App_Data/Sqlite/category.xml
+++ /dev/null
@@ -1,109 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<sqlMap>
-
-<resultMap id="category-result" class="CategoryRecord">
-	<result property="Name" column="Name" />
-	<result property="EstimateDuration" column="EstimateDuration" type="float" />
-	<result property="ProjectID" column="ProjectID" type="integer" />
-	<result property="Abbreviation" column="Abbreviation" />
-	<result property="ID" column="CategoryID" type="integer" />
-	<result property="ActualDuration" column="ActualDuration" type="float" />
-</resultMap>
-
-<insert id="AddNewCategory" parameterClass="CategoryRecord">
-	INSERT INTO categories 
-	(Name, ProjectID, Abbreviation, EstimateDuration)
-	VALUES(#Name#, #ProjectID#, #Abbreviation#, #EstimateDuration#)
-	<selectKey property="ID" type="post" resultClass="int">
-		select LAST_INSERT_ROWID() as value
-    </selectKey>
-</insert>
-
-<select id="GetCategoryByID" parameterClass="integer" resultMap="category-result">
-	SELECT 
-		categories.Name as Name,
-		categories.EstimateDuration as EstimateDuration,
-		categories.ProjectID as ProjectID,
-		categories.Abbreviation as Abbreviation,
-		categories.CategoryID as CategoryID,
-		sum(time_entry.Duration) as ActualDuration
-	FROM
-		categories
-		LEFT JOIN time_entry ON categories.CategoryID = time_entry.CategoryID
-	WHERE
-		categories.CategoryID = #value#
-	GROUP BY
-		categories.CategoryID
-	ORDER BY
-		categories.Name
-</select>
-
-<select id="GetAllCategories" resultMap="category-result">
-	SELECT 
-		categories.Name as Name,
-		categories.EstimateDuration as EstimateDuration,
-		categories.ProjectID as ProjectID,
-		categories.Abbreviation as Abbreviation,
-		categories.CategoryID as CategoryID,
-		sum(time_entry.Duration) as ActualDuration
-	FROM
-		categories
-		LEFT JOIN time_entry ON categories.CategoryID = time_entry.CategoryID
-	GROUP BY
-		categories.CategoryID
-	ORDER BY
-		categories.Name
-</select>
-
-<delete id="DeleteCategory" parameterClass="integer">
-	DELETE FROM categories WHERE CategoryID = #value#
-</delete>
-
-<select id="GetCategoriesByProjectID" resultMap="category-result">
-	SELECT 
-		categories.Name as Name,
-		categories.EstimateDuration as EstimateDuration,
-		categories.ProjectID as ProjectID,
-		categories.Abbreviation as Abbreviation,
-		categories.CategoryID as CategoryID,
-		sum(time_entry.Duration) as ActualDuration
-	FROM
-		categories
-		LEFT JOIN time_entry ON categories.CategoryID = time_entry.CategoryID
-	WHERE
-		categories.ProjectID = #value#
-	GROUP BY
-		categories.CategoryID
-	ORDER BY
-		categories.Name
-</select>
-
-<select id="GetCategoryByNameInProject" parameterClass="array" resultMap="category-result">
-	SELECT 
-		categories.Name as Name,
-		categories.EstimateDuration as EstimateDuration,
-		categories.ProjectID as ProjectID,
-		categories.Abbreviation as Abbreviation,
-		categories.CategoryID as CategoryID,
-		sum(time_entry.Duration) as ActualDuration
-	FROM
-		categories
-		LEFT JOIN time_entry ON categories.CategoryID = time_entry.CategoryID
-	WHERE
-			categories.ProjectID = #project#
-		AND categories.Name = #category#
-	GROUP BY
-		categories.CategoryID
-</select>
-
-<update id="UpdateCategory" parameterClass="CategoryRecord">
-	UPDATE categories SET
-		Abbreviation = #Abbreviation#,
-		EstimateDuration = #EstimateDuration#,
-		Name = #Name#,
-		ProjectId = #ProjectID#
-	WHERE 
-		CategoryID = #ID#
-</update>
-
-</sqlMap>
\ No newline at end of file
diff --git a/demos/time-tracker/protected/App_Data/Sqlite/projects.xml b/demos/time-tracker/protected/App_Data/Sqlite/projects.xml
deleted file mode 100644
index e5f52887..00000000
--- a/demos/time-tracker/protected/App_Data/Sqlite/projects.xml
+++ /dev/null
@@ -1,159 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<sqlMap>
-
-<resultMap id="project-result" class="ProjectRecord">
-	<result property="ID" column="ProjectID" type="integer"/>
-	<result property="Name" column="Name" />
-	<result property="Description" column="Description" />
-	<result property="DateCreated" column="CreationDate" typeHandler="DateTime" />
-	<result property="EstimateDuration" column="EstimateDuration" type="float" />
-	<result property="CompletionDate" column="CompletionDate" typeHandler="DateTime" />
-	<result property="CreatorUserName" column="CreatorID" />
-	<result property="ManagerUserName" column="ManagerID" />
-	<result property="ActualDuration" column="ActualDuration" type="float" />
-</resultMap>
-
-<select id="ProjectNameExists" resultClass="boolean">
-	SELECT COUNT(Name) FROM projects WHERE Name = #value#
-</select>
-
-<insert id="CreateNewProject" parameterClass="ProjectRecord">
-	INSERT INTO projects
-	(Name, Description, CreationDate, EstimateDuration, CompletionDate, CreatorID, ManagerID)
-	VALUES
-	(#Name#, #Description#, php('date', 'Y-m-d H:i:s'), #EstimateDuration#,
-		#CompletionDate, typeHandler=DateTime#, 
-		#CreatorUserName#, #ManagerUserName#)
-	<selectKey property="ID" type="post" resultClass="int">
-		select LAST_INSERT_ROWID() as value
-    </selectKey>
-</insert>
-
-<select id="GetProjectByID" parameterClass="integer" resultMap="project-result">
-	SELECT 
-		projects.ProjectID as ProjectID,
-		projects.Name as Name,
-		projects.Description as Description,
-		projects.CreationDate as CreationDate,
-		projects.EstimateDuration as EstimateDuration,
-		projects.CompletionDate as CompletionDate,
-		projects.CreatorID as CreatorID,
-		projects.ManagerID as ManagerID,
-		SUM(time_entry.Duration) as ActualDuration
-	FROM projects
-		LEFT JOIN categories ON projects.ProjectID = categories.ProjectID
-		LEFT JOIN time_entry ON categories.CategoryID = time_entry.CategoryID
-	WHERE 
-			projects.ProjectID = #value# 
-		AND Disabled = 0
-	GROUP BY
-		projects.ProjectID
-	ORDER BY
-		projects.Name
-</select>
-
-<select id="GetAllProjects" resultMap="project-result">
-	SELECT 
-		projects.ProjectID as ProjectID,
-		projects.Name as Name,
-		projects.Description as Description,
-		projects.CreationDate as CreationDate,
-		projects.EstimateDuration as EstimateDuration,
-		projects.CompletionDate as CompletionDate,
-		projects.CreatorID as CreatorID,
-		projects.ManagerID as ManagerID,
-		SUM(time_entry.Duration) as ActualDuration
-	FROM projects
-		LEFT JOIN categories ON projects.ProjectID = categories.ProjectID
-		LEFT JOIN time_entry ON categories.CategoryID = time_entry.CategoryID
-	WHERE 
-		Disabled = 0
-	GROUP BY
-		projects.ProjectID
-	ORDER BY
-		projects.ProjectID ASC
-</select>
-
-<select id="GetAllProjectsOrdered" resultMap="project-result" extends="GetAllProjects">
-	ORDER BY $sort$ $order$
-</select>
-
-<select id="GetProjectsByManagerName" resultMap="project-result">
-	SELECT 
-		projects.ProjectID as ProjectID,
-		projects.Name as Name,
-		projects.Description as Description,
-		projects.CreationDate as CreationDate,
-		projects.EstimateDuration as EstimateDuration,
-		projects.CompletionDate as CompletionDate,
-		projects.CreatorID as CreatorID,
-		projects.ManagerID as ManagerID,
-		SUM(time_entry.Duration) as ActualDuration
-	FROM projects
-		LEFT JOIN categories ON projects.ProjectID = categories.ProjectID
-		LEFT JOIN time_entry ON categories.CategoryID = time_entry.CategoryID
-	WHERE 
-			Disabled = 0 
-		AND projects.ManagerID = #value#
-	GROUP BY
-		projects.ProjectID
-	ORDER BY
-		projects.Name
-</select>
-
-<select id="GetProjectsByUserName" resultMap="project-result">
-	SELECT 
-		projects.ProjectID as ProjectID,
-		projects.Name as Name,
-		projects.Description as Description,
-		projects.CreationDate as CreationDate,
-		projects.EstimateDuration as EstimateDuration,
-		projects.CompletionDate as CompletionDate,
-		projects.CreatorID as CreatorID,
-		projects.ManagerID as ManagerID,
-		SUM(time_entry.Duration) as ActualDuration
-	FROM projects
-		LEFT JOIN categories ON projects.ProjectID = categories.ProjectID
-		LEFT JOIN time_entry ON categories.CategoryID = time_entry.CategoryID,
-		project_members
-	WHERE 
-			project_members.ProjectID = projects.ProjectID
-		AND project_members.UserID = #value#
-		AND projects.Disabled = 0
-	GROUP BY
-		projects.ProjectID
-	ORDER BY
-		projects.Name
-</select>
-
-<update id="DeleteProject" parameterClass="integer">
-	UPDATE projects SET Disabled = 1 WHERE ProjectID = #value#
-</update>
-
-<select id="GetProjectMembers" parameterClass="integer">
-	SELECT UserID FROM project_members WHERE ProjectID = #value#
-	ORDER BY UserID
-</select>
-
-<insert id="AddUserToProject" parameterClass="array">
-	INSERT INTO project_members (UserID, ProjectID)
-	VALUES(#username#, #project#)
-</insert>
-
-<delete id="RemoveUserFromProject" parameterClass="array">
-	DELETE FROM project_members WHERE ProjectID = #project# AND UserID = #username#
-</delete>
-
-<update id="UpdateProject" parameterClass="ProjectRecord">
-	UPDATE projects
-	SET 
-		CompletionDate = #CompletionDate, typeHandler=DateTime#,
-		Description = #Description#,
-		EstimateDuration = #EstimateDuration#,
-		ManagerId =#ManagerUserName#,
-		Name = #Name#
-	WHERE 
-		ProjectID = #ID#
-</update>
-
-</sqlMap>
\ No newline at end of file
diff --git a/demos/time-tracker/protected/App_Data/Sqlite/reports.xml b/demos/time-tracker/protected/App_Data/Sqlite/reports.xml
deleted file mode 100644
index b5997f1f..00000000
--- a/demos/time-tracker/protected/App_Data/Sqlite/reports.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<sqlMap>
-
-<resultMap id="project-category-user" class="ProjectReport" GroupBy="ProjectID">
-	<result property="ProjectName" column="ProjectName" />
-	<result property="EstimateHours" column="ProjectEstimate" type="float"/>
-	<result property="EstimateCompletion" column="ProjectCompletion" type="DateTime" />
-	<result property="Categories" type="TList" resultMapping="category-user-report" />
-</resultMap>
-
-<resultMap id="category-user-report" class="CategoryReport" GroupBy="CategoryID" >
-	<result property="CategoryName" column="CategoryName" />
-	<result property="EstimateHours" column="CategoryEstimate" type="float" />
-	<result property="members" type="array" resultMapping="member-report" />
-</resultMap>
-
-<resultMap id="member-report" class="array">
-	<result property="username" column="Username" />
-	<result property="hours" column="ActualDuration" type="float" />
-</resultMap>
-
-<select id="GetTimeReportByProjectIDs" resultMap="project-category-user">
-	SELECT
-		categories.Name as CategoryName,
-		categories.CategoryID as CategoryID,
-		projects.ProjectID as ProjectID,
-		categories.EstimateDuration as CategoryEstimate,
-		projects.Name as ProjectName,
-		projects.EstimateDuration as ProjectEstimate,
-		projects.CompletionDate as ProjectCompletion,
-		time_entry.UserID as Username,
-		SUM(time_entry.Duration) as ActualDuration
-	FROM
-		projects
-		LEFT JOIN categories ON categories.ProjectID = projects.ProjectID
-		LEFT JOIN time_entry ON categories.CategoryID = time_entry.CategoryID
-	WHERE
-		projects.ProjectID IN ( $value$ )
-	GROUP BY
-		categories.ProjectID,
-		categories.CategoryID,
-		time_entry.UserID
-	ORDER BY
-		projects.ProjectID
-</select>
-
-
-<resultMap id="time-entry-user-report" class="UserReport" GroupBy="Username">
-	<result property="Username" column="Username" />
-	<result property="Projects" resultMapping="project-user-report" />
-</resultMap>
-
-<resultMap id="project-user-report" class="UserProjectReport">
-	<result property="ProjectName" column="ProjectName" />
-	<result property="CategoryName" column="CategoryName" />
-	<result property="Duration" column="Duration" type="float" />
-	<result property="Description" column="Description" />
-	<result property="ReportDate" column="EntryDate" type="DateTime" />
-</resultMap>
-
-<select id="GetTimeReportByUsername" resultMap="time-entry-user-report">
-	SELECT
-		users.Username as Username,
-		projects.Name as ProjectName,
-		categories.Name as CategoryName,
-		time_entry.Duration as Duration,
-		time_entry.Description as Description,
-		time_entry.EntryDate as EntryDate
-	FROM 
-   		users 
-   		LEFT JOIN time_entry ON time_entry.UserID = users.Username
-			AND time_entry.EntryDate BETWEEN 
-				#startDate, typeHandler=DateTime# AND 
-				#endDate, typeHandler=DateTime#
-   		LEFT JOIN categories ON time_entry.CategoryID = categories.CategoryID
-   		LEFT JOIN projects ON categories.ProjectID = projects.ProjectID 
-			AND projects.ProjectID in ($projects$) 
-	WHERE
-   		users.Username in ($members$)
-	ORDER BY
-  		users.Username ASC,
-  		time_entry.EntryDate ASC,
-  		projects.Name ASC,
-  		categories.Name ASC
-</select>
-
-</sqlMap>
\ No newline at end of file
diff --git a/demos/time-tracker/protected/App_Data/Sqlite/time-entry.xml b/demos/time-tracker/protected/App_Data/Sqlite/time-entry.xml
deleted file mode 100644
index 1d7fec37..00000000
--- a/demos/time-tracker/protected/App_Data/Sqlite/time-entry.xml
+++ /dev/null
@@ -1,100 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<sqlMap>
-
-<insert id="AddNewTimeEntry" parameterClass="TimeEntryRecord">
-	INSERT INTO time_entry(
-		EntryCreated, 
-		Duration, 
-		Description, 
-		CategoryID,
-		EntryDate, 
-		CreatorID, 
-		UserID
-	)
-	VALUES(
-		php('date', 'Y-m-d H:i:s'), 
-		#Duration#, 
-		#Description#, 
-		#Category.ID#,
-		#ReportDate, typeHandler=DateTime#, 
-		#CreatorUserName#, 
-		#Username#
-	)
-  <selectKey property="ID" type="post" resultClass="int">
-		select LAST_INSERT_ROWID() as value
-  </selectKey>
-</insert>
-
-<resultMap id="time-entry-result" class="TimeEntryRecord">
-	<result property="ID" column="EntryID" type="integer" />
-	<result property="DateCreated" column="EntryCreated" typeHandler="DateTime" />
-	<result property="Duration" column="Duration" type="float" />
-	<result property="Description" column="Description" />
-	<result property="Category" column="CategoryID" />
-	<result property="ReportDate" column="EntryDate" typeHandler="DateTime" />
-	<result property="CreatorUserName" column="CreatorID" />
-	<result property="Username" column="UserID" />
-</resultMap>
-
-<resultMap id="time-entry-category-result" class="TimeEntryRecord">
-	<result property="ID" column="EntryID" type="integer" />
-	<result property="DateCreated" column="EntryCreated" typeHandler="DateTime" />
-	<result property="Duration" column="Duration" type="float" />
-	<result property="Description" column="Description" />
-	<result property="Category" resultMapping="entry-category" />
-	<result property="ReportDate" column="EntryDate" typeHandler="DateTime" />
-	<result property="CreatorUserName" column="CreatorID" />
-	<result property="Username" column="UserID" />
-</resultMap>
-
-<resultMap id="entry-category" class="CategoryRecord">
-	<result property="ID" column="CategoryID" />
-	<result property="Name" column="CategoryName" />
-</resultMap>
-
-<select id="GetTimeEntryByID" resultMap="time-entry-result">
-	SELECT 
-		*
-	FROM 
-		time_entry
-	WHERE
-		EntryID = #value#
-</select>
-
-<delete id="DeleteTimeEntry" parameterClass="integer">
-	DELETE FROM time_entry WHERE EntryID = #value#
-</delete>
-
-<select id="GetAllTimeEntriesByProjectIdAndUser" resultMap="time-entry-category-result">
-	SELECT 
-		time_entry.EntryID as EntryID,
-		time_entry.EntryCreated as EntryCreated,
-		time_entry.Duration as Duration,
-		time_entry.Description as Description,
-		time_entry.EntryDate as EntryDate,
-		time_entry.CreatorID as CreatorID,
-		time_entry.UserID as UserID,
-		time_entry.CategoryID as CategoryID,
-		categories.Name as CategoryName
-	FROM
-		time_entry, categories
-	WHERE
-			time_entry.UserID = #username#
-		AND time_entry.CategoryID = categories.CategoryID
-		AND categories.ProjectID = #project#
-	ORDER BY 
-		EntryID ASC
-</select>
-
-<update id="UpdateTimeEntry" parameterClass="TimeEntryRecord">
-	UPDATE time_entry SET
-		Duration = #Duration#,
-		Description = #Description#,
-		CategoryID = #Category.ID#,
-		EntryDate = #ReportDate, typeHandler=DateTime#,
-		UserID = #Username#
-	WHERE
-		EntryID = #ID#
-</update>
-
-</sqlMap>
\ No newline at end of file
diff --git a/demos/time-tracker/protected/App_Data/Sqlite/time-tracker.db b/demos/time-tracker/protected/App_Data/Sqlite/time-tracker.db
deleted file mode 100644
index 124bbeba..00000000
Binary files a/demos/time-tracker/protected/App_Data/Sqlite/time-tracker.db and /dev/null differ
diff --git a/demos/time-tracker/protected/App_Data/Sqlite/time-tracker.db.bak b/demos/time-tracker/protected/App_Data/Sqlite/time-tracker.db.bak
deleted file mode 100644
index 124bbeba..00000000
Binary files a/demos/time-tracker/protected/App_Data/Sqlite/time-tracker.db.bak and /dev/null differ
diff --git a/demos/time-tracker/protected/App_Data/Sqlite/users.xml b/demos/time-tracker/protected/App_Data/Sqlite/users.xml
deleted file mode 100644
index 74b33b2c..00000000
--- a/demos/time-tracker/protected/App_Data/Sqlite/users.xml
+++ /dev/null
@@ -1,137 +0,0 @@
-<?xml version="1.0" encoding="utf-8" ?>
-<sqlMap>
-
-<resultMap id="time-tracker-user" class="TimeTrackerUser" GroupBy="Name">
-	<result property="Name" column="Name" />
-	<result property="EmailAddress" column="EmailAddress" />
-	<result property="Roles" Type="array" resultMapping="user-roles-result" />
-</resultMap>
-
-<resultMap id="user-roles-result">
-	<result column="role" />
-</resultMap>
-
-<!--
-<select id="GetUserByName" parameterClass="string" resultMap="TimeTrackerUser">
-	SELECT 
-		users.Username as Name,
-		users.EmailAddress as EmailAddress,
-		user_roles.RoleType as role
-	FROM
-		users
-		LEFT JOIN user_roles ON users.Username = user_roles.UserID
-	WHERE
-		Username = #value#
-	AND 
-		Disabled = 0
-</select>
--->
-
-<select id="UsernameExists" parameterClass="string" resultClass="boolean">
-	SELECT COUNT(Username) FROM users WHERE Username = #value#
-</select>
-
-<select id="GetUserByName" parameterClass="string" resultMap="time-tracker-user">
-	SELECT 
-		users.Username as Name,
-		users.EmailAddress as EmailAddress,
-		user_roles.RoleType as role
-	FROM
-		users
-		LEFT JOIN user_roles ON users.Username = user_roles.UserID
-	WHERE
-		Username = #value#
-	AND 
-		Disabled = 0
-</select>
-    
-<select id="GetAllUsers" resultMap="time-tracker-user">
-	SELECT
-		users.Username as Name,
-		users.EmailAddress as EmailAddress,
-		user_roles.RoleType as role
-	FROM
-		users
-		LEFT JOIN user_roles ON users.Username = user_roles.UserID
-	WHERE
-		Disabled = 0
-</select>
-
-<select id="ValidateUser" resultClass="boolean">
-	SELECT 
-		count(Username)
-	FROM
-		users
-	WHERE
-		username = #username# AND password = #password#
-	AND
-		Disabled = 0
-</select>
-
-<insert id="AddNewUser" parameterClass="array">
-	INSERT INTO 
-		users (Username, Password, EmailAddress)
-	VALUES
-		(#user.Name#, #password#, #user.EmailAddress#)
-</insert>
-
-<update id="DeleteUserByName">
-	UPDATE users SET Disabled = 1  WHERE username = #value#
-</update>
-
-<insert id="RegisterAutoSignon" parameterClass="array">
-	INSERT INTO 
-		signon (SessionToken, Username, LastSignOnDate)
-	VALUES
-		(#token#, #username#, php('date', 'Y-m-d H:i:s'))
-</insert>
-
-<select id="ValidateAutoSignon" resultMap="time-tracker-user">
-	SELECT
-		users.Username as Name,
-		users.EmailAddress as EmailAddress,
-		user_roles.RoleType as role
-	FROM
-		users LEFT JOIN user_roles ON users.Username = user_roles.UserID,
-		signon
-	WHERE
-		users.Username = signon.Username
-		AND signon.SessionToken = #value#
-		AND users.Disabled = 0
-</select>
-
-<update id="UpdateSignon">
-	UPDATE signon SET LastSignOnDate = php('date', 'Y-m-d H:i:s') 
-	WHERE SessionToken = #value#
-</update>
-
-<delete id="DeleteUserRoles" parameterClass="TimeTrackerUser">
-	DELETE FROM user_roles WHERE UserID = #Name#
-</delete>
-
-<update id="AddUserRole" parameterClass="array">
-	INSERT INTO user_roles (UserID, RoleType)
-	VALUES(#username#, #role#)
-</update>
-
-<update id="UpdateUserDetails" parameterClass="TimeTrackerUser">
-	UPDATE users 
-	SET EmailAddress = #EmailAddress#
-	WHERE Username = #Name#
-</update>
-
-<update id="UpdateUserDetailsAndPassword" parameterClass="array">
-	UPDATE users 
-	SET EmailAddress = #user.EmailAddress#, Password=#password#
-	WHERE Username = #user.Name#
-</update>
-
-<delete id="DeleteAutoSignon">
-	DELETE FROM signon WHERE Username = #value#
-</delete>
-
-<delete id="DeleteAllSignon">
-	DELETE FROM signon
-</delete>
-
-</sqlMap>
\ No newline at end of file
diff --git a/demos/time-tracker/protected/App_Data/Sqlite2/category.xml b/demos/time-tracker/protected/App_Data/Sqlite2/category.xml
new file mode 100644
index 00000000..d89a517f
--- /dev/null
+++ b/demos/time-tracker/protected/App_Data/Sqlite2/category.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<sqlMap>
+
+<resultMap id="category-result" class="CategoryRecord">
+	<result property="Name" column="Name" />
+	<result property="EstimateDuration" column="EstimateDuration" type="float" />
+	<result property="ProjectID" column="ProjectID" type="integer" />
+	<result property="Abbreviation" column="Abbreviation" />
+	<result property="ID" column="CategoryID" type="integer" />
+	<result property="ActualDuration" column="ActualDuration" type="float" />
+</resultMap>
+
+<insert id="AddNewCategory" parameterClass="CategoryRecord">
+	INSERT INTO categories 
+	(Name, ProjectID, Abbreviation, EstimateDuration)
+	VALUES(#Name#, #ProjectID#, #Abbreviation#, #EstimateDuration#)
+	<selectKey property="ID" type="post" resultClass="int">
+		select LAST_INSERT_ROWID() as value
+    </selectKey>
+</insert>
+
+<select id="GetCategoryByID" parameterClass="integer" resultMap="category-result">
+	SELECT 
+		categories.Name as Name,
+		categories.EstimateDuration as EstimateDuration,
+		categories.ProjectID as ProjectID,
+		categories.Abbreviation as Abbreviation,
+		categories.CategoryID as CategoryID,
+		sum(time_entry.Duration) as ActualDuration
+	FROM
+		categories
+		LEFT JOIN time_entry ON categories.CategoryID = time_entry.CategoryID
+	WHERE
+		categories.CategoryID = #value#
+	GROUP BY
+		categories.CategoryID
+	ORDER BY
+		categories.Name
+</select>
+
+<select id="GetAllCategories" resultMap="category-result">
+	SELECT 
+		categories.Name as Name,
+		categories.EstimateDuration as EstimateDuration,
+		categories.ProjectID as ProjectID,
+		categories.Abbreviation as Abbreviation,
+		categories.CategoryID as CategoryID,
+		sum(time_entry.Duration) as ActualDuration
+	FROM
+		categories
+		LEFT JOIN time_entry ON categories.CategoryID = time_entry.CategoryID
+	GROUP BY
+		categories.CategoryID
+	ORDER BY
+		categories.Name
+</select>
+
+<delete id="DeleteCategory" parameterClass="integer">
+	DELETE FROM categories WHERE CategoryID = #value#
+</delete>
+
+<select id="GetCategoriesByProjectID" resultMap="category-result">
+	SELECT 
+		categories.Name as Name,
+		categories.EstimateDuration as EstimateDuration,
+		categories.ProjectID as ProjectID,
+		categories.Abbreviation as Abbreviation,
+		categories.CategoryID as CategoryID,
+		sum(time_entry.Duration) as ActualDuration
+	FROM
+		categories
+		LEFT JOIN time_entry ON categories.CategoryID = time_entry.CategoryID
+	WHERE
+		categories.ProjectID = #value#
+	GROUP BY
+		categories.CategoryID
+	ORDER BY
+		categories.Name
+</select>
+
+<select id="GetCategoryByNameInProject" parameterClass="array" resultMap="category-result">
+	SELECT 
+		categories.Name as Name,
+		categories.EstimateDuration as EstimateDuration,
+		categories.ProjectID as ProjectID,
+		categories.Abbreviation as Abbreviation,
+		categories.CategoryID as CategoryID,
+		sum(time_entry.Duration) as ActualDuration
+	FROM
+		categories
+		LEFT JOIN time_entry ON categories.CategoryID = time_entry.CategoryID
+	WHERE
+			categories.ProjectID = #project#
+		AND categories.Name = #category#
+	GROUP BY
+		categories.CategoryID
+</select>
+
+<update id="UpdateCategory" parameterClass="CategoryRecord">
+	UPDATE categories SET
+		Abbreviation = #Abbreviation#,
+		EstimateDuration = #EstimateDuration#,
+		Name = #Name#,
+		ProjectId = #ProjectID#
+	WHERE 
+		CategoryID = #ID#
+</update>
+
+</sqlMap>
\ No newline at end of file
diff --git a/demos/time-tracker/protected/App_Data/Sqlite2/projects.xml b/demos/time-tracker/protected/App_Data/Sqlite2/projects.xml
new file mode 100644
index 00000000..e5f52887
--- /dev/null
+++ b/demos/time-tracker/protected/App_Data/Sqlite2/projects.xml
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<sqlMap>
+
+<resultMap id="project-result" class="ProjectRecord">
+	<result property="ID" column="ProjectID" type="integer"/>
+	<result property="Name" column="Name" />
+	<result property="Description" column="Description" />
+	<result property="DateCreated" column="CreationDate" typeHandler="DateTime" />
+	<result property="EstimateDuration" column="EstimateDuration" type="float" />
+	<result property="CompletionDate" column="CompletionDate" typeHandler="DateTime" />
+	<result property="CreatorUserName" column="CreatorID" />
+	<result property="ManagerUserName" column="ManagerID" />
+	<result property="ActualDuration" column="ActualDuration" type="float" />
+</resultMap>
+
+<select id="ProjectNameExists" resultClass="boolean">
+	SELECT COUNT(Name) FROM projects WHERE Name = #value#
+</select>
+
+<insert id="CreateNewProject" parameterClass="ProjectRecord">
+	INSERT INTO projects
+	(Name, Description, CreationDate, EstimateDuration, CompletionDate, CreatorID, ManagerID)
+	VALUES
+	(#Name#, #Description#, php('date', 'Y-m-d H:i:s'), #EstimateDuration#,
+		#CompletionDate, typeHandler=DateTime#, 
+		#CreatorUserName#, #ManagerUserName#)
+	<selectKey property="ID" type="post" resultClass="int">
+		select LAST_INSERT_ROWID() as value
+    </selectKey>
+</insert>
+
+<select id="GetProjectByID" parameterClass="integer" resultMap="project-result">
+	SELECT 
+		projects.ProjectID as ProjectID,
+		projects.Name as Name,
+		projects.Description as Description,
+		projects.CreationDate as CreationDate,
+		projects.EstimateDuration as EstimateDuration,
+		projects.CompletionDate as CompletionDate,
+		projects.CreatorID as CreatorID,
+		projects.ManagerID as ManagerID,
+		SUM(time_entry.Duration) as ActualDuration
+	FROM projects
+		LEFT JOIN categories ON projects.ProjectID = categories.ProjectID
+		LEFT JOIN time_entry ON categories.CategoryID = time_entry.CategoryID
+	WHERE 
+			projects.ProjectID = #value# 
+		AND Disabled = 0
+	GROUP BY
+		projects.ProjectID
+	ORDER BY
+		projects.Name
+</select>
+
+<select id="GetAllProjects" resultMap="project-result">
+	SELECT 
+		projects.ProjectID as ProjectID,
+		projects.Name as Name,
+		projects.Description as Description,
+		projects.CreationDate as CreationDate,
+		projects.EstimateDuration as EstimateDuration,
+		projects.CompletionDate as CompletionDate,
+		projects.CreatorID as CreatorID,
+		projects.ManagerID as ManagerID,
+		SUM(time_entry.Duration) as ActualDuration
+	FROM projects
+		LEFT JOIN categories ON projects.ProjectID = categories.ProjectID
+		LEFT JOIN time_entry ON categories.CategoryID = time_entry.CategoryID
+	WHERE 
+		Disabled = 0
+	GROUP BY
+		projects.ProjectID
+	ORDER BY
+		projects.ProjectID ASC
+</select>
+
+<select id="GetAllProjectsOrdered" resultMap="project-result" extends="GetAllProjects">
+	ORDER BY $sort$ $order$
+</select>
+
+<select id="GetProjectsByManagerName" resultMap="project-result">
+	SELECT 
+		projects.ProjectID as ProjectID,
+		projects.Name as Name,
+		projects.Description as Description,
+		projects.CreationDate as CreationDate,
+		projects.EstimateDuration as EstimateDuration,
+		projects.CompletionDate as CompletionDate,
+		projects.CreatorID as CreatorID,
+		projects.ManagerID as ManagerID,
+		SUM(time_entry.Duration) as ActualDuration
+	FROM projects
+		LEFT JOIN categories ON projects.ProjectID = categories.ProjectID
+		LEFT JOIN time_entry ON categories.CategoryID = time_entry.CategoryID
+	WHERE 
+			Disabled = 0 
+		AND projects.ManagerID = #value#
+	GROUP BY
+		projects.ProjectID
+	ORDER BY
+		projects.Name
+</select>
+
+<select id="GetProjectsByUserName" resultMap="project-result">
+	SELECT 
+		projects.ProjectID as ProjectID,
+		projects.Name as Name,
+		projects.Description as Description,
+		projects.CreationDate as CreationDate,
+		projects.EstimateDuration as EstimateDuration,
+		projects.CompletionDate as CompletionDate,
+		projects.CreatorID as CreatorID,
+		projects.ManagerID as ManagerID,
+		SUM(time_entry.Duration) as ActualDuration
+	FROM projects
+		LEFT JOIN categories ON projects.ProjectID = categories.ProjectID
+		LEFT JOIN time_entry ON categories.CategoryID = time_entry.CategoryID,
+		project_members
+	WHERE 
+			project_members.ProjectID = projects.ProjectID
+		AND project_members.UserID = #value#
+		AND projects.Disabled = 0
+	GROUP BY
+		projects.ProjectID
+	ORDER BY
+		projects.Name
+</select>
+
+<update id="DeleteProject" parameterClass="integer">
+	UPDATE projects SET Disabled = 1 WHERE ProjectID = #value#
+</update>
+
+<select id="GetProjectMembers" parameterClass="integer">
+	SELECT UserID FROM project_members WHERE ProjectID = #value#
+	ORDER BY UserID
+</select>
+
+<insert id="AddUserToProject" parameterClass="array">
+	INSERT INTO project_members (UserID, ProjectID)
+	VALUES(#username#, #project#)
+</insert>
+
+<delete id="RemoveUserFromProject" parameterClass="array">
+	DELETE FROM project_members WHERE ProjectID = #project# AND UserID = #username#
+</delete>
+
+<update id="UpdateProject" parameterClass="ProjectRecord">
+	UPDATE projects
+	SET 
+		CompletionDate = #CompletionDate, typeHandler=DateTime#,
+		Description = #Description#,
+		EstimateDuration = #EstimateDuration#,
+		ManagerId =#ManagerUserName#,
+		Name = #Name#
+	WHERE 
+		ProjectID = #ID#
+</update>
+
+</sqlMap>
\ No newline at end of file
diff --git a/demos/time-tracker/protected/App_Data/Sqlite2/reports.xml b/demos/time-tracker/protected/App_Data/Sqlite2/reports.xml
new file mode 100644
index 00000000..b5997f1f
--- /dev/null
+++ b/demos/time-tracker/protected/App_Data/Sqlite2/reports.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<sqlMap>
+
+<resultMap id="project-category-user" class="ProjectReport" GroupBy="ProjectID">
+	<result property="ProjectName" column="ProjectName" />
+	<result property="EstimateHours" column="ProjectEstimate" type="float"/>
+	<result property="EstimateCompletion" column="ProjectCompletion" type="DateTime" />
+	<result property="Categories" type="TList" resultMapping="category-user-report" />
+</resultMap>
+
+<resultMap id="category-user-report" class="CategoryReport" GroupBy="CategoryID" >
+	<result property="CategoryName" column="CategoryName" />
+	<result property="EstimateHours" column="CategoryEstimate" type="float" />
+	<result property="members" type="array" resultMapping="member-report" />
+</resultMap>
+
+<resultMap id="member-report" class="array">
+	<result property="username" column="Username" />
+	<result property="hours" column="ActualDuration" type="float" />
+</resultMap>
+
+<select id="GetTimeReportByProjectIDs" resultMap="project-category-user">
+	SELECT
+		categories.Name as CategoryName,
+		categories.CategoryID as CategoryID,
+		projects.ProjectID as ProjectID,
+		categories.EstimateDuration as CategoryEstimate,
+		projects.Name as ProjectName,
+		projects.EstimateDuration as ProjectEstimate,
+		projects.CompletionDate as ProjectCompletion,
+		time_entry.UserID as Username,
+		SUM(time_entry.Duration) as ActualDuration
+	FROM
+		projects
+		LEFT JOIN categories ON categories.ProjectID = projects.ProjectID
+		LEFT JOIN time_entry ON categories.CategoryID = time_entry.CategoryID
+	WHERE
+		projects.ProjectID IN ( $value$ )
+	GROUP BY
+		categories.ProjectID,
+		categories.CategoryID,
+		time_entry.UserID
+	ORDER BY
+		projects.ProjectID
+</select>
+
+
+<resultMap id="time-entry-user-report" class="UserReport" GroupBy="Username">
+	<result property="Username" column="Username" />
+	<result property="Projects" resultMapping="project-user-report" />
+</resultMap>
+
+<resultMap id="project-user-report" class="UserProjectReport">
+	<result property="ProjectName" column="ProjectName" />
+	<result property="CategoryName" column="CategoryName" />
+	<result property="Duration" column="Duration" type="float" />
+	<result property="Description" column="Description" />
+	<result property="ReportDate" column="EntryDate" type="DateTime" />
+</resultMap>
+
+<select id="GetTimeReportByUsername" resultMap="time-entry-user-report">
+	SELECT
+		users.Username as Username,
+		projects.Name as ProjectName,
+		categories.Name as CategoryName,
+		time_entry.Duration as Duration,
+		time_entry.Description as Description,
+		time_entry.EntryDate as EntryDate
+	FROM 
+   		users 
+   		LEFT JOIN time_entry ON time_entry.UserID = users.Username
+			AND time_entry.EntryDate BETWEEN 
+				#startDate, typeHandler=DateTime# AND 
+				#endDate, typeHandler=DateTime#
+   		LEFT JOIN categories ON time_entry.CategoryID = categories.CategoryID
+   		LEFT JOIN projects ON categories.ProjectID = projects.ProjectID 
+			AND projects.ProjectID in ($projects$) 
+	WHERE
+   		users.Username in ($members$)
+	ORDER BY
+  		users.Username ASC,
+  		time_entry.EntryDate ASC,
+  		projects.Name ASC,
+  		categories.Name ASC
+</select>
+
+</sqlMap>
\ No newline at end of file
diff --git a/demos/time-tracker/protected/App_Data/Sqlite2/time-entry.xml b/demos/time-tracker/protected/App_Data/Sqlite2/time-entry.xml
new file mode 100644
index 00000000..1d7fec37
--- /dev/null
+++ b/demos/time-tracker/protected/App_Data/Sqlite2/time-entry.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<sqlMap>
+
+<insert id="AddNewTimeEntry" parameterClass="TimeEntryRecord">
+	INSERT INTO time_entry(
+		EntryCreated, 
+		Duration, 
+		Description, 
+		CategoryID,
+		EntryDate, 
+		CreatorID, 
+		UserID
+	)
+	VALUES(
+		php('date', 'Y-m-d H:i:s'), 
+		#Duration#, 
+		#Description#, 
+		#Category.ID#,
+		#ReportDate, typeHandler=DateTime#, 
+		#CreatorUserName#, 
+		#Username#
+	)
+  <selectKey property="ID" type="post" resultClass="int">
+		select LAST_INSERT_ROWID() as value
+  </selectKey>
+</insert>
+
+<resultMap id="time-entry-result" class="TimeEntryRecord">
+	<result property="ID" column="EntryID" type="integer" />
+	<result property="DateCreated" column="EntryCreated" typeHandler="DateTime" />
+	<result property="Duration" column="Duration" type="float" />
+	<result property="Description" column="Description" />
+	<result property="Category" column="CategoryID" />
+	<result property="ReportDate" column="EntryDate" typeHandler="DateTime" />
+	<result property="CreatorUserName" column="CreatorID" />
+	<result property="Username" column="UserID" />
+</resultMap>
+
+<resultMap id="time-entry-category-result" class="TimeEntryRecord">
+	<result property="ID" column="EntryID" type="integer" />
+	<result property="DateCreated" column="EntryCreated" typeHandler="DateTime" />
+	<result property="Duration" column="Duration" type="float" />
+	<result property="Description" column="Description" />
+	<result property="Category" resultMapping="entry-category" />
+	<result property="ReportDate" column="EntryDate" typeHandler="DateTime" />
+	<result property="CreatorUserName" column="CreatorID" />
+	<result property="Username" column="UserID" />
+</resultMap>
+
+<resultMap id="entry-category" class="CategoryRecord">
+	<result property="ID" column="CategoryID" />
+	<result property="Name" column="CategoryName" />
+</resultMap>
+
+<select id="GetTimeEntryByID" resultMap="time-entry-result">
+	SELECT 
+		*
+	FROM 
+		time_entry
+	WHERE
+		EntryID = #value#
+</select>
+
+<delete id="DeleteTimeEntry" parameterClass="integer">
+	DELETE FROM time_entry WHERE EntryID = #value#
+</delete>
+
+<select id="GetAllTimeEntriesByProjectIdAndUser" resultMap="time-entry-category-result">
+	SELECT 
+		time_entry.EntryID as EntryID,
+		time_entry.EntryCreated as EntryCreated,
+		time_entry.Duration as Duration,
+		time_entry.Description as Description,
+		time_entry.EntryDate as EntryDate,
+		time_entry.CreatorID as CreatorID,
+		time_entry.UserID as UserID,
+		time_entry.CategoryID as CategoryID,
+		categories.Name as CategoryName
+	FROM
+		time_entry, categories
+	WHERE
+			time_entry.UserID = #username#
+		AND time_entry.CategoryID = categories.CategoryID
+		AND categories.ProjectID = #project#
+	ORDER BY 
+		EntryID ASC
+</select>
+
+<update id="UpdateTimeEntry" parameterClass="TimeEntryRecord">
+	UPDATE time_entry SET
+		Duration = #Duration#,
+		Description = #Description#,
+		CategoryID = #Category.ID#,
+		EntryDate = #ReportDate, typeHandler=DateTime#,
+		UserID = #Username#
+	WHERE
+		EntryID = #ID#
+</update>
+
+</sqlMap>
\ No newline at end of file
diff --git a/demos/time-tracker/protected/App_Data/Sqlite2/time-tracker.db b/demos/time-tracker/protected/App_Data/Sqlite2/time-tracker.db
new file mode 100644
index 00000000..124bbeba
Binary files /dev/null and b/demos/time-tracker/protected/App_Data/Sqlite2/time-tracker.db differ
diff --git a/demos/time-tracker/protected/App_Data/Sqlite2/time-tracker.db.bak b/demos/time-tracker/protected/App_Data/Sqlite2/time-tracker.db.bak
new file mode 100644
index 00000000..124bbeba
Binary files /dev/null and b/demos/time-tracker/protected/App_Data/Sqlite2/time-tracker.db.bak differ
diff --git a/demos/time-tracker/protected/App_Data/Sqlite2/users.xml b/demos/time-tracker/protected/App_Data/Sqlite2/users.xml
new file mode 100644
index 00000000..74b33b2c
--- /dev/null
+++ b/demos/time-tracker/protected/App_Data/Sqlite2/users.xml
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<sqlMap>
+
+<resultMap id="time-tracker-user" class="TimeTrackerUser" GroupBy="Name">
+	<result property="Name" column="Name" />
+	<result property="EmailAddress" column="EmailAddress" />
+	<result property="Roles" Type="array" resultMapping="user-roles-result" />
+</resultMap>
+
+<resultMap id="user-roles-result">
+	<result column="role" />
+</resultMap>
+
+<!--
+<select id="GetUserByName" parameterClass="string" resultMap="TimeTrackerUser">
+	SELECT 
+		users.Username as Name,
+		users.EmailAddress as EmailAddress,
+		user_roles.RoleType as role
+	FROM
+		users
+		LEFT JOIN user_roles ON users.Username = user_roles.UserID
+	WHERE
+		Username = #value#
+	AND 
+		Disabled = 0
+</select>
+-->
+
+<select id="UsernameExists" parameterClass="string" resultClass="boolean">
+	SELECT COUNT(Username) FROM users WHERE Username = #value#
+</select>
+
+<select id="GetUserByName" parameterClass="string" resultMap="time-tracker-user">
+	SELECT 
+		users.Username as Name,
+		users.EmailAddress as EmailAddress,
+		user_roles.RoleType as role
+	FROM
+		users
+		LEFT JOIN user_roles ON users.Username = user_roles.UserID
+	WHERE
+		Username = #value#
+	AND 
+		Disabled = 0
+</select>
+    
+<select id="GetAllUsers" resultMap="time-tracker-user">
+	SELECT
+		users.Username as Name,
+		users.EmailAddress as EmailAddress,
+		user_roles.RoleType as role
+	FROM
+		users
+		LEFT JOIN user_roles ON users.Username = user_roles.UserID
+	WHERE
+		Disabled = 0
+</select>
+
+<select id="ValidateUser" resultClass="boolean">
+	SELECT 
+		count(Username)
+	FROM
+		users
+	WHERE
+		username = #username# AND password = #password#
+	AND
+		Disabled = 0
+</select>
+
+<insert id="AddNewUser" parameterClass="array">
+	INSERT INTO 
+		users (Username, Password, EmailAddress)
+	VALUES
+		(#user.Name#, #password#, #user.EmailAddress#)
+</insert>
+
+<update id="DeleteUserByName">
+	UPDATE users SET Disabled = 1  WHERE username = #value#
+</update>
+
+<insert id="RegisterAutoSignon" parameterClass="array">
+	INSERT INTO 
+		signon (SessionToken, Username, LastSignOnDate)
+	VALUES
+		(#token#, #username#, php('date', 'Y-m-d H:i:s'))
+</insert>
+
+<select id="ValidateAutoSignon" resultMap="time-tracker-user">
+	SELECT
+		users.Username as Name,
+		users.EmailAddress as EmailAddress,
+		user_roles.RoleType as role
+	FROM
+		users LEFT JOIN user_roles ON users.Username = user_roles.UserID,
+		signon
+	WHERE
+		users.Username = signon.Username
+		AND signon.SessionToken = #value#
+		AND users.Disabled = 0
+</select>
+
+<update id="UpdateSignon">
+	UPDATE signon SET LastSignOnDate = php('date', 'Y-m-d H:i:s') 
+	WHERE SessionToken = #value#
+</update>
+
+<delete id="DeleteUserRoles" parameterClass="TimeTrackerUser">
+	DELETE FROM user_roles WHERE UserID = #Name#
+</delete>
+
+<update id="AddUserRole" parameterClass="array">
+	INSERT INTO user_roles (UserID, RoleType)
+	VALUES(#username#, #role#)
+</update>
+
+<update id="UpdateUserDetails" parameterClass="TimeTrackerUser">
+	UPDATE users 
+	SET EmailAddress = #EmailAddress#
+	WHERE Username = #Name#
+</update>
+
+<update id="UpdateUserDetailsAndPassword" parameterClass="array">
+	UPDATE users 
+	SET EmailAddress = #user.EmailAddress#, Password=#password#
+	WHERE Username = #user.Name#
+</update>
+
+<delete id="DeleteAutoSignon">
+	DELETE FROM signon WHERE Username = #value#
+</delete>
+
+<delete id="DeleteAllSignon">
+	DELETE FROM signon
+</delete>
+
+</sqlMap>
\ No newline at end of file
-- 
cgit v1.2.3