/// <summary>
        /// Fills the {0} from a OleIDataReader.
        /// </summary>
        public static void FillFromReader(DojoOrganization dojoOrganization, IDataReader r, int idOffset, int dataOffset)
        {
            dojoOrganization.iD            = r.GetInt32(idOffset);
            dojoOrganization.isSynced      = true;
            dojoOrganization.isPlaceHolder = false;

            dojoOrganization.name        = r.GetString(0 + dataOffset);
            dojoOrganization.description = r.GetString(1 + dataOffset);
            if (!r.IsDBNull(2 + dataOffset) && r.GetInt32(2 + dataOffset) > 0)
            {
                dojoOrganization.location = GreyFoxContact.NewPlaceHolder("kitTessen_Locations", r.GetInt32(2 + dataOffset));
            }
            if (!r.IsDBNull(3 + dataOffset) && r.GetInt32(3 + dataOffset) > 0)
            {
                dojoOrganization.administrativeContact = GreyFoxContact.NewPlaceHolder("sysGlobal_Contacts", r.GetInt32(3 + dataOffset));
            }
            dojoOrganization.webServiceUrl = r.GetString(4 + dataOffset);
            dojoOrganization.refreshTime   = TimeSpan.FromTicks((long)r.GetDouble(5 + dataOffset));
            dojoOrganization.isPrimary     = r.GetBoolean(6 + dataOffset);
            if (!r.IsDBNull(7 + dataOffset) && r.GetInt32(7 + dataOffset) > 0)
            {
                dojoOrganization.defaultMemberType = DojoMemberType.NewPlaceHolder(r.GetInt32(7 + dataOffset));
            }
            dojoOrganization.promotionFlagEnabled = r.GetBoolean(8 + dataOffset);
        }
Example #2
0
        /// <summary>
        /// Makes a deep copy of the current DojoOrganization.
        /// </summary>
        /// <returns> A new DojoOrganization object reflecting the cloned DojoOrganization object.</returns>
        public DojoOrganization Copy()
        {
            DojoOrganization dojoOrganization = new DojoOrganization();

            CopyTo(dojoOrganization);
            return(dojoOrganization);
        }
        public static DojoOrganization ParseFromReader(IDataReader r, int idOffset, int dataOffset)
        {
            DojoOrganization dojoOrganization = new DojoOrganization();

            FillFromReader(dojoOrganization, r, idOffset, dataOffset);
            return(dojoOrganization);
        }
Example #4
0
        /// <summary>
        /// Makes a deep copy of the current DojoOrganization.
        /// </summary>
        /// <returns> A new DojoOrganization object reflecting the cloned DojoOrganization object.</returns>
        /// <param name="isolation">Placeholders are used to isolate the DojoOrganization from its children.</param>
        public DojoOrganization Copy(bool isolation)
        {
            DojoOrganization dojoOrganization = new DojoOrganization();

            CopyTo(dojoOrganization, isolation);
            return(dojoOrganization);
        }
Example #5
0
        /// <summary>
        /// Duplicates DojoOrganization object into a database; may or may not be the same database
        /// as the parent object.
        /// </summary>
        /// <returns> A new DojoOrganization object reflecting the replicated DojoOrganization object.</returns>
        public DojoOrganization Duplicate()
        {
            DojoOrganization clonedDojoOrganization = this.Clone();

            // Insert must be called after children are replicated!
            clonedDojoOrganization.iD       = DojoOrganizationManager._insert(clonedDojoOrganization);
            clonedDojoOrganization.isSynced = true;
            return(clonedDojoOrganization);
        }
Example #6
0
        public static DojoOrganization NewPlaceHolder(int iD)
        {
            DojoOrganization dojoOrganization = new DojoOrganization();

            dojoOrganization.iD            = iD;
            dojoOrganization.isPlaceHolder = true;
            dojoOrganization.isSynced      = true;
            return(dojoOrganization);
        }
