/// <summary>
        /// Fills CompanyBranch object
        /// </summary>
        /// <param name="companyBranchObject">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(CompanyBranchBase companyBranchObject, SqlDataReader reader, int start)
        {
            companyBranchObject.Id        = reader.GetInt32(start + 0);
            companyBranchObject.CompanyId = reader.GetGuid(start + 1);
            companyBranchObject.Name      = reader.GetString(start + 2);
            if (!reader.IsDBNull(3))
            {
                companyBranchObject.Street = reader.GetString(start + 3);
            }
            if (!reader.IsDBNull(4))
            {
                companyBranchObject.City = reader.GetString(start + 4);
            }
            if (!reader.IsDBNull(5))
            {
                companyBranchObject.State = reader.GetString(start + 5);
            }
            if (!reader.IsDBNull(6))
            {
                companyBranchObject.ZipCode = reader.GetString(start + 6);
            }
            if (!reader.IsDBNull(7))
            {
                companyBranchObject.Logo = reader.GetString(start + 7);
            }
            if (!reader.IsDBNull(8))
            {
                companyBranchObject.ColorLogo = reader.GetString(start + 8);
            }
            if (!reader.IsDBNull(9))
            {
                companyBranchObject.EmailLogo = reader.GetString(start + 9);
            }
            if (!reader.IsDBNull(10))
            {
                companyBranchObject.TimeZone = reader.GetString(start + 10);
            }
            if (!reader.IsDBNull(11))
            {
                companyBranchObject.Tax = reader.GetDouble(start + 11);
            }
            if (!reader.IsDBNull(12))
            {
                companyBranchObject.IsMainBranch = reader.GetBoolean(start + 12);
            }
            FillBaseObject(companyBranchObject, reader, (start + 13));


            companyBranchObject.RowState = BaseBusinessEntity.RowStateEnum.NormalRow;
        }
 /// <summary>
 /// Add common parameters before calling a procedure
 /// </summary>
 /// <param name="cmd">command object, where parameters will be added</param>
 /// <param name="companyBranchObject"></param>
 private void AddCommonParams(SqlCommand cmd, CompanyBranchBase companyBranchObject)
 {
     AddParameter(cmd, pGuid(CompanyBranchBase.Property_CompanyId, companyBranchObject.CompanyId));
     AddParameter(cmd, pNVarChar(CompanyBranchBase.Property_Name, 150, companyBranchObject.Name));
     AddParameter(cmd, pNVarChar(CompanyBranchBase.Property_Street, 250, companyBranchObject.Street));
     AddParameter(cmd, pNVarChar(CompanyBranchBase.Property_City, 50, companyBranchObject.City));
     AddParameter(cmd, pNVarChar(CompanyBranchBase.Property_State, 50, companyBranchObject.State));
     AddParameter(cmd, pNVarChar(CompanyBranchBase.Property_ZipCode, 50, companyBranchObject.ZipCode));
     AddParameter(cmd, pNVarChar(CompanyBranchBase.Property_Logo, 250, companyBranchObject.Logo));
     AddParameter(cmd, pNVarChar(CompanyBranchBase.Property_ColorLogo, 250, companyBranchObject.ColorLogo));
     AddParameter(cmd, pNVarChar(CompanyBranchBase.Property_EmailLogo, 250, companyBranchObject.EmailLogo));
     AddParameter(cmd, pNVarChar(CompanyBranchBase.Property_TimeZone, 250, companyBranchObject.TimeZone));
     AddParameter(cmd, pDouble(CompanyBranchBase.Property_Tax, companyBranchObject.Tax));
     AddParameter(cmd, pBool(CompanyBranchBase.Property_IsMainBranch, companyBranchObject.IsMainBranch));
 }
        /// <summary>
        /// Updates CompanyBranch
        /// </summary>
        /// <param name="companyBranchObject">Object to be updated</param>
        /// <returns>Number of rows affected</returns>
        public long Update(CompanyBranchBase companyBranchObject)
        {
            try
            {
                SqlCommand cmd = GetSPCommand(UPDATECOMPANYBRANCH);

                AddParameter(cmd, pInt32(CompanyBranchBase.Property_Id, companyBranchObject.Id));
                AddCommonParams(cmd, companyBranchObject);

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

                AddParameter(cmd, pInt32Out(CompanyBranchBase.Property_Id));
                AddCommonParams(cmd, companyBranchObject);

                long result = InsertRecord(cmd);
                if (result > 0)
                {
                    companyBranchObject.RowState = BaseBusinessEntity.RowStateEnum.NormalRow;
                    companyBranchObject.Id       = (Int32)GetOutParameter(cmd, CompanyBranchBase.Property_Id);
                }
                return(result);
            }
            catch (SqlException x)
            {
                throw new ObjectInsertException(companyBranchObject, x);
            }
        }
 /// <summary>
 /// Fills CompanyBranch object
 /// </summary>
 /// <param name="companyBranchObject">The object to be filled</param>
 /// <param name="reader">The reader to use to fill a single object</param>
 protected void FillObject(CompanyBranchBase companyBranchObject, SqlDataReader reader)
 {
     FillObject(companyBranchObject, reader, 0);
 }