/// <summary>
        /// Reads data from the provided data reader and returns 
        /// an array of mapped objects.
        /// </summary>
        /// <param name="reader">The <see cref="System.Data.IDataReader"/> object to read data from the table.</param>
        /// <param name="startIndex">The index of the first record to map.</param>
        /// <param name="length">The number of records to map.</param>
        /// <param name="totalRecordCount">A reference parameter that returns the total number 
        /// of records in the reader object if 0 was passed into the method; otherwise it returns -1.</param>
        /// <returns>An array of <see cref="MarketingInfoRow"/> objects.</returns>
        protected virtual MarketingInfoRow[] MapRecords(IDataReader reader, 
										int startIndex, int length, ref int totalRecordCount)
        {
            if(0 > startIndex)
                throw new ArgumentOutOfRangeException("startIndex", startIndex, "StartIndex cannot be less than zero.");
            if(0 > length)
                throw new ArgumentOutOfRangeException("length", length, "Length cannot be less than zero.");

            int pkIdColumnIndex = reader.GetOrdinal("pkId");
            int styleNumberColumnIndex = reader.GetOrdinal("StyleNumber");
            int salesOrgColumnIndex = reader.GetOrdinal("SalesOrg");
            int distributionChannelColumnIndex = reader.GetOrdinal("DistributionChannel");
            int marketingDescEnColumnIndex = reader.GetOrdinal("MarketingDescEn");
            int marketingDescFrColumnIndex = reader.GetOrdinal("MarketingDescFr");
            int styleKeywordsColumnIndex = reader.GetOrdinal("StyleKeywords");
            int styleSizeRunColumnIndex = reader.GetOrdinal("StyleSizeRun");
            int navCategory1ColumnIndex = reader.GetOrdinal("NavCategory1");
            int navCategory2ColumnIndex = reader.GetOrdinal("NavCategory2");
            int navCategory3ColumnIndex = reader.GetOrdinal("NavCategory3");
            int navCategory4ColumnIndex = reader.GetOrdinal("NavCategory4");
            int navCategoryFr1ColumnIndex = reader.GetOrdinal("NavCategoryFr1");
            int navCategoryFr2ColumnIndex = reader.GetOrdinal("NavCategoryFr2");
            int navCategoryFr3ColumnIndex = reader.GetOrdinal("NavCategoryFr3");
            int navCategoryFr4ColumnIndex = reader.GetOrdinal("NavCategoryFr4");
            int flag1ColumnIndex = reader.GetOrdinal("Flag1");
            int flag2ColumnIndex = reader.GetOrdinal("Flag2");
            int flag3ColumnIndex = reader.GetOrdinal("Flag3");
            int flag4ColumnIndex = reader.GetOrdinal("Flag4");
            int flag5ColumnIndex = reader.GetOrdinal("Flag5");
            int flag6ColumnIndex = reader.GetOrdinal("Flag6");
            int flag7ColumnIndex = reader.GetOrdinal("Flag7");
            int flag8ColumnIndex = reader.GetOrdinal("Flag8");
            int flag9ColumnIndex = reader.GetOrdinal("Flag9");
            int flag10ColumnIndex = reader.GetOrdinal("Flag10");
            int flag11ColumnIndex = reader.GetOrdinal("Flag11");
            int flag12ColumnIndex = reader.GetOrdinal("Flag12");
            int createdOnColumnIndex = reader.GetOrdinal("CreatedOn");
            int updatedOnColumnIndex = reader.GetOrdinal("UpdatedOn");
            int localeColumnIndex = reader.GetOrdinal("Locale");

            System.Collections.ArrayList recordList = new System.Collections.ArrayList();
            int ri = -startIndex;
            while(reader.Read())
            {
                ri++;
                if(ri > 0 && ri <= length)
                {
                    MarketingInfoRow record = new MarketingInfoRow();
                    recordList.Add(record);

                    record.PkId = Convert.ToInt32(reader.GetValue(pkIdColumnIndex));
                    record.StyleNumber = Convert.ToString(reader.GetValue(styleNumberColumnIndex));
                    if(!reader.IsDBNull(salesOrgColumnIndex))
                        record.SalesOrg = Convert.ToString(reader.GetValue(salesOrgColumnIndex));
                    if(!reader.IsDBNull(distributionChannelColumnIndex))
                        record.DistributionChannel = Convert.ToString(reader.GetValue(distributionChannelColumnIndex));
                    if(!reader.IsDBNull(marketingDescEnColumnIndex))
                        record.MarketingDescEn = Convert.ToString(reader.GetValue(marketingDescEnColumnIndex));
                    if(!reader.IsDBNull(marketingDescFrColumnIndex))
                        record.MarketingDescFr = Convert.ToString(reader.GetValue(marketingDescFrColumnIndex));
                    if(!reader.IsDBNull(styleKeywordsColumnIndex))
                        record.StyleKeywords = Convert.ToString(reader.GetValue(styleKeywordsColumnIndex));
                    if(!reader.IsDBNull(styleSizeRunColumnIndex))
                        record.StyleSizeRun = Convert.ToString(reader.GetValue(styleSizeRunColumnIndex));
                    if(!reader.IsDBNull(navCategory1ColumnIndex))
                        record.NavCategory1 = Convert.ToString(reader.GetValue(navCategory1ColumnIndex));
                    if(!reader.IsDBNull(navCategory2ColumnIndex))
                        record.NavCategory2 = Convert.ToString(reader.GetValue(navCategory2ColumnIndex));
                    if(!reader.IsDBNull(navCategory3ColumnIndex))
                        record.NavCategory3 = Convert.ToString(reader.GetValue(navCategory3ColumnIndex));
                    if(!reader.IsDBNull(navCategory4ColumnIndex))
                        record.NavCategory4 = Convert.ToString(reader.GetValue(navCategory4ColumnIndex));
                    if(!reader.IsDBNull(navCategoryFr1ColumnIndex))
                        record.NavCategoryFr1 = Convert.ToString(reader.GetValue(navCategoryFr1ColumnIndex));
                    if(!reader.IsDBNull(navCategoryFr2ColumnIndex))
                        record.NavCategoryFr2 = Convert.ToString(reader.GetValue(navCategoryFr2ColumnIndex));
                    if(!reader.IsDBNull(navCategoryFr3ColumnIndex))
                        record.NavCategoryFr3 = Convert.ToString(reader.GetValue(navCategoryFr3ColumnIndex));
                    if(!reader.IsDBNull(navCategoryFr4ColumnIndex))
                        record.NavCategoryFr4 = Convert.ToString(reader.GetValue(navCategoryFr4ColumnIndex));
                    if(!reader.IsDBNull(flag1ColumnIndex))
                        record.Flag1 = Convert.ToString(reader.GetValue(flag1ColumnIndex));
                    if(!reader.IsDBNull(flag2ColumnIndex))
                        record.Flag2 = Convert.ToString(reader.GetValue(flag2ColumnIndex));
                    if(!reader.IsDBNull(flag3ColumnIndex))
                        record.Flag3 = Convert.ToString(reader.GetValue(flag3ColumnIndex));
                    if(!reader.IsDBNull(flag4ColumnIndex))
                        record.Flag4 = Convert.ToString(reader.GetValue(flag4ColumnIndex));
                    if(!reader.IsDBNull(flag5ColumnIndex))
                        record.Flag5 = Convert.ToString(reader.GetValue(flag5ColumnIndex));
                    if(!reader.IsDBNull(flag6ColumnIndex))
                        record.Flag6 = Convert.ToString(reader.GetValue(flag6ColumnIndex));
                    if(!reader.IsDBNull(flag7ColumnIndex))
                        record.Flag7 = Convert.ToString(reader.GetValue(flag7ColumnIndex));
                    if(!reader.IsDBNull(flag8ColumnIndex))
                        record.Flag8 = Convert.ToString(reader.GetValue(flag8ColumnIndex));
                    if(!reader.IsDBNull(flag9ColumnIndex))
                        record.Flag9 = Convert.ToString(reader.GetValue(flag9ColumnIndex));
                    if(!reader.IsDBNull(flag10ColumnIndex))
                        record.Flag10 = Convert.ToString(reader.GetValue(flag10ColumnIndex));
                    if(!reader.IsDBNull(flag11ColumnIndex))
                        record.Flag11 = Convert.ToString(reader.GetValue(flag11ColumnIndex));
                    if(!reader.IsDBNull(flag12ColumnIndex))
                        record.Flag12 = Convert.ToString(reader.GetValue(flag12ColumnIndex));
                    if(!reader.IsDBNull(createdOnColumnIndex))
                        record.CreatedOn = Convert.ToDateTime(reader.GetValue(createdOnColumnIndex));
                    if(!reader.IsDBNull(updatedOnColumnIndex))
                        record.UpdatedOn = Convert.ToDateTime(reader.GetValue(updatedOnColumnIndex));
                    if (!reader.IsDBNull(localeColumnIndex))
                        record.Locale = Convert.ToString(reader.GetValue(localeColumnIndex));

                    if(ri == length && 0 != totalRecordCount)
                        break;
                }
            }

            totalRecordCount = 0 == totalRecordCount ? ri + startIndex : -1;
            return (MarketingInfoRow[])(recordList.ToArray(typeof(MarketingInfoRow)));
        }
 /// <summary>
 /// Updates a record in the <c>MarketingInfo</c> table.
 /// </summary>
 /// <param name="value">The <see cref="MarketingInfoRow"/>
 /// object used to update the table record.</param>
 /// <returns>true if the record was updated; otherwise, false.</returns>
 public virtual bool Update(MarketingInfoRow value)
 {
     string sqlStr = "UPDATE [dbo].[MarketingInfo] SET " +
         "[StyleNumber]=" + _db.CreateSqlParameterName("StyleNumber") + ", " +
         "[SalesOrg]=" + _db.CreateSqlParameterName("SalesOrg") + ", " +
         "[DistributionChannel]=" + _db.CreateSqlParameterName("DistributionChannel") + ", " +
         "[MarketingDescEn]=" + _db.CreateSqlParameterName("MarketingDescEn") + ", " +
         "[MarketingDescFr]=" + _db.CreateSqlParameterName("MarketingDescFr") + ", " +
         "[StyleKeywords]=" + _db.CreateSqlParameterName("StyleKeywords") + ", " +
         "[StyleSizeRun]=" + _db.CreateSqlParameterName("StyleSizeRun") + ", " +
         "[NavCategory1]=" + _db.CreateSqlParameterName("NavCategory1") + ", " +
         "[NavCategory2]=" + _db.CreateSqlParameterName("NavCategory2") + ", " +
         "[NavCategory3]=" + _db.CreateSqlParameterName("NavCategory3") + ", " +
         "[NavCategory4]=" + _db.CreateSqlParameterName("NavCategory4") + ", " +
         "[NavCategoryFr1]=" + _db.CreateSqlParameterName("NavCategoryFr1") + ", " +
         "[NavCategoryFr2]=" + _db.CreateSqlParameterName("NavCategoryFr2") + ", " +
         "[NavCategoryFr3]=" + _db.CreateSqlParameterName("NavCategoryFr3") + ", " +
         "[NavCategoryFr4]=" + _db.CreateSqlParameterName("NavCategoryFr4") + ", " +
         "[Flag1]=" + _db.CreateSqlParameterName("Flag1") + ", " +
         "[Flag2]=" + _db.CreateSqlParameterName("Flag2") + ", " +
         "[Flag3]=" + _db.CreateSqlParameterName("Flag3") + ", " +
         "[Flag4]=" + _db.CreateSqlParameterName("Flag4") + ", " +
         "[Flag5]=" + _db.CreateSqlParameterName("Flag5") + ", " +
         "[Flag6]=" + _db.CreateSqlParameterName("Flag6") + ", " +
         "[Flag7]=" + _db.CreateSqlParameterName("Flag7") + ", " +
         "[Flag8]=" + _db.CreateSqlParameterName("Flag8") + ", " +
         "[Flag9]=" + _db.CreateSqlParameterName("Flag9") + ", " +
         "[Flag10]=" + _db.CreateSqlParameterName("Flag10") + ", " +
         "[Flag11]=" + _db.CreateSqlParameterName("Flag11") + ", " +
         "[Flag12]=" + _db.CreateSqlParameterName("Flag12") + ", " +
         "[CreatedOn]=" + _db.CreateSqlParameterName("CreatedOn") + ", " +
         "[UpdatedOn]=" + _db.CreateSqlParameterName("UpdatedOn") + ", " +
         "[Locale]=" + _db.CreateSqlParameterName("Locale") +
         " WHERE " +
         "[pkId]=" + _db.CreateSqlParameterName("PkId");
     IDbCommand cmd = _db.CreateCommand(sqlStr);
     AddParameter(cmd, "StyleNumber", value.StyleNumber);
     AddParameter(cmd, "SalesOrg", value.SalesOrg);
     AddParameter(cmd, "DistributionChannel", value.DistributionChannel);
     AddParameter(cmd, "MarketingDescEn", value.MarketingDescEn);
     AddParameter(cmd, "MarketingDescFr", value.MarketingDescFr);
     AddParameter(cmd, "StyleKeywords", value.StyleKeywords);
     AddParameter(cmd, "StyleSizeRun", value.StyleSizeRun);
     AddParameter(cmd, "NavCategory1", value.NavCategory1);
     AddParameter(cmd, "NavCategory2", value.NavCategory2);
     AddParameter(cmd, "NavCategory3", value.NavCategory3);
     AddParameter(cmd, "NavCategory4", value.NavCategory4);
     AddParameter(cmd, "NavCategoryFr1", value.NavCategoryFr1);
     AddParameter(cmd, "NavCategoryFr2", value.NavCategoryFr2);
     AddParameter(cmd, "NavCategoryFr3", value.NavCategoryFr3);
     AddParameter(cmd, "NavCategoryFr4", value.NavCategoryFr4);
     AddParameter(cmd, "Flag1", value.Flag1);
     AddParameter(cmd, "Flag2", value.Flag2);
     AddParameter(cmd, "Flag3", value.Flag3);
     AddParameter(cmd, "Flag4", value.Flag4);
     AddParameter(cmd, "Flag5", value.Flag5);
     AddParameter(cmd, "Flag6", value.Flag6);
     AddParameter(cmd, "Flag7", value.Flag7);
     AddParameter(cmd, "Flag8", value.Flag8);
     AddParameter(cmd, "Flag9", value.Flag9);
     AddParameter(cmd, "Flag10", value.Flag10);
     AddParameter(cmd, "Flag11", value.Flag11);
     AddParameter(cmd, "Flag12", value.Flag12);
     AddParameter(cmd, "CreatedOn",
         value.IsCreatedOnNull ? DBNull.Value : (object)value.CreatedOn);
     AddParameter(cmd, "UpdatedOn",
         value.IsUpdatedOnNull ? DBNull.Value : (object)value.UpdatedOn);
     AddParameter(cmd, "Locale", value.Locale);
     AddParameter(cmd, "PkId", value.PkId);
     return 0 != cmd.ExecuteNonQuery();
 }
 /// <summary>
 /// Adds a new record into the <c>MarketingInfo</c> table.
 /// </summary>
 /// <param name="value">The <see cref="MarketingInfoRow"/> object to be inserted.</param>
 public virtual void Insert(MarketingInfoRow value)
 {
     string sqlStr = "INSERT INTO [dbo].[MarketingInfo] (" +
         "[StyleNumber], " +
         "[SalesOrg], " +
         "[DistributionChannel], " +
         "[MarketingDescEn], " +
         "[MarketingDescFr], " +
         "[StyleKeywords], " +
         "[StyleSizeRun], " +
         "[NavCategory1], " +
         "[NavCategory2], " +
         "[NavCategory3], " +
         "[NavCategory4], " +
         "[NavCategoryFr1], " +
         "[NavCategoryFr2], " +
         "[NavCategoryFr3], " +
         "[NavCategoryFr4], " +
         "[Flag1], " +
         "[Flag2], " +
         "[Flag3], " +
         "[Flag4], " +
         "[Flag5], " +
         "[Flag6], " +
         "[Flag7], " +
         "[Flag8], " +
         "[Flag9], " +
         "[Flag10], " +
         "[Flag11], " +
         "[Flag12], " +
         "[CreatedOn], " +
         "[UpdatedOn], " +
         "[Locale]" +
         ") VALUES (" +
         _db.CreateSqlParameterName("StyleNumber") + ", " +
         _db.CreateSqlParameterName("SalesOrg") + ", " +
         _db.CreateSqlParameterName("DistributionChannel") + ", " +
         _db.CreateSqlParameterName("MarketingDescEn") + ", " +
         _db.CreateSqlParameterName("MarketingDescFr") + ", " +
         _db.CreateSqlParameterName("StyleKeywords") + ", " +
         _db.CreateSqlParameterName("StyleSizeRun") + ", " +
         _db.CreateSqlParameterName("NavCategory1") + ", " +
         _db.CreateSqlParameterName("NavCategory2") + ", " +
         _db.CreateSqlParameterName("NavCategory3") + ", " +
         _db.CreateSqlParameterName("NavCategory4") + ", " +
         _db.CreateSqlParameterName("NavCategoryFr1") + ", " +
         _db.CreateSqlParameterName("NavCategoryFr2") + ", " +
         _db.CreateSqlParameterName("NavCategoryFr3") + ", " +
         _db.CreateSqlParameterName("NavCategoryFr4") + ", " +
         _db.CreateSqlParameterName("Flag1") + ", " +
         _db.CreateSqlParameterName("Flag2") + ", " +
         _db.CreateSqlParameterName("Flag3") + ", " +
         _db.CreateSqlParameterName("Flag4") + ", " +
         _db.CreateSqlParameterName("Flag5") + ", " +
         _db.CreateSqlParameterName("Flag6") + ", " +
         _db.CreateSqlParameterName("Flag7") + ", " +
         _db.CreateSqlParameterName("Flag8") + ", " +
         _db.CreateSqlParameterName("Flag9") + ", " +
         _db.CreateSqlParameterName("Flag10") + ", " +
         _db.CreateSqlParameterName("Flag11") + ", " +
         _db.CreateSqlParameterName("Flag12") + ", " +
         _db.CreateSqlParameterName("CreatedOn") + ", " +
         _db.CreateSqlParameterName("UpdatedOn") + ", " +
         _db.CreateSqlParameterName("Locale") + ");SELECT @@IDENTITY";
     IDbCommand cmd = _db.CreateCommand(sqlStr);
     AddParameter(cmd, "StyleNumber", value.StyleNumber);
     AddParameter(cmd, "SalesOrg", value.SalesOrg);
     AddParameter(cmd, "DistributionChannel", value.DistributionChannel);
     AddParameter(cmd, "MarketingDescEn", value.MarketingDescEn);
     AddParameter(cmd, "MarketingDescFr", value.MarketingDescFr);
     AddParameter(cmd, "StyleKeywords", value.StyleKeywords);
     AddParameter(cmd, "StyleSizeRun", value.StyleSizeRun);
     AddParameter(cmd, "NavCategory1", value.NavCategory1);
     AddParameter(cmd, "NavCategory2", value.NavCategory2);
     AddParameter(cmd, "NavCategory3", value.NavCategory3);
     AddParameter(cmd, "NavCategory4", value.NavCategory4);
     AddParameter(cmd, "NavCategoryFr1", value.NavCategoryFr1);
     AddParameter(cmd, "NavCategoryFr2", value.NavCategoryFr2);
     AddParameter(cmd, "NavCategoryFr3", value.NavCategoryFr3);
     AddParameter(cmd, "NavCategoryFr4", value.NavCategoryFr4);
     AddParameter(cmd, "Flag1", value.Flag1);
     AddParameter(cmd, "Flag2", value.Flag2);
     AddParameter(cmd, "Flag3", value.Flag3);
     AddParameter(cmd, "Flag4", value.Flag4);
     AddParameter(cmd, "Flag5", value.Flag5);
     AddParameter(cmd, "Flag6", value.Flag6);
     AddParameter(cmd, "Flag7", value.Flag7);
     AddParameter(cmd, "Flag8", value.Flag8);
     AddParameter(cmd, "Flag9", value.Flag9);
     AddParameter(cmd, "Flag10", value.Flag10);
     AddParameter(cmd, "Flag11", value.Flag11);
     AddParameter(cmd, "Flag12", value.Flag12);
     AddParameter(cmd, "CreatedOn",
         value.IsCreatedOnNull ? DBNull.Value : (object)value.CreatedOn);
     AddParameter(cmd, "UpdatedOn",
         value.IsUpdatedOnNull ? DBNull.Value : (object)value.UpdatedOn);
     AddParameter(cmd, "Locale", value.Locale);
     value.PkId = Convert.ToInt32(cmd.ExecuteScalar());
 }
 /// <summary>
 /// Deletes the specified object from the <c>MarketingInfo</c> table.
 /// </summary>
 /// <param name="value">The <see cref="MarketingInfoRow"/> object to delete.</param>
 /// <returns>true if the record was deleted; otherwise, false.</returns>
 public bool Delete(MarketingInfoRow value)
 {
     return DeleteByPrimaryKey(value.PkId);
 }
 /// <summary>
 /// Converts <see cref="System.Data.DataRow"/> to <see cref="MarketingInfoRow"/>.
 /// </summary>
 /// <param name="row">The <see cref="System.Data.DataRow"/> object to be mapped.</param>
 /// <returns>A reference to the <see cref="MarketingInfoRow"/> object.</returns>
 protected virtual MarketingInfoRow MapRow(DataRow row)
 {
     MarketingInfoRow mappedObject = new MarketingInfoRow();
     DataTable dataTable = row.Table;
     DataColumn dataColumn;
     // Column "PkId"
     dataColumn = dataTable.Columns["PkId"];
     if(!row.IsNull(dataColumn))
         mappedObject.PkId = (int)row[dataColumn];
     // Column "StyleNumber"
     dataColumn = dataTable.Columns["StyleNumber"];
     if(!row.IsNull(dataColumn))
         mappedObject.StyleNumber = (string)row[dataColumn];
     // Column "SalesOrg"
     dataColumn = dataTable.Columns["SalesOrg"];
     if(!row.IsNull(dataColumn))
         mappedObject.SalesOrg = (string)row[dataColumn];
     // Column "DistributionChannel"
     dataColumn = dataTable.Columns["DistributionChannel"];
     if(!row.IsNull(dataColumn))
         mappedObject.DistributionChannel = (string)row[dataColumn];
     // Column "MarketingDescEn"
     dataColumn = dataTable.Columns["MarketingDescEn"];
     if(!row.IsNull(dataColumn))
         mappedObject.MarketingDescEn = (string)row[dataColumn];
     // Column "MarketingDescFr"
     dataColumn = dataTable.Columns["MarketingDescFr"];
     if(!row.IsNull(dataColumn))
         mappedObject.MarketingDescFr = (string)row[dataColumn];
     // Column "StyleKeywords"
     dataColumn = dataTable.Columns["StyleKeywords"];
     if(!row.IsNull(dataColumn))
         mappedObject.StyleKeywords = (string)row[dataColumn];
     // Column "StyleSizeRun"
     dataColumn = dataTable.Columns["StyleSizeRun"];
     if(!row.IsNull(dataColumn))
         mappedObject.StyleSizeRun = (string)row[dataColumn];
     // Column "NavCategory1"
     dataColumn = dataTable.Columns["NavCategory1"];
     if(!row.IsNull(dataColumn))
         mappedObject.NavCategory1 = (string)row[dataColumn];
     // Column "NavCategory2"
     dataColumn = dataTable.Columns["NavCategory2"];
     if(!row.IsNull(dataColumn))
         mappedObject.NavCategory2 = (string)row[dataColumn];
     // Column "NavCategory3"
     dataColumn = dataTable.Columns["NavCategory3"];
     if(!row.IsNull(dataColumn))
         mappedObject.NavCategory3 = (string)row[dataColumn];
     // Column "NavCategory4"
     dataColumn = dataTable.Columns["NavCategory4"];
     if(!row.IsNull(dataColumn))
         mappedObject.NavCategory4 = (string)row[dataColumn];
     // Column "NavCategoryFr1"
     dataColumn = dataTable.Columns["NavCategoryFr1"];
     if(!row.IsNull(dataColumn))
         mappedObject.NavCategoryFr1 = (string)row[dataColumn];
     // Column "NavCategoryFr2"
     dataColumn = dataTable.Columns["NavCategoryFr2"];
     if(!row.IsNull(dataColumn))
         mappedObject.NavCategoryFr2 = (string)row[dataColumn];
     // Column "NavCategoryFr3"
     dataColumn = dataTable.Columns["NavCategoryFr3"];
     if(!row.IsNull(dataColumn))
         mappedObject.NavCategoryFr3 = (string)row[dataColumn];
     // Column "NavCategoryFr4"
     dataColumn = dataTable.Columns["NavCategoryFr4"];
     if(!row.IsNull(dataColumn))
         mappedObject.NavCategoryFr4 = (string)row[dataColumn];
     // Column "Flag1"
     dataColumn = dataTable.Columns["Flag1"];
     if(!row.IsNull(dataColumn))
         mappedObject.Flag1 = (string)row[dataColumn];
     // Column "Flag2"
     dataColumn = dataTable.Columns["Flag2"];
     if(!row.IsNull(dataColumn))
         mappedObject.Flag2 = (string)row[dataColumn];
     // Column "Flag3"
     dataColumn = dataTable.Columns["Flag3"];
     if(!row.IsNull(dataColumn))
         mappedObject.Flag3 = (string)row[dataColumn];
     // Column "Flag4"
     dataColumn = dataTable.Columns["Flag4"];
     if(!row.IsNull(dataColumn))
         mappedObject.Flag4 = (string)row[dataColumn];
     // Column "Flag5"
     dataColumn = dataTable.Columns["Flag5"];
     if(!row.IsNull(dataColumn))
         mappedObject.Flag5 = (string)row[dataColumn];
     // Column "Flag6"
     dataColumn = dataTable.Columns["Flag6"];
     if(!row.IsNull(dataColumn))
         mappedObject.Flag6 = (string)row[dataColumn];
     // Column "Flag7"
     dataColumn = dataTable.Columns["Flag7"];
     if(!row.IsNull(dataColumn))
         mappedObject.Flag7 = (string)row[dataColumn];
     // Column "Flag8"
     dataColumn = dataTable.Columns["Flag8"];
     if(!row.IsNull(dataColumn))
         mappedObject.Flag8 = (string)row[dataColumn];
     // Column "Flag9"
     dataColumn = dataTable.Columns["Flag9"];
     if(!row.IsNull(dataColumn))
         mappedObject.Flag9 = (string)row[dataColumn];
     // Column "Flag10"
     dataColumn = dataTable.Columns["Flag10"];
     if(!row.IsNull(dataColumn))
         mappedObject.Flag10 = (string)row[dataColumn];
     // Column "Flag11"
     dataColumn = dataTable.Columns["Flag11"];
     if(!row.IsNull(dataColumn))
         mappedObject.Flag11 = (string)row[dataColumn];
     // Column "Flag12"
     dataColumn = dataTable.Columns["Flag12"];
     if(!row.IsNull(dataColumn))
         mappedObject.Flag12 = (string)row[dataColumn];
     // Column "CreatedOn"
     dataColumn = dataTable.Columns["CreatedOn"];
     if(!row.IsNull(dataColumn))
         mappedObject.CreatedOn = (System.DateTime)row[dataColumn];
     // Column "UpdatedOn"
     dataColumn = dataTable.Columns["UpdatedOn"];
     if(!row.IsNull(dataColumn))
         mappedObject.UpdatedOn = (System.DateTime)row[dataColumn];
     // Column "Locale"
     dataColumn = dataTable.Columns["Locale"];
     if (!row.IsNull(dataColumn))
         mappedObject.Locale = (string)row[dataColumn];
     return mappedObject;
 }
        public static string AddMarketingInfoToDb(DataTable marketingInfo, string locale)
        {
            int rowCountInserted = 0;
            int rowCountUpdated = 0;

            try
            {
                using (var db = new B2BProductCatalog())
                {
                    for (int i = 0; i < marketingInfo.Rows.Count; i++)
                    {
                        if (!string.IsNullOrEmpty(marketingInfo.Rows[i]["Style"].ToString()) && marketingInfo.Rows[i]["Style"].ToString() != "0")
                        {
                            var row = new MarketingInfoRow
                            {
                                StyleNumber = marketingInfo.Rows[i]["Style"].ToString().TrimEnd(),
                                SalesOrg = SalesOrg,
                                DistributionChannel = DistChan,
                                Locale = locale
                            };

                            // Optional fields
                            if (marketingInfo.Rows[i]["Marketing Description"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Marketing Description"].ToString()))
                                row.MarketingDescEn = TruncateString(marketingInfo.Rows[i]["Marketing Description"].ToString(), 4000);
                            if (marketingInfo.Rows[i]["Marketing Description (FR)"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Marketing Description (FR)"].ToString()))
                                row.MarketingDescFr = TruncateString(marketingInfo.Rows[i]["Marketing Description (FR)"].ToString(), 4000);
                            if (marketingInfo.Rows[i]["Keywords"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Keywords"].ToString()))
                                row.StyleKeywords = TruncateString(marketingInfo.Rows[i]["Keywords"].ToString(), 1000);
                            if (marketingInfo.Rows[i]["Size Run"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Size Run"].ToString()))
                                row.StyleSizeRun = TruncateString(marketingInfo.Rows[i]["Size Run"].ToString(), 75);
                            if (marketingInfo.Rows[i]["Cat1"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Cat1"].ToString()))
                                row.NavCategory1 = TruncateString(marketingInfo.Rows[i]["Cat1"].ToString(), 100);
                            if (marketingInfo.Rows[i]["Cat2"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Cat2"].ToString()))
                                row.NavCategory2 = TruncateString(marketingInfo.Rows[i]["Cat2"].ToString(), 100);
                            if (marketingInfo.Rows[i]["Cat3"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Cat3"].ToString()))
                                row.NavCategory3 = TruncateString(marketingInfo.Rows[i]["Cat3"].ToString(), 100);
                            if (marketingInfo.Rows[i]["Cat4"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Cat4"].ToString()))
                                row.NavCategory4 = TruncateString(marketingInfo.Rows[i]["Cat4"].ToString(), 100);
                            if (marketingInfo.Columns.Contains("Cat1 (FR)") && marketingInfo.Rows[i]["Cat1 (FR)"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Cat1 (FR)"].ToString()))
                                row.NavCategoryFr1 = TruncateString(marketingInfo.Rows[i]["Cat1 (FR)"].ToString(), 100);
                            if (marketingInfo.Columns.Contains("Cat2 (FR)") && marketingInfo.Rows[i]["Cat2 (FR)"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Cat2 (FR)"].ToString()))
                                row.NavCategoryFr2 = TruncateString(marketingInfo.Rows[i]["Cat2 (FR)"].ToString(), 100);
                            if (marketingInfo.Columns.Contains("Cat3 (FR)") && marketingInfo.Rows[i]["Cat3 (FR)"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Cat3 (FR)"].ToString()))
                                row.NavCategoryFr3 = TruncateString(marketingInfo.Rows[i]["Cat3 (FR)"].ToString(), 100);
                            if (marketingInfo.Columns.Contains("Cat4 (FR)") && marketingInfo.Rows[i]["Cat4 (FR)"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Cat4 (FR)"].ToString()))
                                row.NavCategoryFr4 = TruncateString(marketingInfo.Rows[i]["Cat4 (FR)"].ToString(), 100);

                            // Flags written first, set MarketingInfo Flag fields to corresponding FlagId
                            if (marketingInfo.Rows[i]["Flag 1"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Flag 1"].ToString()))
                            {
                                var flagInfoRow = db.FlagInfoCollection.GetByFlagName(marketingInfo.Rows[i]["Flag 1"].ToString(), SalesOrg, DistChan, locale);
                                if (flagInfoRow != null)
                                    row.Flag1 = flagInfoRow.FlagId;
                            }
                            if (marketingInfo.Rows[i]["Flag 2"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Flag 2"].ToString()))
                            {
                                var flagInfoRow = db.FlagInfoCollection.GetByFlagName(marketingInfo.Rows[i]["Flag 2"].ToString(), SalesOrg, DistChan, locale);
                                if (flagInfoRow != null)
                                    row.Flag2 = flagInfoRow.FlagId;
                            }
                            if (marketingInfo.Rows[i]["Flag 3"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Flag 3"].ToString()))
                            {
                                var flagInfoRow = db.FlagInfoCollection.GetByFlagName(marketingInfo.Rows[i]["Flag 3"].ToString(), SalesOrg, DistChan, locale);
                                if (flagInfoRow != null)
                                    row.Flag3 = flagInfoRow.FlagId;
                            }
                            if (marketingInfo.Rows[i]["Flag 4"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Flag 4"].ToString()))
                            {
                                var flagInfoRow = db.FlagInfoCollection.GetByFlagName(marketingInfo.Rows[i]["Flag 4"].ToString(), SalesOrg, DistChan, locale);
                                if (flagInfoRow != null)
                                    row.Flag4 = flagInfoRow.FlagId;
                            }
                            if (marketingInfo.Rows[i]["Flag 5"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Flag 5"].ToString()))
                            {
                                var flagInfoRow = db.FlagInfoCollection.GetByFlagName(marketingInfo.Rows[i]["Flag 5"].ToString(), SalesOrg, DistChan, locale);
                                if (flagInfoRow != null)
                                    row.Flag5 = flagInfoRow.FlagId;
                            }
                            if (marketingInfo.Rows[i]["Flag 6"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Flag 6"].ToString()))
                            {
                                var flagInfoRow = db.FlagInfoCollection.GetByFlagName(marketingInfo.Rows[i]["Flag 6"].ToString(), SalesOrg, DistChan, locale);
                                if (flagInfoRow != null)
                                    row.Flag6 = flagInfoRow.FlagId;
                            }
                            if (marketingInfo.Rows[i]["Flag 7"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Flag 7"].ToString()))
                            {
                                var flagInfoRow = db.FlagInfoCollection.GetByFlagName(marketingInfo.Rows[i]["Flag 7"].ToString(), SalesOrg, DistChan, locale);
                                if (flagInfoRow != null)
                                    row.Flag7 = flagInfoRow.FlagId;
                            }
                            if (marketingInfo.Rows[i]["Flag 8"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Flag 8"].ToString()))
                            {
                                var flagInfoRow = db.FlagInfoCollection.GetByFlagName(marketingInfo.Rows[i]["Flag 8"].ToString(), SalesOrg, DistChan, locale);
                                if (flagInfoRow != null)
                                    row.Flag8 = flagInfoRow.FlagId;
                            }
                            if (marketingInfo.Rows[i]["Flag 9"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Flag 9"].ToString()))
                            {
                                var flagInfoRow = db.FlagInfoCollection.GetByFlagName(marketingInfo.Rows[i]["Flag 9"].ToString(), SalesOrg, DistChan, locale);
                                if (flagInfoRow != null)
                                    row.Flag9 = flagInfoRow.FlagId;
                            }
                            if (marketingInfo.Rows[i]["Flag 10"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Flag 10"].ToString()))
                            {
                                var flagInfoRow = db.FlagInfoCollection.GetByFlagName(marketingInfo.Rows[i]["Flag 10"].ToString(), SalesOrg, DistChan, locale);
                                if (flagInfoRow != null)
                                    row.Flag10 = flagInfoRow.FlagId;
                            }
                            if (marketingInfo.Rows[i]["Flag 11"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Flag 11"].ToString()))
                            {
                                var flagInfoRow = db.FlagInfoCollection.GetByFlagName(marketingInfo.Rows[i]["Flag 11"].ToString(), SalesOrg, DistChan, locale);
                                if (flagInfoRow != null)
                                    row.Flag11 = flagInfoRow.FlagId;
                            }
                            if (marketingInfo.Rows[i]["Flag 12"] != null
                                && !string.IsNullOrEmpty(marketingInfo.Rows[i]["Flag 12"].ToString()))
                            {
                                var flagInfoRow = db.FlagInfoCollection.GetByFlagName(marketingInfo.Rows[i]["Flag 12"].ToString(), SalesOrg, DistChan, locale);
                                if (flagInfoRow != null)
                                    row.Flag12 = flagInfoRow.FlagId;
                            }

                            var marketingInfoRow = db.MarketingInfoCollection.GetByStyleNumberSOandDC(row.StyleNumber, row.SalesOrg, row.DistributionChannel, locale);

                            if (marketingInfoRow == null)
                            {
                                row.CreatedOn = DateTime.Now;
                                db.MarketingInfoCollection.Insert(row);
                                rowCountInserted++;
                            }
                            else
                            {
                                row.PkId = marketingInfoRow.PkId;
                                row.UpdatedOn = DateTime.Now;
                                db.MarketingInfoCollection.Update(row);
                                rowCountUpdated++;
                            }

                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Log.ErrorFormat("Error inserting values into MarketingInfo table. Exception: {0}", ex.Message);
            }

            return string.Format("{0}_{1}", rowCountInserted, rowCountUpdated);
        }