Example #7
0
 /// <summary>
 /// Deep copies the current DojoOrganization to another instance of DojoOrganization.
 /// </summary>
 /// <param name="DojoOrganization">The DojoOrganization to copy to.</param>
 /// <param name="isolation">Placeholders are used to isolate the DojoOrganization from its children.</param>
 public void CopyTo(DojoOrganization dojoOrganization, bool isolation)
 {
     dojoOrganization.iD            = iD;
     dojoOrganization.isPlaceHolder = isPlaceHolder;
     dojoOrganization.isSynced      = isSynced;
     dojoOrganization.name          = name;
     dojoOrganization.description   = description;
     if (location != null)
     {
         if (isolation)
         {
             dojoOrganization.location = location.NewPlaceHolder();
         }
         else
         {
             dojoOrganization.location = location.Copy(false);
         }
     }
     if (classLocations != null)
     {
         if (isolation)
         {
             dojoOrganization.classLocations = classLocations.Copy(true);
         }
         else
         {
             dojoOrganization.classLocations = classLocations.Copy(false);
         }
     }
     if (administrativeContact != null)
     {
         if (isolation)
         {
             dojoOrganization.administrativeContact = administrativeContact.NewPlaceHolder();
         }
         else
         {
             dojoOrganization.administrativeContact = administrativeContact.Copy(false);
         }
     }
     dojoOrganization.webServiceUrl = webServiceUrl;
     dojoOrganization.refreshTime   = refreshTime;
     dojoOrganization.isPrimary     = isPrimary;
     if (defaultMemberType != null)
     {
         if (isolation)
         {
             dojoOrganization.defaultMemberType = defaultMemberType.NewPlaceHolder();
         }
         else
         {
             dojoOrganization.defaultMemberType = defaultMemberType.Copy(false);
         }
     }
     dojoOrganization.promotionFlagEnabled = promotionFlagEnabled;
 }
Example #8
0
        public void Remove(DojoOrganization value)
        {
            OnCollectionChanged(EventArgs.Empty);
            int index = IndexOf(value);

            if (index == -1)
            {
                throw(new Exception("DojoOrganization not found in collection."));
            }
            RemoveAt(index);
        }
        private static void fillParameters(Database database, DbCommand dbCommand, DojoOrganization dojoOrganization)
        {
            #region Default

            addParameter(database, dbCommand, "@Name", DbType.String, dojoOrganization.name);
            addParameter(database, dbCommand, "@Description", DbType.String, dojoOrganization.description);
            if (dojoOrganization.location == null)
            {
                addParameter(database, dbCommand, "@LocationID", DbType.Int32, DBNull.Value);
            }
            else
            {
                addParameter(database, dbCommand, "@LocationID", DbType.Int32, dojoOrganization.location.ID);
            }
            if (dojoOrganization.administrativeContact == null)
            {
                addParameter(database, dbCommand, "@AdministrativeContactID", DbType.Int32, DBNull.Value);
            }
            else
            {
                addParameter(database, dbCommand, "@AdministrativeContactID", DbType.Int32, dojoOrganization.administrativeContact.ID);
            }

            #endregion

            #region Web Services

            addParameter(database, dbCommand, "@WebServiceUrl", DbType.String, dojoOrganization.webServiceUrl);
            addParameter(database, dbCommand, "@RefreshTime", DbType.Double, dojoOrganization.refreshTime.Ticks);

            #endregion

            #region System

            addParameter(database, dbCommand, "@IsPrimary", DbType.Boolean, dojoOrganization.isPrimary);

            #endregion

            #region Membership

            if (dojoOrganization.defaultMemberType == null)
            {
                addParameter(database, dbCommand, "@DefaultMemberTypeID", DbType.Int32, DBNull.Value);
            }
            else
            {
                addParameter(database, dbCommand, "@DefaultMemberTypeID", DbType.Int32, dojoOrganization.defaultMemberType.ID);
            }
            addParameter(database, dbCommand, "@PromotionFlagEnabled", DbType.Boolean, dojoOrganization.promotionFlagEnabled);

            #endregion
        }
