diff --git a/transforms01/adl2controllerclasses.xslt b/transforms01/adl2controllerclasses.xslt
index 2e9de19..beac2ae 100755
--- a/transforms01/adl2controllerclasses.xslt
+++ b/transforms01/adl2controllerclasses.xslt
@@ -9,8 +9,8 @@
Transform ADL into (partial) controller classes
$Author: sb $
- $Revision: 1.22 $
- $Date: 2008-04-18 09:27:29 $
+ $Revision: 1.23 $
+ $Date: 2008-05-08 17:26:44 $
-->
+ if ( index.Equals( itemId))
+ {
+ found = true;
+ break;
+ }
+ }
+
+ if ( ! found)
+ {
+ record..Remove( item);
+ }
+ } /* foreach ( string index... */
+
+ /* then add any on the included list which are not already members */
foreach ( string index in )
{
-
- if ( index.Equals( itemId))
- {
- found = true;
- }
- }
-
- if ( ! found)
- {
- record..Remove( item);
- }
- }
-
- /* then add any on the included list which are not already members */
- foreach ( string index in )
- {
- item =
- hibernator.CreateCriteria(typeof())
- .Add(Expression.Eq("Id", index))
- .UniqueResult<.>();
+ item =
+ hibernator.CreateCriteria(typeof())
+ .Add(Expression.Eq("Id", index))
+ .UniqueResult<.>();
- if ( ! record..Contains( item))
- {
- record..Add( item);
- }
- }
- }
+ if ( ! record..Contains( item))
+ {
+ record..Add( item);
+ }
+ } /* foreach ( string index... */
+ } /* if ( Form.GetValues( "") != null) */
- /* write the record to the database, in order to guarantee we have a valid key */
- hibernator.Save(record);
- hibernator.Flush();
+ /* write the record to the database, in order to guarantee we have a valid key */
+ hibernator.Save(record);
+ hibernator.Flush();
+ tx.Commit();
- messages.Add( "Record saved successfully");
- }
- catch ( DataSuitabilityException dse)
- {
- AddError( dse.Message);
- }
- catch ( ApplicationException axe)
- {
- AddError( axe.Message);
+ messages.Add( "Record saved successfully");
+ } /* try actually commit */
+ catch ( Exception any) {
+ tx.Rollback();
+ messages.Add( "Record not saved");
+ throw any;
+ }
+ } /* if ( record != null) */
+ else {
+ throw new ApplicationException( String.Format( "No record of type with the key values supplied was found"));
}
+ } /* try */
+ catch ( DataSuitabilityException dse)
+ {
+ AddError( dse);
+ }
+ catch ( ApplicationException axe)
+ {
+ AddError( axe.Message);
+ }
- PropertyBag["messages"] = messages;
- PropertyBag["instance"] = record;
+ PropertyBag["messages"] = messages;
+ PropertyBag["instance"] = record;
- PropertyBag["username"] = Session[ NHibernateHelper.USERTOKEN];
+ PropertyBag["username"] = Session[ NHibernateHelper.USERTOKEN];
- if ( ! AssertNoErrors())
- {
- /* the session may be polluted; create a new session */
- NHibernateHelper.CloseSession();
- hibernator = NHibernateHelper.GetCurrentSession(
- Session[ NHibernateHelper.USERTOKEN],
- Session[NHibernateHelper.PASSTOKEN]
- );
- }
-
-
-
-
- RenderViewWithFailover("",
- "");
- }
- else
+ if ( HasNoErrors())
{
- throw new DataRequiredException( "Record not found");
- }
+ /* the session may be polluted; create a new session */
+ NHibernateHelper.CloseSession();
+ hibernator = NHibernateHelper.GetCurrentSession(
+ Session[ NHibernateHelper.USERTOKEN],
+ Session[NHibernateHelper.PASSTOKEN]
+ );
+
+
+
+
+
+
+ }
+
+
+
+ RenderViewWithFailover("",
+ "");
}
@@ -436,7 +460,8 @@ namespace {
if ( "true".Equals( reallydelete))
{
-
+
+
if ( record != null)
@@ -486,7 +511,7 @@ namespace {
NHibernateHelper.GetCurrentSession( Session[ NHibernateHelper.USERTOKEN],
Session[NHibernateHelper.PASSTOKEN]);
IList<> instances =
- hibernator.CreateCriteria(typeof())
+ hibernator.CreateCriteria(typeof())
.List<>();
@@ -515,16 +540,41 @@ namespace {
);
}
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
- ""
-
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+ ""
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /* should be distinct: check that it is */
+ matches =
+ hibernator.CreateCriteria(typeof())
+
+
+ .Add(Expression.Eq("", Form[""]))
+
+
+ .Add(Expression.Eq("", Int32.Parse( Form[""])))
+
+
+ .Add(Expression.Eq("",
+
+
+
+ ))
+
+
+
+ ADL: ERROR: don't yet know how to do distinctness checks for properties
+ with base type
+
+
+
+
+ .Add(Expression.Not(Expression.Eq("",
+
+
+
+
+
+
+
+
+ Int32.Parse( Form[""])
+
+
+ Form[""]
+
+ )))
+
+ .List<>();
+
+ if ( matches.Count > 0)
+ {
+ throw new
+ DataNotDistinctException(
+ String.Format("There is already a {0} with the {1} '{2}'",
+ "", "", Form[""]));
+ }
+
+
+
+
+
+
@@ -876,11 +997,15 @@ namespace {
declared) called 'record' -->
- record = null;
-
+
/* check whether values for all key slots have been passed in; if so, we're probably dealing with an
* existing record */
+
+ /* the instance (record) of type we're dealing with */
+ record = null;
+ /* whether we have valid values for all the key fields */
bool allkeys = true;
+
if ( String.IsNullOrEmpty( Form[""])) {
allkeys = false;
@@ -893,7 +1018,6 @@ namespace {
if ( allkeys){
/* it's (probably) existing, retrieve it */
-
record = hibernator.CreateCriteria(typeof())