public void Save() { using (B2BProductCatalog database = new B2BProductCatalog()) { database.B2CProductDataCollection.Update(this); } }
public void Insert() { using (B2BProductCatalog database = new B2BProductCatalog()) { database.B2CProductDataCollection.Insert(this); } }
/// <summary> /// Filters the current marketing and flag data in the database against the ITE file supplied. /// Note: All of the exception tables' UpdatedOn fields contain current time for ease of search. /// </summary> /// <param name="filepath">Path to ITE file.</param> /// <returns>Numbers of exceptions.</returns> public static string FilterByITE(string filepath, string locale, bool checkForAllBrands) { var iteTable = new DataTable("ITETable"); var dataColumn = iteTable.Columns.Add("StyleNumber", typeof(string)); dataColumn.MaxLength = 18; dataColumn = iteTable.Columns.Add("SalesOrg", typeof(string)); dataColumn.MaxLength = 4; dataColumn = iteTable.Columns.Add("DistributionChannel", typeof(string)); dataColumn.MaxLength = 2; try { using (var streamReader = new StreamReader(filepath, Encoding.UTF8)) { iteTable.BeginLoadData(); var values = new object[3]; while (streamReader.Peek() != -1) { string line = streamReader.ReadLine(); if (!string.IsNullOrEmpty(line)) { var sections = line.Split('|'); values[0] = sections[1]; // StyleNumber values[1] = sections[29]; // SalesOrg values[2] = sections[27]; // DistChan iteTable.LoadDataRow(values, true); } } iteTable.EndLoadData(); } } catch (Exception ex) { Log.ErrorFormat("Error when reading ITE. Exception: {0}", ex.Message); throw; } if (checkForAllBrands) { try { if (!ITEContainsAllBrands(iteTable, locale)) { // ITE is missing a brand. Wipe data and move on to next locale. ClearData(locale, false); return "break"; } } catch (Exception ex) { Log.ErrorFormat("Error when checking ITE for all brands. Exception: {0}", ex.Message); return "break"; } } var db = new B2BProductCatalog(); DataTable marketingDataTable = db.MarketingInfoCollection.GetAllByLocale(locale); // Remove marketing info that is not in ITE file and move to exceptions table var exceptionsRows = (from DataRow marketingRow in marketingDataTable.Rows where !iteTable.Rows.Cast<DataRow>() .Any(iteRow => iteRow["StyleNumber"].ToString() == marketingRow["StyleNumber"].ToString() && iteRow["SalesOrg"].ToString() == marketingRow["SalesOrg"].ToString() && iteRow["DistributionChannel"].ToString() == marketingRow["DistributionChannel"].ToString()) select new MarketingInfo_ExceptionsRow { StyleNumber = marketingRow["StyleNumber"].ToString(), SalesOrg = !string.IsNullOrEmpty(marketingRow["SalesOrg"].ToString()) ? marketingRow["SalesOrg"].ToString() : null, DistributionChannel = !string.IsNullOrEmpty(marketingRow["DistributionChannel"].ToString()) ? marketingRow["DistributionChannel"].ToString() : null, MarketingDescEn = !string.IsNullOrEmpty(marketingRow["MarketingDescEn"].ToString()) ? marketingRow["MarketingDescEn"].ToString() : null, MarketingDescFr = !string.IsNullOrEmpty(marketingRow["MarketingDescFr"].ToString()) ? marketingRow["MarketingDescFr"].ToString() : null, StyleKeywords = !string.IsNullOrEmpty(marketingRow["StyleKeywords"].ToString()) ? marketingRow["StyleKeywords"].ToString() : null, StyleSizeRun = !string.IsNullOrEmpty(marketingRow["StyleSizeRun"].ToString()) ? marketingRow["StyleSizeRun"].ToString() : null, NavCategory1 = !string.IsNullOrEmpty(marketingRow["NavCategory1"].ToString()) ? marketingRow["NavCategory1"].ToString() : null, NavCategory2 = !string.IsNullOrEmpty(marketingRow["NavCategory2"].ToString()) ? marketingRow["NavCategory2"].ToString() : null, NavCategory3 = !string.IsNullOrEmpty(marketingRow["NavCategory3"].ToString()) ? marketingRow["NavCategory3"].ToString() : null, NavCategory4 = !string.IsNullOrEmpty(marketingRow["NavCategory4"].ToString()) ? marketingRow["NavCategory4"].ToString() : null, NavCategoryFr1 = !string.IsNullOrEmpty(marketingRow["NavCategoryFr1"].ToString()) ? marketingRow["NavCategoryFr1"].ToString() : null, NavCategoryFr2 = !string.IsNullOrEmpty(marketingRow["NavCategoryFr2"].ToString()) ? marketingRow["NavCategoryFr2"].ToString() : null, NavCategoryFr3 = !string.IsNullOrEmpty(marketingRow["NavCategoryFr3"].ToString()) ? marketingRow["NavCategoryFr3"].ToString() : null, NavCategoryFr4 = !string.IsNullOrEmpty(marketingRow["NavCategoryFr4"].ToString()) ? marketingRow["NavCategoryFr4"].ToString() : null, Flag1 = !string.IsNullOrEmpty(marketingRow["Flag1"].ToString()) ? marketingRow["Flag1"].ToString() : null, Flag2 = !string.IsNullOrEmpty(marketingRow["Flag2"].ToString()) ? marketingRow["Flag2"].ToString() : null, Flag3 = !string.IsNullOrEmpty(marketingRow["Flag3"].ToString()) ? marketingRow["Flag3"].ToString() : null, Flag4 = !string.IsNullOrEmpty(marketingRow["Flag4"].ToString()) ? marketingRow["Flag4"].ToString() : null, Flag5 = !string.IsNullOrEmpty(marketingRow["Flag5"].ToString()) ? marketingRow["Flag5"].ToString() : null, Flag6 = !string.IsNullOrEmpty(marketingRow["Flag6"].ToString()) ? marketingRow["Flag6"].ToString() : null, Flag7 = !string.IsNullOrEmpty(marketingRow["Flag7"].ToString()) ? marketingRow["Flag7"].ToString() : null, Flag8 = !string.IsNullOrEmpty(marketingRow["Flag8"].ToString()) ? marketingRow["Flag8"].ToString() : null, Flag9 = !string.IsNullOrEmpty(marketingRow["Flag9"].ToString()) ? marketingRow["Flag9"].ToString() : null, Flag10 = !string.IsNullOrEmpty(marketingRow["Flag10"].ToString()) ? marketingRow["Flag10"].ToString() : null, Flag11 = !string.IsNullOrEmpty(marketingRow["Flag11"].ToString()) ? marketingRow["Flag11"].ToString() : null, Flag12 = !string.IsNullOrEmpty(marketingRow["Flag12"].ToString()) ? marketingRow["Flag12"].ToString() : null, CreatedOn = marketingRow["CreatedOn"] != DBNull.Value ? DateTime.Parse(marketingRow["CreatedOn"].ToString()) : DateTime.Now, UpdatedOn = DateTime.Now, IsCreatedOnNull = marketingRow["CreatedOn"] == DBNull.Value, Locale = locale }).ToList(); int marketingInfoExceptions = 0; foreach (var row in exceptionsRows) { db.MarketingInfoCollection.Delete(string.Format("StyleNumber = '{0}' AND SalesOrg = '{1}' AND DistributionChannel = '{2}'", row.StyleNumber, row.SalesOrg, row.DistributionChannel)); db.MarketingInfo_ExceptionsCollection.Insert(row); marketingInfoExceptions++; } var flagsDataTable = db.FlagInfoCollection.GetAllAsDataTable(); // Remove any orphaned flags and move to exceptions var flagInfoRows = (from DataRow flagsRow in flagsDataTable.Rows where !marketingDataTable.Rows.Cast<DataRow>() .Any(marketingRow => flagsRow["FlagId"].ToString() == marketingRow["Flag1"].ToString() || flagsRow["FlagId"].ToString() == marketingRow["Flag2"].ToString() || flagsRow["FlagId"].ToString() == marketingRow["Flag3"].ToString() || flagsRow["FlagId"].ToString() == marketingRow["Flag4"].ToString() || flagsRow["FlagId"].ToString() == marketingRow["Flag5"].ToString() || flagsRow["FlagId"].ToString() == marketingRow["Flag6"].ToString() || flagsRow["FlagId"].ToString() == marketingRow["Flag7"].ToString() || flagsRow["FlagId"].ToString() == marketingRow["Flag8"].ToString() || flagsRow["FlagId"].ToString() == marketingRow["Flag9"].ToString() || flagsRow["FlagId"].ToString() == marketingRow["Flag10"].ToString() || flagsRow["FlagId"].ToString() == marketingRow["Flag11"].ToString() || flagsRow["FlagId"].ToString() == marketingRow["Flag12"].ToString()) select new FlagInfo_ExceptionsRow { FlagId = !string.IsNullOrEmpty(flagsRow["FlagId"].ToString()) ? flagsRow["FlagId"].ToString() : null, FlagName = flagsRow["FlagName"].ToString(), FlagNameFr = !string.IsNullOrEmpty(flagsRow["FlagNameFr"].ToString()) ? flagsRow["FlagNameFr"].ToString() : null, FlagDescription = !string.IsNullOrEmpty(flagsRow["FlagDescription"].ToString()) ? flagsRow["FlagDescription"].ToString() : null, FlagDescriptionFr = !string.IsNullOrEmpty(flagsRow["FlagDescriptionFr"].ToString()) ? flagsRow["FlagDescriptionFr"].ToString() : null, Category = flagsRow["Category"].ToString(), FileName = !string.IsNullOrEmpty(flagsRow["FileName"].ToString()) ? flagsRow["FileName"].ToString() : null, SalesOrg = flagsRow["SalesOrg"].ToString(), DistributionChannel = flagsRow["DistributionChannel"].ToString(), Sequence = flagsRow["Sequence"] != DBNull.Value ? (int)flagsRow["Sequence"] : 0, IsSequenceNull = flagsRow["Sequence"] == DBNull.Value, CreatedOn = flagsRow["CreatedOn"] != DBNull.Value ? DateTime.Parse(flagsRow["CreatedOn"].ToString()) : DateTime.Now, UpdatedOn = DateTime.Now, IsCreatedOnNull = flagsRow["CreatedOn"] == DBNull.Value, Locale = locale }).ToList(); int flagInfoExceptions = 0; foreach (var row in flagInfoRows) { db.FlagInfoCollection.Delete(string.Format("FlagId = '{0}'", row.FlagId)); db.FlagInfo_ExceptionsCollection.Insert(row); flagInfoExceptions++; } var flagCategoriesDataTable = db.FlagCategoryCollection.GetAllAsDataTable(); // Remove any orphaned flag categories and move to exceptions var flagCategoryRows = (from DataRow categoryRow in flagCategoriesDataTable.Rows where !flagsDataTable.Rows.Cast<DataRow>() .Any(flagsRow => categoryRow["Category"].ToString() == flagsRow["Category"].ToString() && (categoryRow["SalesOrg"].ToString() == flagsRow["SalesOrg"].ToString() && categoryRow["DistributionChannel"].ToString() == flagsRow["DistributionChannel"].ToString())) select new FlagCategory_ExceptionsRow { Category = categoryRow["Category"].ToString(), CategoryId = categoryRow["CategoryId"].ToString(), Sequence = categoryRow["Sequence"] != DBNull.Value ? (int)categoryRow["Sequence"] : 0, SalesOrg = categoryRow["SalesOrg"].ToString(), DistributionChannel = categoryRow["DistributionChannel"].ToString(), CreatedOn = categoryRow["CreatedOn"] != DBNull.Value ? DateTime.Parse(categoryRow["CreatedOn"].ToString()) : DateTime.Now, UpdatedOn = DateTime.Now, IsCreatedOnNull = categoryRow["CreatedOn"] == DBNull.Value, Locale = locale }).ToList(); int categoryExceptions = 0; foreach (var row in flagCategoryRows) { db.FlagCategoryCollection.Delete(string.Format("CategoryId = '{0}'", row.CategoryId)); db.FlagCategory_ExceptionsCollection.Insert(row); categoryExceptions++; } return string.Format("{0}_{1}_{2}_{3}_{4}_{5}_{6}", marketingInfoExceptions, iteTable.Rows.Count, marketingDataTable.Rows.Count, flagInfoExceptions, flagsDataTable.Rows.Count, categoryExceptions, flagCategoriesDataTable.Rows.Count); }
/// <summary> /// Initializes a new instance of the <see cref="FlagInfoCollection_Base"/> /// class with the specified <see cref="B2BProductCatalog"/>. /// </summary> /// <param name="db">The <see cref="B2BProductCatalog"/> object.</param> public FlagInfoCollection_Base(B2BProductCatalog db) { _db = db; }
/// <summary> /// Initializes a new instance of the <see cref="FlagCategory_ExceptionsCollection"/> class. /// </summary> /// <param name="db">The database object.</param> internal FlagCategory_ExceptionsCollection(B2BProductCatalog db) : base(db) { // EMPTY }
protected void btnRunB2CMarketingUpdate_Click(object sender, EventArgs e) { string salesOrg = ddlBrand.SelectedItem.Value.Split('~')[0]; string dc = ddlBrand.SelectedItem.Value.Split('~')[1]; DataTable marketingDataTable = new DataTable(); //if cbForceB2C is checked then overwrite what's in the database with Marketing Info from B2C bool forceB2C = cbForceB2C.Checked; int countOfUpdatedEn = 0; int countOfUpdatedFr = 0; var db = new B2BProductCatalog(); if (salesOrg == "0000" && dc == "00") //get all entries for selected SalesOrg, DistributtionChannel marketingDataTable = db.MarketingInfoCollection.GetAllAsDataTable(); else marketingDataTable = db.MarketingInfoCollection.GetAsDataTable( string.Format("SalesOrg='{0}' AND DistributionChannel='{1}'", salesOrg, dc), ""); for (int i = 0; i < marketingDataTable.Rows.Count; i++) { if (string.IsNullOrEmpty(marketingDataTable.Rows[i]["MarketingDescEn"].ToString()) || forceB2C) { var row = db.B2CProductDataCollection.GetByStyleNumber(marketingDataTable.Rows[i]["StyleNumber"].ToString()); if (row != null) if (!string.IsNullOrEmpty(row.ProductDescEn)) { marketingDataTable.Rows[i].BeginEdit(); marketingDataTable.Rows[i]["MarketingDescEn"] = row.ProductDescEn; marketingDataTable.Rows[i].EndEdit(); countOfUpdatedEn++; } } if (string.IsNullOrEmpty(marketingDataTable.Rows[i]["MarketingDescFr"].ToString()) || forceB2C) { var row = db.B2CProductDataCollection.GetByStyleNumber(marketingDataTable.Rows[i]["StyleNumber"].ToString()); if (row != null) if (!string.IsNullOrEmpty(row.ProductDescFr)) { marketingDataTable.Rows[i].BeginEdit(); marketingDataTable.Rows[i]["MarketingDescFr"] = row.ProductDescFr; marketingDataTable.Rows[i].EndEdit(); countOfUpdatedFr++; } } } //try to run the update db.MarketingInfoCollection.Update(marketingDataTable); lblSuccess.Visible = true; lblSuccess.Text = string.Format("{0} styles updated with English and {1} styles updated with French marketing B2C description.", countOfUpdatedEn, countOfUpdatedFr); }
/// <summary> /// Initializes a new instance of the <see cref="BrandCollection"/> class. /// </summary> /// <param name="db">The database object.</param> internal BrandCollection(B2BProductCatalog db) : base(db) { // EMPTY }
/// <summary> /// Initializes a new instance of the <see cref="SAPFileCheckCollection_Base"/> /// class with the specified <see cref="B2BProductCatalog"/>. /// </summary> /// <param name="db">The <see cref="B2BProductCatalog"/> object.</param> public SAPFileCheckCollection_Base(B2BProductCatalog db) { _db = db; }
public static void CreateFlgFile(string filePath, string locale) { var db = new B2BProductCatalog(); var flagInfoTable = db.FlagInfoCollection.GetFlagInfoWithCategoryId(); try { using (var streamWriter = new StreamWriter(filePath, false, Encoding.GetEncoding(1252))) { foreach (DataRow dataRow in flagInfoTable.Rows) { streamWriter.Write(GetLocationAbbreviation(locale) + "|"); // FlagId streamWriter.Write(!Convert.IsDBNull(dataRow[0]) ? string.Format("{0}|", StripBadCharacters(dataRow[0].ToString())) : "|"); // FlagName (use N/A if missing) string flagNameEn = (!Convert.IsDBNull(dataRow[1]) ? StripBadCharacters(dataRow[1].ToString()) : "N/A"); streamWriter.Write(string.Format("{0}|", flagNameEn)); // FlagNameFr (iCongo requires English if French is missing) string flagNameFr = (!Convert.IsDBNull(dataRow[2]) ? StripBadCharacters(dataRow[2].ToString()) : "N/A"); streamWriter.Write(flagNameFr!="N/A" ? string.Format("{0}|", flagNameFr) : string.Format("{0}|", flagNameEn)); // FlagDescription (use N/A if missing) streamWriter.Write(!Convert.IsDBNull(dataRow[3]) ? string.Format("{0}|", StripBadCharacters(dataRow[3].ToString())) : "N/A|"); // FlagDescriptionFr if (!Convert.IsDBNull(dataRow[4])) //French Flag Description Exists streamWriter.Write(string.Format("{0}|", StripBadCharacters(dataRow[4].ToString()))); else { //French Flag Description is missing streamWriter.Write(!Convert.IsDBNull(dataRow[3]) ? string.Format("{0}|", StripBadCharacters(dataRow[3].ToString())) : "N/A|"); } // SalesOrg streamWriter.Write(!Convert.IsDBNull(dataRow[5]) ? string.Format("{0}|", StripBadCharacters(dataRow[5].ToString())) : "|"); // DistributionChannel streamWriter.Write(!Convert.IsDBNull(dataRow[6]) ? string.Format("{0}|", StripBadCharacters(dataRow[6].ToString())) : "|"); // CategoryId streamWriter.Write(!Convert.IsDBNull(dataRow[7]) ? string.Format("{0}|", StripBadCharacters(dataRow[7].ToString())) : "|"); // Sequence streamWriter.Write(!Convert.IsDBNull(dataRow[8]) ? string.Format("{0}|", StripBadCharacters(dataRow[8].ToString())) : "|"); // Send 'C' for 'Create' streamWriter.Write("C" + streamWriter.NewLine); } } } catch (Exception ex) { Log.ErrorFormat("Error creating FLG file. Exception: {0}", ex.Message); } }
public static void CreateFlcFile(string filePath, string locale) { var db = new B2BProductCatalog(); var flagInfoTable = db.FlagCategoryCollection.GetAllAsDataTable(); try { using (var streamWriter = new StreamWriter(filePath, false, Encoding.GetEncoding(1252))) { foreach (DataRow dataRow in flagInfoTable.Rows) { streamWriter.Write(GetLocationAbbreviation(locale) + "|"); // SalesOrg streamWriter.Write(!Convert.IsDBNull(dataRow[5]) ? string.Format("{0}|", StripBadCharacters(dataRow[5].ToString())) : "|"); // DistributionChannel streamWriter.Write(!Convert.IsDBNull(dataRow[6]) ? string.Format("{0}|", StripBadCharacters(dataRow[6].ToString())) : "|"); // CategoryId streamWriter.Write(!Convert.IsDBNull(dataRow[3]) ? string.Format("{0}|", StripBadCharacters(dataRow[3].ToString())) : "|"); // FlagCategoryName, pipe in N/A if empty streamWriter.Write(!Convert.IsDBNull(dataRow[1]) ? string.Format("{0}|", HTMLEncodeSpecialChars(StripBadCharacters(dataRow[1].ToString()))) : "N/A|"); // FlagCategoryNameFr if (!Convert.IsDBNull(dataRow[2])) //French Flag Category Name Exists streamWriter.Write(string.Format("{0}|", HTMLEncodeSpecialChars(StripBadCharacters(dataRow[2].ToString())))); else { //French Flag Category Name is missing streamWriter.Write(!Convert.IsDBNull(dataRow[1]) ? string.Format("{0}|", StripBadCharacters(dataRow[1].ToString())) : "N/A|"); } // Sequence, if blank send 9999 streamWriter.Write(!Convert.IsDBNull(dataRow[4]) ? string.Format("{0}|", StripBadCharacters(dataRow[4].ToString())) : "9999|"); // Send 'C' for 'Create' streamWriter.Write("C" + streamWriter.NewLine); } } } catch (Exception ex) { Log.ErrorFormat("Error creating FLC file. Exception: {0}", ex.Message); } }
/// <summary> /// Removes all existing marketing and flag info from the database. /// </summary> /// <param name="locale">Location to match</param> /// <param name="backupFirst">Insert existing data into backup tables before clearing.</param> public static void ClearData(string locale, bool backupFirst) { var db = new B2BProductCatalog(); // Backup data in marketing/flags tables if (backupFirst) { foreach (var row in db.MarketingInfoCollection.GetAsArray("Locale='" + locale + "'", "")) { var backup = new MarketingInfo_BackupRow { StyleNumber = row.StyleNumber, SalesOrg = row.SalesOrg, DistributionChannel = row.DistributionChannel, StyleSizeRun = row.StyleSizeRun, StyleKeywords = row.StyleKeywords, MarketingDescEn = row.MarketingDescEn, MarketingDescFr = row.MarketingDescFr, NavCategory1 = row.NavCategory1, NavCategory2 = row.NavCategory2, NavCategory3 = row.NavCategory3, NavCategory4 = row.NavCategory4, NavCategoryFr1 = row.NavCategoryFr1, NavCategoryFr2 = row.NavCategoryFr2, NavCategoryFr3 = row.NavCategoryFr3, NavCategoryFr4 = row.NavCategoryFr4, Flag1 = row.Flag1, Flag2 = row.Flag2, Flag3 = row.Flag3, Flag4 = row.Flag4, Flag5 = row.Flag5, Flag6 = row.Flag6, Flag7 = row.Flag7, Flag8 = row.Flag8, Flag9 = row.Flag9, Flag10 = row.Flag10, Flag11 = row.Flag11, Flag12 = row.Flag12, CreatedOn = !row.IsCreatedOnNull ? row.CreatedOn : DateTime.MinValue, UpdatedOn = !row.IsUpdatedOnNull ? row.UpdatedOn : DateTime.MinValue, IsCreatedOnNull = row.IsCreatedOnNull, IsUpdatedOnNull = row.IsUpdatedOnNull, Locale = row.Locale }; db.MarketingInfo_BackupCollection.Insert(backup); } foreach (var row in db.FlagInfoCollection.GetAsArray("Locale='" + locale + "'", "")) { var backup = new FlagInfo_BackupRow { FlagId = row.FlagId, FlagName = row.FlagName, FlagNameFr = row.FlagNameFr, FlagDescription = row.FlagDescription, FlagDescriptionFr = row.FlagDescriptionFr, SalesOrg = row.SalesOrg, DistributionChannel = row.DistributionChannel, Category = row.Category, Sequence = row.Sequence, FileName = row.FileName, CreatedOn = !row.IsCreatedOnNull ? row.CreatedOn : DateTime.MinValue, UpdatedOn = !row.IsUpdatedOnNull ? row.UpdatedOn : DateTime.MinValue, IsCreatedOnNull = row.IsCreatedOnNull, IsUpdatedOnNull = row.IsUpdatedOnNull, Locale = row.Locale }; db.FlagInfo_BackupCollection.Insert(backup); } foreach (var row in db.FlagCategoryCollection.GetAsArray("Locale='" + locale + "'", "")) { var backup = new FlagCategory_BackupRow { CategoryId = row.CategoryId, Category = row.Category, SalesOrg = row.SalesOrg, DistributionChannel = row.DistributionChannel, Sequence = row.Sequence, CreatedOn = !row.IsCreatedOnNull ? row.CreatedOn : DateTime.MinValue, UpdatedOn = !row.IsUpdatedOnNull ? row.UpdatedOn : DateTime.MinValue, IsCreatedOnNull = row.IsCreatedOnNull, IsUpdatedOnNull = row.IsUpdatedOnNull, Locale = row.Locale }; db.FlagCategory_BackupCollection.Insert(backup); } } // Delete the records by locale db.MarketingInfoCollection.Delete("Locale='" + locale + "'"); db.FlagInfoCollection.Delete("Locale='" + locale + "'"); db.FlagCategoryCollection.Delete("Locale='" + locale + "'"); }
/// <summary> /// Checks a SAP file's line count against the previous line count to make sure it's legit. /// </summary> /// <param name="filePath">SAP file to check.</param> /// <returns>True if file contains a number of lines within the threshold.</returns> public static bool CheckSAPFileIsGood(string filePath, string locale) { var db = new B2BProductCatalog(); var sapFileCheckRow = db.SAPFileCheckCollection.GetByFileType(filePath.Substring(filePath.IndexOf('.')+1), locale); int lineCount = 0; using (var streamReader = new StreamReader(filePath, Encoding.GetEncoding(1252))) { while(streamReader.ReadLine() != null) { lineCount++; } } Log.InfoFormat("Svc ({0}): Current Line Count: {1}, Previous Line Count: {2}, Threshold: {3}", locale, lineCount, sapFileCheckRow.PreviousLineCount, sapFileCheckRow.Threshold); sapFileCheckRow.CurrentLineCount = lineCount; if ((sapFileCheckRow.PreviousLineCount - sapFileCheckRow.CurrentLineCount) > sapFileCheckRow.Threshold) { // Send error message through email Log.ErrorFormat("Svc ({0}): Threshold of {1} exceeded in file {2}. Previous line count: {3}, current line count: {4}.", locale, sapFileCheckRow.Threshold, filePath, sapFileCheckRow.PreviousLineCount, sapFileCheckRow.CurrentLineCount); db.SAPFileCheckCollection.Update(sapFileCheckRow); return false; } sapFileCheckRow.PreviousLineCount = lineCount; db.SAPFileCheckCollection.Update(sapFileCheckRow); return true; }
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); }
public static string AddFlagInfoToDb(DataTable flagInfo, DataTable categoryInfo, string locale) { int flagInfoInserted = 0; int flagInfoUpdated = 0; int categoryInserted = 0; int categoryUpdated = 0; try { using (var db = new B2BProductCatalog()) { // Flag Info for (int i = 0; i < flagInfo.Rows.Count; i++) { if (!string.IsNullOrEmpty(flagInfo.Rows[i]["Flag Name"].ToString())) { var row = new FlagInfoRow { FlagId = flagInfo.Rows[i]["Flag ID"].ToString().Replace('_', '-'), FlagName = TruncateString(flagInfo.Rows[i]["Flag Name"].ToString(), 50), Category = !string.IsNullOrEmpty(flagInfo.Rows[i]["Flag Category"].ToString()) ? TruncateString(flagInfo.Rows[i]["Flag Category"].ToString(), 50) : "N/A", SalesOrg = SalesOrg, DistributionChannel = DistChan, Locale = locale }; // Optional fields if (flagInfo.Rows[i]["Flag Description"] != null && !string.IsNullOrEmpty(flagInfo.Rows[i]["Flag Description"].ToString())) row.FlagDescription = TruncateString(flagInfo.Rows[i]["Flag Description"].ToString(), 4000); if (flagInfo.Rows[i]["Flag File Name"] != null && !string.IsNullOrEmpty(flagInfo.Rows[i]["Flag File Name"].ToString())) row.FileName = flagInfo.Rows[i]["Flag File Name"].ToString(); if (flagInfo.Columns.Contains("Flag Name (FR)") && flagInfo.Rows[i]["Flag Name (FR)"] != null && !string.IsNullOrEmpty(flagInfo.Rows[i]["Flag Name (FR)"].ToString())) row.FlagNameFr = TruncateString(flagInfo.Rows[i]["Flag Name (FR)"].ToString(), 75); if (flagInfo.Columns.Contains("Flag Description (FR)") && flagInfo.Rows[i]["Flag Description (FR)"] != null && !string.IsNullOrEmpty(flagInfo.Rows[i]["Flag Description (FR)"].ToString())) row.FlagDescriptionFr = TruncateString(flagInfo.Rows[i]["Flag Description (FR)"].ToString(), 4000); if (flagInfo.Rows[i]["Sequence"] != null && !string.IsNullOrEmpty(flagInfo.Rows[i]["Sequence"].ToString())) row.Sequence = int.Parse(flagInfo.Rows[i]["Sequence"].ToString()); else row.Sequence = 9999; //per iCongo, default to 9999 if not supplied var flagInfoRow = db.FlagInfoCollection.GetByFlagID(row.FlagId); if (flagInfoRow == null) { row.CreatedOn = DateTime.Now; db.FlagInfoCollection.Insert(row); flagInfoInserted++; } else { row.PkId = flagInfoRow.PkId; row.UpdatedOn = DateTime.Now; db.FlagInfoCollection.Update(row); flagInfoUpdated++; } } } // Flag Categories for (int j = 0; j < categoryInfo.Rows.Count; j++) { if (!string.IsNullOrEmpty(categoryInfo.Rows[j]["Flag Category"].ToString())) { var row = new FlagCategoryRow { Category = TruncateString(categoryInfo.Rows[j]["Flag Category"].ToString(), 50), CategoryId = categoryInfo.Rows[j]["Flag Category ID"].ToString().Replace('_', '-'), SalesOrg = SalesOrg, DistributionChannel = DistChan, Locale = locale }; if (categoryInfo.Columns.Contains("Flag Category (FR)") && categoryInfo.Rows[j]["Flag Category (FR)"] != null && !string.IsNullOrEmpty(categoryInfo.Rows[j]["Flag Category (FR)"].ToString())) row.CategoryFr = TruncateString(categoryInfo.Rows[j]["Flag Category (FR)"].ToString(), 50); if (categoryInfo.Rows[j]["Sequence"] != null && !string.IsNullOrEmpty(categoryInfo.Rows[j]["Sequence"].ToString())) row.Sequence = int.Parse(categoryInfo.Rows[j]["Sequence"].ToString()); else row.Sequence = 9999; //per iCongo, default to 9999 if not supplied var flagCategoryRow = db.FlagCategoryCollection.GetByFlagCategory(row.Category, SalesOrg, DistChan, locale); if (flagCategoryRow == null) { row.CreatedOn = DateTime.Now; db.FlagCategoryCollection.Insert(row); categoryInserted++; } else { row.PkId = flagCategoryRow.PkId; row.UpdatedOn = DateTime.Now; db.FlagCategoryCollection.Update(row); categoryUpdated++; } } } } } catch (Exception ex) { Log.ErrorFormat("Error inserting values into Flags table. Exception: {0}", ex.Message); } return string.Format("{0}_{1}_{2}_{3}", flagInfoInserted, flagInfoUpdated, categoryInserted, categoryUpdated); }
public static bool MarketingInfoTableHasData() { var db = new B2BProductCatalog(); int total = 5; if (db.MarketingInfoCollection.GetAsDataTable("", "", 0, 5, ref total).Rows.Count > 0) return true; return false; }
/// <summary> /// Initializes a new instance of the <see cref="FlagCategory_BackupCollection_Base"/> /// class with the specified <see cref="B2BProductCatalog"/>. /// </summary> /// <param name="db">The <see cref="B2BProductCatalog"/> object.</param> public FlagCategory_BackupCollection_Base(B2BProductCatalog db) { _db = db; }
/// <summary> /// Initializes a new instance of the <see cref="MarketingInfo_ExceptionsCollection"/> class. /// </summary> /// <param name="db">The database object.</param> internal MarketingInfo_ExceptionsCollection(B2BProductCatalog db) : base(db) { // EMPTY }
public static void CreateFsaFile(string filePath, string locale) { var db = new B2BProductCatalog(); var marketingInfoTable = db.MarketingInfoCollection.GetAllByLocale(locale); try { using (var streamWriter = new StreamWriter(filePath, false, Encoding.GetEncoding(1252))) { foreach (DataRow dataRow in marketingInfoTable.Rows) { // ItemId = StyleNumber var styleNumber = Convert.IsDBNull(dataRow[1]) ? "" : StripBadCharacters(dataRow[1].ToString()); if (styleNumber.Length != 0) { // FlagIds related to that StyleNumber // Flags 1-12 if (!Convert.IsDBNull(dataRow[16])) streamWriter.WriteLine(HelpAssembleFsaEntry(GetLocationAbbreviation(locale), styleNumber, dataRow[16].ToString())); if (!Convert.IsDBNull(dataRow[17])) // Flag 2 streamWriter.WriteLine(HelpAssembleFsaEntry(GetLocationAbbreviation(locale), styleNumber, dataRow[17].ToString())); if (!Convert.IsDBNull(dataRow[18])) streamWriter.WriteLine(HelpAssembleFsaEntry(GetLocationAbbreviation(locale), styleNumber, dataRow[18].ToString())); if (!Convert.IsDBNull(dataRow[19])) streamWriter.WriteLine(HelpAssembleFsaEntry(GetLocationAbbreviation(locale), styleNumber, dataRow[19].ToString())); if (!Convert.IsDBNull(dataRow[20])) streamWriter.WriteLine(HelpAssembleFsaEntry(GetLocationAbbreviation(locale), styleNumber, dataRow[20].ToString())); if (!Convert.IsDBNull(dataRow[21])) streamWriter.WriteLine(HelpAssembleFsaEntry(GetLocationAbbreviation(locale), styleNumber, dataRow[21].ToString())); if (!Convert.IsDBNull(dataRow[22])) streamWriter.WriteLine(HelpAssembleFsaEntry(GetLocationAbbreviation(locale), styleNumber, dataRow[22].ToString())); if (!Convert.IsDBNull(dataRow[23])) streamWriter.WriteLine(HelpAssembleFsaEntry(GetLocationAbbreviation(locale), styleNumber, dataRow[23].ToString())); if (!Convert.IsDBNull(dataRow[24])) streamWriter.WriteLine(HelpAssembleFsaEntry(GetLocationAbbreviation(locale), styleNumber, dataRow[24].ToString())); if (!Convert.IsDBNull(dataRow[25])) streamWriter.WriteLine(HelpAssembleFsaEntry(GetLocationAbbreviation(locale), styleNumber, dataRow[25].ToString())); if (!Convert.IsDBNull(dataRow[26])) streamWriter.WriteLine(HelpAssembleFsaEntry(GetLocationAbbreviation(locale), styleNumber, dataRow[26].ToString())); if (!Convert.IsDBNull(dataRow[27])) streamWriter.WriteLine(HelpAssembleFsaEntry(GetLocationAbbreviation(locale), styleNumber, dataRow[27].ToString())); } } } } catch (Exception ex) { Log.ErrorFormat("Error creating FSA file. Exception: {0}", ex.Message); } }
/// <summary> /// Initializes a new instance of the <see cref="ImageDataCollection"/> class. /// </summary> /// <param name="db">The database object.</param> internal ImageDataCollection(B2BProductCatalog db) : base(db) { // EMPTY }
/// <summary> /// Creates images for all the styles currently in the MarketingInfo table. /// NOTE: Setup for service only at this point. /// </summary> /// <param name="pathToSave">Path where to save the images.</param> /// <param name="quality">Quality of image.</param> /// <param name="type">Image type: png or jpg.</param> public static string CreateImages(string pathToSave, string quality, string type, string salesOrg, string distChan, string locale) { var db = new B2BProductCatalog(); DataTable marketingDataTable; if (salesOrg == "0000" && distChan == "00") // Generate images for all brands marketingDataTable = db.MarketingInfoCollection.GetAllByLocale(locale); else marketingDataTable = db.MarketingInfoCollection.GetAsDataTable( string.Format("SalesOrg='{0}' AND DistributionChannel='{1}'", salesOrg, distChan), ""); Log.InfoFormat("Begin image creation from {0} stock numbers.", marketingDataTable.Rows.Count); string rootUrl = ConfigurationManager.AppSettings["ImageRootUrl"]; int imagesCount = 0; try { for (int i = 0; i < marketingDataTable.Rows.Count; i++) { var stockNumber = marketingDataTable.Rows[i]["StyleNumber"].ToString(); var imageInfo = ExecuteOracle(stockNumber); // Want to send a blank image if the image was incorrect and deleted from Image Bank if (imageInfo.Rows.Count == 0) // If there is no image on Image Bank { var oldImage = db.ImageDataCollection.GetByStockNumber(stockNumber, locale); if (oldImage != null) // And there is an image uploaded previously { // Copy NoImage image to Images folder with stock number name and delete old entry Log.InfoFormat("Stock number \"{0}\" was removed from IB. Sending NoImage image and removing entry from db.", stockNumber); File.Copy(pathToSave + "NoImage\\NoImage.png", String.Format("{0}{1}.png", pathToSave, stockNumber)); db.ImageDataCollection.Delete(oldImage); continue; } } if (imageInfo.Rows.Count > 0) { string path = string.Empty; string fileName = string.Empty; int mediaType = 0; // Grab image marked as primary from web product or web apparel foreach (DataRow row in from DataRow row in imageInfo.Rows where row["mediatypeid"].ToString() == "1" || row["mediatypeid"].ToString() == "9" where row["originalfilename"].ToString().Contains("-F-") || row["originalfilename"].ToString().Contains("-P.") select row) { path = row["imageloc"].ToString(); fileName = path; mediaType = int.Parse(row["mediatypeid"].ToString()); break; } // Grab line drawing for apparel if we don't have an image yet if (string.IsNullOrEmpty(path)) { foreach (DataRow row in imageInfo.Rows.Cast<DataRow>() .Where(row => row["mediatypeid"].ToString() == "11" && (row["originalfilename"].ToString().Contains("-F-") || row["originalfilename"].ToString().Contains("-P.")))) { path = row["imageloc"].ToString(); fileName = path; mediaType = int.Parse(row["mediatypeid"].ToString()); break; } } // If we haven't found an image yet, just grab the first one if (string.IsNullOrEmpty(path)) { path = imageInfo.Rows[0]["imageloc"].ToString(); fileName = path; mediaType = int.Parse(imageInfo.Rows[0]["mediatypeid"].ToString()); } if (!string.IsNullOrEmpty(path)) { // Before we save, check it against previous entry -- do we need to update an old image? var oldImage = db.ImageDataCollection.GetByStockNumber(stockNumber, locale); var imageBytes = new byte[] {}; // Only want to download image if it's new or updated if (oldImage == null || oldImage.FileName != fileName) imageBytes = GetBytesFromUrl(String.Format("{0}{1}?cell=1000,1000&qlt={2}&cvt={3}", rootUrl, path, quality, type), stockNumber); if (imageBytes.Length > 0) { if (oldImage == null) { if (!Directory.Exists(pathToSave)) Directory.CreateDirectory(pathToSave); WriteBytesToFile(String.Format("{0}{1}.{2}", pathToSave, stockNumber, type), imageBytes); imagesCount++; db.ImageDataCollection.Insert(new ImageDataRow { StockNumber = stockNumber, CreatedOn = DateTime.Now, Url = rootUrl + path, FileName = fileName, MediaType = mediaType, Size = imageBytes.Length, Locale = locale }); } else if (oldImage.FileName != fileName) { if (!Directory.Exists(pathToSave)) Directory.CreateDirectory(pathToSave); WriteBytesToFile(String.Format("{0}{1}.{2}", pathToSave, stockNumber, type), imageBytes); imagesCount++; oldImage.CreatedOn = DateTime.Now; oldImage.Url = rootUrl + path; oldImage.FileName = fileName; oldImage.MediaType = mediaType; oldImage.Size = imageBytes.Length; db.ImageDataCollection.Update(oldImage); } } } } } } catch (Exception ex) { Log.ErrorFormat("Error creating images. Exception: {0}.", ex.Message); } Log.InfoFormat("{0} images created successfully.", imagesCount); return string.Format("{0}_{1}", imagesCount, marketingDataTable.Rows.Count); }
protected void btnUpdateMarketingWithLoremIpsum_Click(object sender, EventArgs e) { int countOfUpdatedEn = 0; int countOfUpdatedFr = 0; var marketingDataTable = new DataTable(); var db = new B2BProductCatalog(); string salesOrg = ddlBrand.SelectedItem.Value.Split('~')[0]; string dc = ddlBrand.SelectedItem.Value.Split('~')[1]; if (salesOrg == "0000" && dc == "00") //get all entries for selected SalesOrg, DistributtionChannel marketingDataTable = db.MarketingInfoCollection.GetAllAsDataTable(); else marketingDataTable = db.MarketingInfoCollection.GetAsDataTable( string.Format("SalesOrg='{0}' AND DistributionChannel='{1}'", salesOrg, dc), ""); for (int i = 0; i < marketingDataTable.Rows.Count; i++) { if (string.IsNullOrEmpty(marketingDataTable.Rows[i]["MarketingDescEn"].ToString())) { marketingDataTable.Rows[i].BeginEdit(); marketingDataTable.Rows[i]["MarketingDescEn"] = LOREMIPSUM_EN; marketingDataTable.Rows[i].EndEdit(); countOfUpdatedEn++; } if (string.IsNullOrEmpty(marketingDataTable.Rows[i]["MarketingDescFr"].ToString())) { marketingDataTable.Rows[i].BeginEdit(); marketingDataTable.Rows[i]["MarketingDescFr"] = LOREMIPSUM_FR; marketingDataTable.Rows[i].EndEdit(); countOfUpdatedFr++; } } //try to run the update db.MarketingInfoCollection.Update(marketingDataTable); lblSuccess.Visible = true; lblSuccess.Text = string.Format("{0} styles updated with English and {1} styles updated with French marketing Lorem Ipsum description.", countOfUpdatedEn, countOfUpdatedFr); }
public static void CreateMarketingInfoFile(string filePath, string fileType, bool useB2CData, string locale) { var db = new B2BProductCatalog(); var marketingDataTable = db.MarketingInfoCollection.GetAllByLocale(locale); if (useB2CData) { for (int i = 0; i < marketingDataTable.Rows.Count; i++) { if (string.IsNullOrEmpty(marketingDataTable.Rows[i]["MarketingDescEn"].ToString())) { var row = db.B2CProductDataCollection.GetByStyleNumber(marketingDataTable.Rows[i]["StyleNumber"].ToString()); if (row != null) if (!string.IsNullOrEmpty(row.ProductDescEn)) { marketingDataTable.Rows[i].BeginEdit(); marketingDataTable.Rows[i]["MarketingDescEn"] = row.ProductDescEn; marketingDataTable.Rows[i].EndEdit(); } } if (string.IsNullOrEmpty(marketingDataTable.Rows[i]["MarketingDescFr"].ToString())) { var row = db.B2CProductDataCollection.GetByStyleNumber(marketingDataTable.Rows[i]["StyleNumber"].ToString()); if (row != null) if (!string.IsNullOrEmpty(row.ProductDescFr)) { marketingDataTable.Rows[i].BeginEdit(); marketingDataTable.Rows[i]["MarketingDescFr"] = row.ProductDescFr; marketingDataTable.Rows[i].EndEdit(); } } } } try { using (var streamWriter = new StreamWriter(filePath, false, Encoding.GetEncoding(1252))) { int iColCount = marketingDataTable.Columns.Count; if (fileType.ToLower() == "mcsv") { //only write-out headers if not using the MKT format (required by iCongo) for (int i = 0; i < iColCount; i++) { streamWriter.Write(marketingDataTable.Columns[i]); if (i < iColCount - 1) { streamWriter.Write(","); } } streamWriter.Write(streamWriter.NewLine); } foreach (DataRow dataRow in marketingDataTable.Rows) { if (fileType.ToLower() == "mmkt") { //when using the MKT format (required by iCongo) only write-out specific columns //StyleNumber, MarketingDescEn, MarketingDescFr, Keywords, SizeRun streamWriter.Write(GetLocationAbbreviation(locale) + "|"); //StyleNumber streamWriter.Write(!Convert.IsDBNull(dataRow[1]) ? string.Format("{0}|", StripBadCharacters(dataRow[1].ToString())) : "|"); //MarketingDescEn, pipe in N/A if empty streamWriter.Write(!Convert.IsDBNull(dataRow[4]) ? string.Format("{0}|", HTMLEncodeSpecialChars(StripBadCharacters(dataRow[4].ToString()))) : "Description not available|"); //MarketingDescFr if (!Convert.IsDBNull(dataRow[5])) //French Marketing Description Exists streamWriter.Write(string.Format("{0}|", HTMLEncodeSpecialChars(StripBadCharacters(dataRow[5].ToString())))); else { //French Marketing Description is missing if (!Convert.IsDBNull(dataRow[4])) { //if English is available, use English for French streamWriter.Write(string.Format("{0}|", HTMLEncodeSpecialChars(StripBadCharacters(dataRow[4].ToString())))); } else //otherwise pipe in N/A if empty streamWriter.Write("Description not available|"); } //Keywords streamWriter.Write(!Convert.IsDBNull(dataRow[6]) ? string.Format("{0}|", StripBadCharacters(dataRow[6].ToString())) : "|"); //SizeRun if (!Convert.IsDBNull(dataRow[7])) { streamWriter.Write(string.Format("{0}", StripBadCharacters(dataRow[7].ToString()))); } } else { for (int i = 0; i < iColCount; i++) { if (!Convert.IsDBNull(dataRow[i])) { string formattedData = dataRow[i].ToString() .Replace("\r\n", "<br />").Replace("\n", "<br />").Replace(",", ","); streamWriter.Write(formattedData); } if (i < iColCount - 1) { streamWriter.Write(","); } } } streamWriter.Write(streamWriter.NewLine); } } } catch (Exception ex) { Log.ErrorFormat("Error creating marketing info file. Exception: {0}", ex.Message); } }
/// <summary> /// Initializes a new instance of the <see cref="B2CProductDataCollection_Base"/> /// class with the specified <see cref="B2BProductCatalog"/>. /// </summary> /// <param name="db">The <see cref="B2BProductCatalog"/> object.</param> public B2CProductDataCollection_Base(B2BProductCatalog db) { _db = db; }
/// <summary> /// Initializes a new instance of the <see cref="MarketingInfoCollection_Base"/> /// class with the specified <see cref="B2BProductCatalog"/>. /// </summary> /// <param name="db">The <see cref="B2BProductCatalog"/> object.</param> public MarketingInfoCollection_Base(B2BProductCatalog db) { _db = db; }
/// <summary> /// Initializes a new instance of the <see cref="MarketingInfoCollection"/> class. /// </summary> /// <param name="db">The database object.</param> internal MarketingInfoCollection(B2BProductCatalog db) : base(db) { }
/// <summary> /// Initializes a new instance of the <see cref="BrandCollection_Base"/> /// class with the specified <see cref="B2BProductCatalog"/>. /// </summary> /// <param name="db">The <see cref="B2BProductCatalog"/> object.</param> public BrandCollection_Base(B2BProductCatalog db) { _db = db; }
/// <summary> /// Initializes a new instance of the <see cref="FlagInfoCollection"/> class. /// </summary> /// <param name="db">The database object.</param> internal FlagInfoCollection(B2BProductCatalog db) : base(db) { // EMPTY }
/// <summary> /// Initializes a new instance of the <see cref="MarketingInfo_BackupCollection"/> class. /// </summary> /// <param name="db">The database object.</param> internal MarketingInfo_BackupCollection(B2BProductCatalog db) : base(db) { // EMPTY }
/// <summary> /// Initializes a new instance of the <see cref="FlagCategory_BackupCollection"/> class. /// </summary> /// <param name="db">The database object.</param> internal FlagCategory_BackupCollection(B2BProductCatalog db) : base(db) { // EMPTY }
/// <summary> /// Initializes a new instance of the <see cref="FlagCategory_ExceptionsCollection_Base"/> /// class with the specified <see cref="B2BProductCatalog"/>. /// </summary> /// <param name="db">The <see cref="B2BProductCatalog"/> object.</param> public FlagCategory_ExceptionsCollection_Base(B2BProductCatalog db) { _db = db; }