Example #10
0
 public int IndexOf(DojoOrganization value)
 {
     lock (this)
     {
         for (int x = 0; x < count; x++)
         {
             if (DojoOrganizationArray[x].Equals(value))
             {
                 return(x);
             }
         }
         return(-1);
     }
 }
        internal static bool _fill(DojoOrganization dojoOrganization)
        {
            // Clone item from cache.
            if (cacheEnabled)
            {
                object cachedObject = cacheFind(dojoOrganization.iD);
                if (cachedObject != null)
                {
                    ((DojoOrganization)cachedObject).CopyTo(dojoOrganization, true);
                    return(dojoOrganization.isSynced);
                }
            }

            StringBuilder query;
            Database      database;
            DbCommand     dbCommand;

            query = new StringBuilder("SELECT ");
            query.Append(string.Join(",", InnerJoinFields));
            query.Append(" FROM kitTessen_Organizations WHERE DojoOrganizationID=");
            query.Append(dojoOrganization.iD);
            query.Append(";");

            database  = DatabaseFactory.CreateDatabase();
            dbCommand = database.GetSqlStringCommand(query.ToString());
            IDataReader r = database.ExecuteReader(dbCommand);

            if (!r.Read())
            {
                throw(new Exception(string.Format("Cannot find DojoOrganizationID '{0}'.",
                                                  dojoOrganization.iD)));
            }

            FillFromReader(dojoOrganization, r, 0, 1);

            // Microsoft DAAB still needs to have the reader closed.
            r.Close();

            // Store dojoOrganization in cache.
            if (cacheEnabled)
            {
                cacheStore(dojoOrganization);
            }

            return(true);
        }
Example #12
0
 public int Add(DojoOrganization value)
 {
     OnCollectionChanged(EventArgs.Empty);
     lock (this)
     {
         count++;
         // Resize the array if the count is greater than the length
         // of the array.
         if (count > DojoOrganizationArray.GetUpperBound(0) + 1)
         {
             DojoOrganization[] tempDojoOrganizationArray = new DojoOrganization[count * 2];
             Array.Copy(DojoOrganizationArray, tempDojoOrganizationArray, count - 1);
             DojoOrganizationArray = tempDojoOrganizationArray;
         }
         DojoOrganizationArray[count - 1] = value;
     }
     return(count - 1);
 }
        public static void FillClassLocations(DojoOrganization dojoOrganization)
        {
            StringBuilder s;
            Database      database;
            DbCommand     dbCommand;
            IDataReader   r;

            s = new StringBuilder("SELECT GreyFoxContactID FROM kitTessen_OrganizationsChildren_ClassLocations ");
            s.Append("WHERE DojoOrganizationID=");
            s.Append(dojoOrganization.iD);
            s.Append(";");

            database  = DatabaseFactory.CreateDatabase();
            dbCommand = database.GetSqlStringCommand(s.ToString());
            r         = database.ExecuteReader(dbCommand);

            GreyFoxContactCollection classLocations;

            if (dojoOrganization.classLocations != null)
            {
                classLocations = dojoOrganization.classLocations;
                classLocations.Clear();
            }
            else
            {
                classLocations = new GreyFoxContactCollection();
                dojoOrganization.classLocations = classLocations;
            }

            while (r.Read())
            {
                classLocations.Add(GreyFoxContact.NewPlaceHolder("kitTessen_Locations", r.GetInt32(0)));
            }

            dojoOrganization.ClassLocations = classLocations;
            // Store DojoOrganization in cache.
            if (cacheEnabled)
            {
                cacheStore(dojoOrganization);
            }
        }
Example #14
0
 public void Insert(int index, DojoOrganization value)
 {
     OnCollectionChanged(EventArgs.Empty);
     lock (this)
     {
         count++;
         // Resize the array if the count is greater than the length
         // of the array.
         if (count > DojoOrganizationArray.GetUpperBound(0) + 1)
         {
             DojoOrganization[] tempDojoOrganizationArray = new DojoOrganization[count * 2];
             Array.Copy(DojoOrganizationArray, tempDojoOrganizationArray, count - 1);
             DojoOrganizationArray = tempDojoOrganizationArray;
         }
         for (int x = index + 1; x == count - 2; x++)
         {
             DojoOrganizationArray[x] = DojoOrganizationArray[x - 1];
         }
         DojoOrganizationArray[index] = value;
     }
 }
