/// <summary>
        /// Fills UserCompany object
        /// </summary>
        /// <param name="userCompanyObject">The object to be filled</param>
        /// <param name="reader">The reader to use to fill a single object</param>
        /// <param name="start">The ordinal position from which to start reading the reader</param>
        protected void FillObject(UserCompanyBase userCompanyObject, SqlDataReader reader, int start)
        {
            userCompanyObject.Id        = reader.GetInt32(start + 0);
            userCompanyObject.CompanyId = reader.GetGuid(start + 1);
            userCompanyObject.UserId    = reader.GetGuid(start + 2);
            userCompanyObject.IsDefault = reader.GetBoolean(start + 3);
            FillBaseObject(userCompanyObject, reader, (start + 4));


            userCompanyObject.RowState = BaseBusinessEntity.RowStateEnum.NormalRow;
        }
        /// <summary>
        /// Updates UserCompany
        /// </summary>
        /// <param name="userCompanyObject">Object to be updated</param>
        /// <returns>Number of rows affected</returns>
        public long Update(UserCompanyBase userCompanyObject)
        {
            try
            {
                SqlCommand cmd = GetSPCommand(UPDATEUSERCOMPANY);

                AddParameter(cmd, pInt32(UserCompanyBase.Property_Id, userCompanyObject.Id));
                AddCommonParams(cmd, userCompanyObject);

                long result = UpdateRecord(cmd);
                if (result > 0)
                {
                    userCompanyObject.RowState = BaseBusinessEntity.RowStateEnum.NormalRow;
                }
                return(result);
            }
            catch (SqlException x)
            {
                throw new ObjectUpdateException(userCompanyObject, x);
            }
        }
        /// <summary>
        /// Inserts UserCompany
        /// </summary>
        /// <param name="userCompanyObject">Object to be inserted</param>
        /// <returns>Number of rows affected</returns>
        public long Insert(UserCompanyBase userCompanyObject)
        {
            try
            {
                SqlCommand cmd = GetSPCommand(INSERTUSERCOMPANY);

                AddParameter(cmd, pInt32Out(UserCompanyBase.Property_Id));
                AddCommonParams(cmd, userCompanyObject);

                long result = InsertRecord(cmd);
                if (result > 0)
                {
                    userCompanyObject.RowState = BaseBusinessEntity.RowStateEnum.NormalRow;
                    userCompanyObject.Id       = (Int32)GetOutParameter(cmd, UserCompanyBase.Property_Id);
                }
                return(result);
            }
            catch (SqlException x)
            {
                throw new ObjectInsertException(userCompanyObject, x);
            }
        }
 /// <summary>
 /// Add common parameters before calling a procedure
 /// </summary>
 /// <param name="cmd">command object, where parameters will be added</param>
 /// <param name="userCompanyObject"></param>
 private void AddCommonParams(SqlCommand cmd, UserCompanyBase userCompanyObject)
 {
     AddParameter(cmd, pGuid(UserCompanyBase.Property_CompanyId, userCompanyObject.CompanyId));
     AddParameter(cmd, pGuid(UserCompanyBase.Property_UserId, userCompanyObject.UserId));
     AddParameter(cmd, pBool(UserCompanyBase.Property_IsDefault, userCompanyObject.IsDefault));
 }
 /// <summary>
 /// Fills UserCompany object
 /// </summary>
 /// <param name="userCompanyObject">The object to be filled</param>
 /// <param name="reader">The reader to use to fill a single object</param>
 protected void FillObject(UserCompanyBase userCompanyObject, SqlDataReader reader)
 {
     FillObject(userCompanyObject, reader, 0);
 }