Example #15
0
        /// <summary>
        /// Clones DojoOrganization object and clones child objects with cloning or replication.
        /// as the parent object.
        /// </summary>
        /// <returns> A new DojoOrganization object reflecting the replicated DojoOrganization object.</returns>
        public DojoOrganization Clone()
        {
            DojoOrganization clonedDojoOrganization = new DojoOrganization();

            clonedDojoOrganization.iD                   = iD;
            clonedDojoOrganization.isSynced             = isSynced;
            clonedDojoOrganization.name                 = name;
            clonedDojoOrganization.description          = description;
            clonedDojoOrganization.webServiceUrl        = webServiceUrl;
            clonedDojoOrganization.refreshTime          = refreshTime;
            clonedDojoOrganization.isPrimary            = isPrimary;
            clonedDojoOrganization.promotionFlagEnabled = promotionFlagEnabled;


            if (location != null)
            {
                clonedDojoOrganization.location = location;
            }

            if (classLocations != null)
            {
                clonedDojoOrganization.classLocations = classLocations.Clone();
            }

            if (administrativeContact != null)
            {
                clonedDojoOrganization.administrativeContact = administrativeContact;
            }

            if (defaultMemberType != null)
            {
                clonedDojoOrganization.defaultMemberType = defaultMemberType;
            }

            return(clonedDojoOrganization);
        }
        internal static int _update(DojoOrganization dojoOrganization)
        {
            Database  database;
            DbCommand dbCommand;

            database = DatabaseFactory.CreateDatabase();

            dbCommand = database.GetSqlStringCommand("UPDATE kitTessen_Organizations SET Name=@Name," +
                                                     "Description=@Description," +
                                                     "LocationID=@LocationID," +
                                                     "AdministrativeContactID=@AdministrativeContactID," +
                                                     "WebServiceUrl=@WebServiceUrl," +
                                                     "RefreshTime=@RefreshTime," +
                                                     "IsPrimary=@IsPrimary," +
                                                     "DefaultMemberTypeID=@DefaultMemberTypeID," +
                                                     "PromotionFlagEnabled=@PromotionFlagEnabled WHERE DojoOrganizationID=@DojoOrganizationID;");

            fillParameters(database, dbCommand, dojoOrganization);
            database.AddInParameter(dbCommand, "DojoOrganizationID", DbType.Int32, dojoOrganization.iD);
            // Abandon remaining updates if no rows have been updated by returning false immediately.
            if (database.ExecuteNonQuery(dbCommand) == 0)
            {
                return(-1);
            }

            if (dojoOrganization.classLocations != null)
            {
                // Delete child relationships for ClassLocations.
                dbCommand = database.GetSqlStringCommand("DELETE  FROM kitTessen_OrganizationsChildren_ClassLocations WHERE DojoOrganizationID=@DojoOrganizationID;");
                database.AddInParameter(dbCommand, "@DojoOrganizationID", DbType.Int32, dojoOrganization.iD);
                database.ExecuteNonQuery(dbCommand);

                // Save child relationships for ClassLocations.
                dbCommand = database.GetSqlStringCommand("INSERT INTO kitTessen_OrganizationsChildren_ClassLocations (DojoOrganizationID, GreyFoxContactID) VALUES (@DojoOrganizationID, @GreyFoxContactID);");
                database.AddInParameter(dbCommand, "@DojoOrganizationID", DbType.Int32, dojoOrganization.iD);
                database.AddInParameter(dbCommand, "@GreyFoxContactID", DbType.Int32);
                foreach (GreyFoxContact greyFoxContact in dojoOrganization.classLocations)
                {
                    dbCommand.Parameters["@GreyFoxContactID"].Value = greyFoxContact.ID;
                    database.ExecuteNonQuery(dbCommand);
                }
            }

            // Store dojoOrganization in cache.
            if (cacheEnabled)
            {
                cacheStore(dojoOrganization);
            }
            // ************************* WARNING ****************************
            // Update operations must invalidate the cached collections.
            // Invalidation MUST invalidate any foreign cached collections that
            // with children objects this manager provides or else the foreign
            // caches retain invalidated and potentially corrupt data!
            // NOTE:
            // NitroCast only allows collection caching on objects that do not
            // have any children objects to minimize potential corruption.
            // ************************* WARNING ****************************

            invalidateCachedCollections();

            return(dojoOrganization.iD);
        }
Example #17
0
 /// <summary>
 /// Deep copies the current DojoOrganization to another instance of DojoOrganization.
 /// This method does not provide isolated copies; use overriden method for this feature.
 /// </summary>
 /// <param name="DojoOrganization">The DojoOrganization to copy to.</param>
 public void CopyTo(DojoOrganization dojoOrganization)
 {
     CopyTo(dojoOrganization, false);
 }
        public DojoOrganizationCollection GetCollection(int topCount, string whereClause, string sortClause, params DojoOrganizationFlags[] optionFlags)
        {
            StringBuilder query;
            Database      database;
            DbCommand     dbCommand;
            IDataReader   r;
            DojoOrganizationCollection dojoOrganizationCollection;
            int hashcode;

            // Cache Handling

            hashcode = 0;

            if (cacheEnabled)
            {
                hashcode = topCount.GetHashCode() +
                           whereClause.GetHashCode() +
                           sortClause.GetHashCode() +
                           tableName.GetHashCode();

                DojoOrganizationCollection collection = cacheFindCollection(hashcode);
                if (collection != null)
                {
                    return(collection);
                }
            }

            int innerJoinOffset;

            query = new StringBuilder("SELECT ");

            if (topCount > 0)
            {
                query.Append("TOP ");
                query.Append(topCount);
                query.Append(" ");
            }

            foreach (string columnName in InnerJoinFields)
            {
                query.Append("DojoOrganization.");
                query.Append(columnName);
                query.Append(",");
            }

            innerJoinOffset = InnerJoinFields.GetUpperBound(0) + 1;
            int locationOffset = -1;
            int administrativeContactOffset = -1;
            int defaultMemberTypeOffset     = -1;

            //
            // Append Option Flag Fields
            //
            if (optionFlags != null)
            {
                for (int x = 0; x < optionFlags.Length; x++)
                {
                    switch (optionFlags[x])
                    {
                    case DojoOrganizationFlags.Location:
                        for (int i = 0; i <= GreyFoxContactManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("Location.");
                            query.Append(GreyFoxContactManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        locationOffset  = innerJoinOffset;
                        innerJoinOffset = locationOffset + GreyFoxContactManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;

                    case DojoOrganizationFlags.AdministrativeContact:
                        for (int i = 0; i <= GreyFoxContactManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("AdministrativeContact.");
                            query.Append(GreyFoxContactManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        administrativeContactOffset = innerJoinOffset;
                        innerJoinOffset             = administrativeContactOffset + GreyFoxContactManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;

                    case DojoOrganizationFlags.DefaultMemberType:
                        for (int i = 0; i <= DojoMemberTypeManager.InnerJoinFields.GetUpperBound(0); i++)
                        {
                            query.Append("DefaultMemberType.");
                            query.Append(DojoMemberTypeManager.InnerJoinFields[i]);
                            query.Append(",");
                        }
                        defaultMemberTypeOffset = innerJoinOffset;
                        innerJoinOffset         = defaultMemberTypeOffset + DojoMemberTypeManager.InnerJoinFields.GetUpperBound(0) + 1;
                        break;
                    }
                }
            }

            //
            // Remove trailing comma
            //
            query.Length--;
            if (optionFlags != null)
            {
                query.Append(" FROM ");

                //
                // Start INNER JOIN expressions
                //
                for (int x = 0; x < optionFlags.Length; x++)
                {
                    query.Append("(");
                }

                query.Append("kitTessen_Organizations AS DojoOrganization");
            }
            else
            {
                query.Append(" FROM kitTessen_Organizations AS DojoOrganization");
            }
            //
            // Finish INNER JOIN expressions
            //
            if (optionFlags != null)
            {
                for (int x = 0; x < optionFlags.Length; x++)
                {
                    switch (optionFlags[x])
                    {
                    case DojoOrganizationFlags.Location:
                        query.Append(" LEFT JOIN kitTessen_Locations AS Location ON DojoOrganization.LocationID = Location.GreyFoxContactID)");
                        break;

                    case DojoOrganizationFlags.AdministrativeContact:
                        query.Append(" LEFT JOIN sysGlobal_Contacts AS AdministrativeContact ON DojoOrganization.AdministrativeContactID = AdministrativeContact.GreyFoxContactID)");
                        break;

                    case DojoOrganizationFlags.DefaultMemberType:
                        query.Append(" LEFT JOIN kitTessen_MemberTypes AS DefaultMemberType ON DojoOrganization.DefaultMemberTypeID = DefaultMemberType.DojoMemberTypeID)");
                        break;
                    }
                }
            }

            //
            // Render where clause
            //
            if (whereClause != string.Empty)
            {
                query.Append(" WHERE ");
                query.Append(whereClause);
            }

            //
            // Render sort clause
            //
            if (sortClause != string.Empty)
            {
                query.Append(" ORDER BY ");
                query.Append(sortClause);
            }

            //
            // Render final semicolon
            //
            query.Append(";");
            database  = DatabaseFactory.CreateDatabase();
            dbCommand = database.GetSqlStringCommand(query.ToString());
                        #if DEBUG
            try
            {
                r = database.ExecuteReader(dbCommand);
            }
            catch (Exception e)
            {
                string msg = e.Message;
                throw(new Exception(msg + " --- Query: " + query.ToString()));
            }
                        #else
            r = database.ExecuteReader(dbCommand);
                        #endif

            dojoOrganizationCollection = new DojoOrganizationCollection();

            while (r.Read())
            {
                DojoOrganization dojoOrganization = ParseFromReader(r, 0, 1);

                // Fill Location
                if (locationOffset != -1 && !r.IsDBNull(locationOffset))
                {
                    GreyFoxContactManager.FillFromReader(dojoOrganization.location, "kitTessen_Locations", r, locationOffset, locationOffset + 1);
                }

                // Fill AdministrativeContact
                if (administrativeContactOffset != -1 && !r.IsDBNull(administrativeContactOffset))
                {
                    GreyFoxContactManager.FillFromReader(dojoOrganization.administrativeContact, "sysGlobal_Contacts", r, administrativeContactOffset, administrativeContactOffset + 1);
                }

                // Fill DefaultMemberType
                if (defaultMemberTypeOffset != -1 && !r.IsDBNull(defaultMemberTypeOffset))
                {
                    DojoMemberTypeManager.FillFromReader(dojoOrganization.defaultMemberType, r, defaultMemberTypeOffset, defaultMemberTypeOffset + 1);
                }

                dojoOrganizationCollection.Add(dojoOrganization);
            }

            // Microsoft DAAB still needs to close readers.
            r.Close();

            if (cacheEnabled)
            {
                cacheStoreCollection(hashcode, dojoOrganizationCollection);
            }

            return(dojoOrganizationCollection);
        }
Example #19
0
 public bool Contains(DojoOrganization value)
 {
     return(IndexOf(value) != -1);
 }
        /// <summary>
        /// Inserts a DojoOrganization into the database. All children should have been
        /// saved to the database before insertion. New children will not be
        /// related to this object in the database.
        /// </summary>
        /// <param name="_DojoOrganization">The DojoOrganization to insert into the database.</param>
        internal static int _insert(DojoOrganization dojoOrganization)
        {
            int       id;
            string    query;
            Database  database;
            DbCommand dbCommand;

            database = DatabaseFactory.CreateDatabase();

            query = "INSERT INTO kitTessen_Organizations " +
                    "(" +
                    "Name," +
                    "Description," +
                    "LocationID," +
                    "AdministrativeContactID," +
                    "WebServiceUrl," +
                    "RefreshTime," +
                    "IsPrimary," +
                    "DefaultMemberTypeID," +
                    "PromotionFlagEnabled) VALUES (" +
                    "@Name," +
                    "@Description," +
                    "@LocationID," +
                    "@AdministrativeContactID," +
                    "@WebServiceUrl," +
                    "@RefreshTime," +
                    "@IsPrimary," +
                    "@DefaultMemberTypeID," +
                    "@PromotionFlagEnabled);";

            if (database.ConnectionStringWithoutCredentials.StartsWith("provider=microsoft.jet.oledb.4.0"))
            {
                // Microsoft Access
                // Connection must remain open for IDENTITY to return correct value,
                // therefore use the dbCommand object's Connection directly to control
                // connection state.
                dbCommand = database.GetSqlStringCommand(query);
                fillParameters(database, dbCommand, dojoOrganization);
                dbCommand.Connection = database.CreateConnection();
                dbCommand.Connection.Open();
                dbCommand.ExecuteNonQuery();
                dbCommand.CommandText = "SELECT @@IDENTITY AS LastID";
                id = (int)dbCommand.ExecuteScalar();
                dbCommand.Connection.Close();
            }
            else
            {
                //// Microsoft SQL Server
                dbCommand = database.GetSqlStringCommand(query + " SELECT @LastID = SCOPE_IDENTITY();");
                fillParameters(database, dbCommand, dojoOrganization);
                database.AddOutParameter(dbCommand, "@LastID", DbType.Int32, 10);
                database.ExecuteNonQuery(dbCommand);
                id = (int)dbCommand.Parameters["@LastID"].Value;
            }

            // Save child relationships for ClassLocations.
            if (dojoOrganization.classLocations != null)
            {
                dbCommand = database.GetSqlStringCommand("INSERT INTO kitTessen_OrganizationsChildren_ClassLocations " +
                                                         "(DojoOrganizationID, GreyFoxContactID)" +
                                                         " VALUES (@DojoOrganizationID, @GreyFoxContactID);");
                addParameter(database, dbCommand, "@DojoOrganizationID", DbType.Int32);
                addParameter(database, dbCommand, "@GreyFoxContactID", DbType.Int32);
                foreach (GreyFoxContact item in dojoOrganization.classLocations)
                {
                    dbCommand.Parameters["@DojoOrganizationID"].Value = id;
                    dbCommand.Parameters["@GreyFoxContactID"].Value   = item.ID;
                    database.ExecuteNonQuery(dbCommand);
                }
            }
            // Store dojoOrganization in cache.
            if (cacheEnabled)
            {
                cacheStore(dojoOrganization);
            }
            // ************************* WARNING ****************************
            // Insert operations must invalidate the cached collections.
            // Invalidation MUST invalidate any foreign cached collections that
            // with children objects this manager provides or else the foreign
            // caches retain invalidated and potentially corrupt data!
            // NOTE:
            // NitroCast only allows collection caching on objects that do not
            // have any children objects to minimize potential corruption.
            invalidateCachedCollections();
            return(id);
        }
Example #21
0
        /// <summary>
        /// Compares the object's ID to another object's ID.
        /// </summary>
        int IComparable.CompareTo(object obj)
        {
            DojoOrganization dojoOrganization = (DojoOrganization)obj;

            return(this.iD - dojoOrganization.iD);
        }
Example #22
0
 /// <summary>
 /// Compares the object's ID to another object's ID.
 /// </summary>
 public int CompareTo(DojoOrganization dojoOrganization)
 {
     return(this.iD - dojoOrganization.iD);
 }
        private static void cacheStore(DojoOrganization dojoOrganization)
        {
            CacheManager cache = CacheFactory.GetCacheManager();

            cache.Add("kitTessen_Organizations_" + dojoOrganization.iD.ToString(), dojoOrganization);
        }