public bool ProductDatabaseIntegration(List <Product> Products, string StoreName, int ErrorTypeID) { #region delete Products with no sku and name information Mail _Mail = new Mail(); List <Product> PrdList = (from _prd in Products where _prd.SKU.Trim() != "" && _prd.Name.Trim() != "" select _prd).ToList(); List <Product> query = (PrdList.GroupBy(x => x.SKU).Select(y => y.FirstOrDefault())).ToList(); #endregion delete Products with no sku and name information DataTable exceldt = new DataTable(); exceldt.Columns.Add("Rowid", typeof(int)); exceldt.Columns.Add("SKU", typeof(string)); exceldt.Columns.Add("Product Name", typeof(string)); exceldt.Columns.Add("Product Description", typeof(string)); exceldt.Columns.Add("Bullet Points", typeof(string)); exceldt.Columns.Add("Manufacturer", typeof(string)); exceldt.Columns.Add("Brand Name", typeof(string)); exceldt.Columns.Add("Price", typeof(decimal)); exceldt.Columns.Add("Currency", typeof(string)); exceldt.Columns.Add("In Stock", typeof(string)); exceldt.Columns.Add("Image URL", typeof(string)); exceldt.Columns.Add("URL", typeof(string)); exceldt.Columns.Add("Size", typeof(string)); exceldt.Columns.Add("Color", typeof(string)); exceldt.Columns.Add("Isdefault", typeof(bool)); exceldt.Columns.Add("ParentSku", typeof(string)); exceldt.Columns.Add("Bulletpoints1", typeof(string)); exceldt.Columns.Add("Bulletpoints2", typeof(string)); exceldt.Columns.Add("Bulletpoints3", typeof(string)); exceldt.Columns.Add("Bulletpoints4", typeof(string)); exceldt.Columns.Add("Bulletpoints5", typeof(string)); exceldt.Columns.Add("Category", typeof(string)); exceldt.Columns.Add("Weight", typeof(string)); exceldt.Columns.Add("Style", typeof(string)); exceldt.Columns.Add("Shipping", typeof(string)); exceldt.Columns.Add("Minimum_Manufacturer_Age_Recommended", typeof(string)); exceldt.Columns.Add("AGE_Unit_Of_Measure", typeof(string)); try { int Counter = 0; foreach (Product Prd in query) { try { exceldt.Rows.Add(); exceldt.Rows[Counter][0] = Counter; exceldt.Rows[Counter][1] = string.IsNullOrEmpty(Prd.SKU) ? "" : Regex.Replace(Prd.SKU, @"\\t|\n|\r", ""); exceldt.Rows[Counter][2] = string.IsNullOrEmpty(Prd.Name) ? "" : Regex.Replace(Prd.Name, @"\\t|\n|\r", ""); exceldt.Rows[Counter][3] = string.IsNullOrEmpty(Prd.Description) ? "" : Regex.Replace(Prd.Description, @"\\t|\n|\r", ""); exceldt.Rows[Counter][4] = string.IsNullOrEmpty(Prd.Bulletpoints) ? "" : Regex.Replace(Prd.Bulletpoints, @"\\t|\n|\r", ""); exceldt.Rows[Counter][5] = string.IsNullOrEmpty(Prd.Manufacturer) ? "" : Regex.Replace(Prd.Manufacturer, @"\\t|\n|\r", ""); exceldt.Rows[Counter][6] = string.IsNullOrEmpty(Prd.Brand) ? "" : Regex.Replace(Prd.Brand, @"\\t|\n|\r", ""); exceldt.Rows[Counter][7] = Prd.Price; exceldt.Rows[Counter][8] = Prd.Currency; exceldt.Rows[Counter][9] = Prd.Stock; exceldt.Rows[Counter][10] = string.IsNullOrEmpty(Prd.Image) ? "" : Regex.Replace(Prd.Image, @"\\t|\n|\r", ""); exceldt.Rows[Counter][11] = string.IsNullOrEmpty(Prd.URL) ? "" : Regex.Replace(Prd.URL, @"\\t|\n|\r", ""); exceldt.Rows[Counter][12] = string.IsNullOrEmpty(Prd.Size) ? "" : Regex.Replace(Prd.Size, @"\\t|\n|\r", ""); exceldt.Rows[Counter][13] = string.IsNullOrEmpty(Prd.Color) ? "" : Regex.Replace(Prd.Color, @"\\t|\n|\r", ""); exceldt.Rows[Counter][14] = Prd.Isparent; exceldt.Rows[Counter][15] = string.IsNullOrEmpty(Prd.parentsku) ? "" : Regex.Replace(Prd.parentsku, @"\\t|\n|\r", ""); exceldt.Rows[Counter][16] = string.IsNullOrEmpty(Prd.Bulletpoints1) ? "" : Regex.Replace(Prd.Bulletpoints1, @"\\t|\n|\r", ""); exceldt.Rows[Counter][17] = string.IsNullOrEmpty(Prd.Bulletpoints2) ? "" : Regex.Replace(Prd.Bulletpoints2, @"\\t|\n|\r", ""); exceldt.Rows[Counter][18] = string.IsNullOrEmpty(Prd.Bulletpoints3) ? "" : Regex.Replace(Prd.Bulletpoints3, @"\\t|\n|\r", ""); exceldt.Rows[Counter][19] = string.IsNullOrEmpty(Prd.Bulletpoints4) ? "" : Regex.Replace(Prd.Bulletpoints4, @"\\t|\n|\r", ""); exceldt.Rows[Counter][20] = string.IsNullOrEmpty(Prd.Bulletpoints5) ? "" : Regex.Replace(Prd.Bulletpoints5, @"\\t|\n|\r", ""); exceldt.Rows[Counter][21] = string.IsNullOrEmpty(Prd.Category) ? "" : Regex.Replace(Prd.Category, @"\\t|\n|\r", ""); exceldt.Rows[Counter][22] = Prd.Weight; exceldt.Rows[Counter][23] = string.IsNullOrEmpty(Prd.Style) ? "" : Regex.Replace(Prd.Style, @"\\t|\n|\r", ""); exceldt.Rows[Counter][24] = Prd.Shipping; exceldt.Rows[Counter][25] = Prd.MinimumAgeRecommend; exceldt.Rows[Counter][26] = string.IsNullOrEmpty(Prd.AgeUnitMeasure) ? "" : Regex.Replace(Prd.AgeUnitMeasure, @"\\t|\n|\r", ""); } catch { } Counter++; } #region DBChanges int ProcessedStatus = 1; DB _Db = new DB(); #region MarkProductsAsOutofStock try { _Db.GetDatasetByPassDatatable("MarkProductsAsOutOfStock", exceldt, "@Products", CommandType.StoredProcedure, "@StoreName," + StoreName); } catch { _Mail.SendMail("OOPS there is issue accured in mark products as out of stock in database " + StoreName, ", due to which all products that is going out of stock on website is remain in stock on amazon.", false, true, ErrorTypeID); } #endregion MarkProductsAsOutofStock int TotalNoOfRecords = exceldt.Rows.Count; int NoOfFeeds = 0; if (TotalNoOfRecords % 2000 == 0) { NoOfFeeds = Convert.ToInt32(TotalNoOfRecords / 2000); } else { NoOfFeeds = Convert.ToInt32(TotalNoOfRecords / 2000) + 1; } for (int i = 0; i < NoOfFeeds; i++) { if (!_Db.ProductInsert(StoreName, exceldt.AsEnumerable().Skip(i * 2000).Take(2000).CopyToDataTable())) { _Mail.SendMail("OOPS issue accured in insertion of products in database for store " + StoreName, "Issue Occured In insertion of products in database", false, true, ErrorTypeID); ProcessedStatus = 0; } } if (exceldt.Rows.Count == 0) { _Mail.SendMail("OOPS there is no any product go to insert in database for " + StoreName + ", due to which all products of this store have updated inventory to 0 in database", "Issue Occured In insertion of products in database", false, true, ErrorTypeID); ProcessedStatus = 0; } _Db.ExecuteCommand("update Schduler set LastProcessedStatus=" + ProcessedStatus + " where StoreName='" + StoreName + "'"); #endregion DBChanges return(true); } catch (Exception exp) { _Mail.SendMail("OOPS issue accured in insertion of products for store " + StoreName + " exp=" + exp.Message, "Issue Occured In insertion of products in database", false, true, ErrorTypeID); return(false); } }
public bool ProductDatabaseIntegration(List<Product> Products, string StoreName, int ErrorTypeID) { #region delete Products with no sku and name information Mail _Mail = new Mail(); List<Product> PrdList = (from _prd in Products where _prd.SKU.Trim() != "" && _prd.Name.Trim() != "" select _prd).ToList(); List<Product> query = (PrdList.GroupBy(x => x.SKU).Select(y => y.FirstOrDefault())).ToList(); #endregion delete Products with no sku and name information DataTable exceldt = new DataTable(); exceldt.Columns.Add("Rowid", typeof(int)); exceldt.Columns.Add("SKU", typeof(string)); exceldt.Columns.Add("Product Name", typeof(string)); exceldt.Columns.Add("Product Description", typeof(string)); exceldt.Columns.Add("Bullet Points", typeof(string)); exceldt.Columns.Add("Manufacturer", typeof(string)); exceldt.Columns.Add("Brand Name", typeof(string)); exceldt.Columns.Add("Price", typeof(decimal)); exceldt.Columns.Add("Currency", typeof(string)); exceldt.Columns.Add("In Stock", typeof(string)); exceldt.Columns.Add("Image URL", typeof(string)); exceldt.Columns.Add("URL", typeof(string)); exceldt.Columns.Add("Size", typeof(string)); exceldt.Columns.Add("Color", typeof(string)); exceldt.Columns.Add("Isdefault", typeof(bool)); exceldt.Columns.Add("ParentSku", typeof(string)); exceldt.Columns.Add("Bulletpoints1", typeof(string)); exceldt.Columns.Add("Bulletpoints2", typeof(string)); exceldt.Columns.Add("Bulletpoints3", typeof(string)); exceldt.Columns.Add("Bulletpoints4", typeof(string)); exceldt.Columns.Add("Bulletpoints5", typeof(string)); exceldt.Columns.Add("Category", typeof(string)); exceldt.Columns.Add("Weight", typeof(string)); exceldt.Columns.Add("Style", typeof(string)); exceldt.Columns.Add("Shipping", typeof(string)); exceldt.Columns.Add("Minimum_Manufacturer_Age_Recommended", typeof(string)); exceldt.Columns.Add("AGE_Unit_Of_Measure", typeof(string)); try { int Counter = 0; foreach (Product Prd in query) { try { exceldt.Rows.Add(); exceldt.Rows[Counter][0] = Counter; exceldt.Rows[Counter][1] = string.IsNullOrEmpty(Prd.SKU) ? "" : Regex.Replace(Prd.SKU, @"\\t|\n|\r", ""); exceldt.Rows[Counter][2] = string.IsNullOrEmpty(Prd.Name) ? "" : Regex.Replace(Prd.Name, @"\\t|\n|\r", ""); exceldt.Rows[Counter][3] = string.IsNullOrEmpty(Prd.Description) ? "" : Regex.Replace(Prd.Description, @"\\t|\n|\r", ""); exceldt.Rows[Counter][4] = string.IsNullOrEmpty(Prd.Bulletpoints) ? "" : Regex.Replace(Prd.Bulletpoints, @"\\t|\n|\r", ""); exceldt.Rows[Counter][5] = string.IsNullOrEmpty(Prd.Manufacturer) ? "" : Regex.Replace(Prd.Manufacturer, @"\\t|\n|\r", ""); exceldt.Rows[Counter][6] = string.IsNullOrEmpty(Prd.Brand) ? "" : Regex.Replace(Prd.Brand, @"\\t|\n|\r", ""); exceldt.Rows[Counter][7] = Prd.Price; exceldt.Rows[Counter][8] = Prd.Currency; exceldt.Rows[Counter][9] = Prd.Stock; exceldt.Rows[Counter][10] = string.IsNullOrEmpty(Prd.Image) ? "" : Regex.Replace(Prd.Image, @"\\t|\n|\r", ""); exceldt.Rows[Counter][11] = string.IsNullOrEmpty(Prd.URL) ? "" : Regex.Replace(Prd.URL, @"\\t|\n|\r", ""); exceldt.Rows[Counter][12] = string.IsNullOrEmpty(Prd.Size) ? "" : Regex.Replace(Prd.Size, @"\\t|\n|\r", ""); exceldt.Rows[Counter][13] = string.IsNullOrEmpty(Prd.Color) ? "" : Regex.Replace(Prd.Color, @"\\t|\n|\r", ""); exceldt.Rows[Counter][14] = Prd.Isparent; exceldt.Rows[Counter][15] = string.IsNullOrEmpty(Prd.parentsku) ? "" : Regex.Replace(Prd.parentsku, @"\\t|\n|\r", ""); exceldt.Rows[Counter][16] = string.IsNullOrEmpty(Prd.Bulletpoints1) ? "" : Regex.Replace(Prd.Bulletpoints1, @"\\t|\n|\r", ""); exceldt.Rows[Counter][17] = string.IsNullOrEmpty(Prd.Bulletpoints2) ? "" : Regex.Replace(Prd.Bulletpoints2, @"\\t|\n|\r", ""); exceldt.Rows[Counter][18] = string.IsNullOrEmpty(Prd.Bulletpoints3) ? "" : Regex.Replace(Prd.Bulletpoints3, @"\\t|\n|\r", ""); exceldt.Rows[Counter][19] = string.IsNullOrEmpty(Prd.Bulletpoints4) ? "" : Regex.Replace(Prd.Bulletpoints4, @"\\t|\n|\r", ""); exceldt.Rows[Counter][20] = string.IsNullOrEmpty(Prd.Bulletpoints5) ? "" : Regex.Replace(Prd.Bulletpoints5, @"\\t|\n|\r", ""); exceldt.Rows[Counter][21] = string.IsNullOrEmpty(Prd.Category) ? "" : Regex.Replace(Prd.Category, @"\\t|\n|\r", ""); exceldt.Rows[Counter][22] = Prd.Weight; exceldt.Rows[Counter][23] = string.IsNullOrEmpty(Prd.Style) ? "" : Regex.Replace(Prd.Style, @"\\t|\n|\r", ""); exceldt.Rows[Counter][24] = Prd.Shipping; exceldt.Rows[Counter][25] = Prd.MinimumAgeRecommend; exceldt.Rows[Counter][26] = string.IsNullOrEmpty(Prd.AgeUnitMeasure) ? "" : Regex.Replace(Prd.AgeUnitMeasure, @"\\t|\n|\r", ""); } catch { } Counter++; } #region DBChanges int ProcessedStatus = 1; DB _Db = new DB(); #region MarkProductsAsOutofStock try { _Db.GetDatasetByPassDatatable("MarkProductsAsOutOfStock", exceldt, "@Products", CommandType.StoredProcedure, "@StoreName," + StoreName); } catch { _Mail.SendMail("OOPS there is issue accured in mark products as out of stock in database " + StoreName , ", due to which all products that is going out of stock on website is remain in stock on amazon.", false, true, ErrorTypeID); } #endregion MarkProductsAsOutofStock int TotalNoOfRecords = exceldt.Rows.Count; int NoOfFeeds = 0; if (TotalNoOfRecords % 2000 == 0) NoOfFeeds = Convert.ToInt32(TotalNoOfRecords / 2000); else NoOfFeeds = Convert.ToInt32(TotalNoOfRecords / 2000) + 1; for (int i = 0; i < NoOfFeeds; i++) { if (!_Db.ProductInsert(StoreName, exceldt.AsEnumerable().Skip(i * 2000).Take(2000).CopyToDataTable())) { _Mail.SendMail("OOPS issue accured in insertion of products in database for store " + StoreName, "Issue Occured In insertion of products in database", false, true, ErrorTypeID); ProcessedStatus = 0; } } if (exceldt.Rows.Count == 0) { _Mail.SendMail("OOPS there is no any product go to insert in database for " + StoreName + ", due to which all products of this store have updated inventory to 0 in database", "Issue Occured In insertion of products in database", false, true, ErrorTypeID); ProcessedStatus = 0; } _Db.ExecuteCommand("update Schduler set LastProcessedStatus=" + ProcessedStatus + " where StoreName='" + StoreName + "'"); #endregion DBChanges return true; } catch (Exception exp) { _Mail.SendMail("OOPS issue accured in insertion of products for store " + StoreName + " exp=" + exp.Message, "Issue Occured In insertion of products in database", false, true, ErrorTypeID); return false; } }
public bool ProductDatabaseIntegration(List<Product> Products, string StoreName, int ErrorTypeID) { #region delete Products with no sku and name information Mail _Mail = new Mail(); List<Product> PrdListSku = (from _prd in Products where _prd.SKU != null select _prd).ToList(); List<Product> PrdListName = (from _prd in PrdListSku where _prd.Name != null select _prd).ToList(); PrdListName.ForEach(x => x.Name = x.Name.Replace("- Previously Played", "")); PrdListName.ForEach(x => x.Name = x.Name.Replace("-Previously Played", "")); PrdListName.ForEach(x => x.Name = x.Name.Replace("Previously Played", "")); PrdListName.ForEach(x => x.Name = x.Name.Replace("previously Played", "")); PrdListName.ForEach(x => x.Name = x.Name.Replace("Previously played", "")); PrdListName.ForEach(x => x.Name = x.Name.Replace("previously played", "")); List<Product> PrdListPrice = (from _prd in PrdListName where _prd.Price != "0" select _prd).ToList(); List<Product> PrdList1 = (from _prd in PrdListPrice where _prd.SKU.Trim() != "" && _prd.Name.Trim() != "" select _prd).ToList(); List<Product> PrdList2 = (from _prd in PrdList1 where !_prd.Name.Trim().ToLower().Contains("pre-order") select _prd).ToList(); List<Product> PrdList3 = (from _prd in PrdList2 where !_prd.Name.Trim().ToLower().Contains("pre order") select _prd).ToList(); List<Product> PrdList4 = (from _prd in PrdList3 where !_prd.Name.Trim().ToLower().Contains("gift card") select _prd).ToList(); List<Product> PrdList5 = (from _prd in PrdList4 where !_prd.Name.Trim().ToLower().Contains("tournament entry") select _prd).ToList(); List<Product> PrdList6 = (from _prd in PrdList5 where !_prd.Name.Trim().ToLower().Contains("regionals") select _prd).ToList(); List<Product> PrdList7 = (from _prd in PrdList6 where _prd.Description != null select _prd).ToList(); List<Product> PrdList8 = (from _prd in PrdList7 where _prd.Bulletpoints1 != null select _prd).ToList(); List<Product> PrdList9 = (from _prd in PrdList8 where !_prd.Description.Trim().ToLower().Contains("pre-order") select _prd).ToList(); List<Product> PrdList10 = (from _prd in PrdList9 where !_prd.Description.Trim().ToLower().Contains("pre order") select _prd).ToList(); List<Product> PrdList11 = (from _prd in PrdList10 where !_prd.Bulletpoints1.Trim().ToLower().Contains("pre order") select _prd).ToList(); List<Product> PrdList12 = (from _prd in PrdList11 where !_prd.Bulletpoints1.Trim().ToLower().Contains("pre-order") select _prd).ToList(); List<Product> PrdList13 = (from _prd in PrdList12 where _prd.Image != null select _prd).ToList(); List<Product> PrdList = (from _prd in PrdList13 where _prd.Image.Trim() != "" select _prd).ToList(); List<Product> query1 = (PrdList.GroupBy(x => x.SKU).Select(y => y.FirstOrDefault())).ToList(); List<Product> query = new List<Product>(); // if (StoreName.ToLower() == "bestbuy.ca") query = query1; //else // query = (query1.GroupBy(x => x.Name).Select(y => y.FirstOrDefault())).ToList(); #endregion delete Products with no sku and name information DataTable exceldt = new DataTable(); exceldt.Columns.Add("Rowid", typeof(int)); exceldt.Columns.Add("SKU", typeof(string)); exceldt.Columns.Add("Product Name", typeof(string)); exceldt.Columns.Add("Product Description", typeof(string)); exceldt.Columns.Add("Bullet Points", typeof(string)); exceldt.Columns.Add("Manufacturer", typeof(string)); exceldt.Columns.Add("Brand Name", typeof(string)); exceldt.Columns.Add("Price", typeof(decimal)); exceldt.Columns.Add("Currency", typeof(string)); exceldt.Columns.Add("In Stock", typeof(string)); exceldt.Columns.Add("Image URL", typeof(string)); exceldt.Columns.Add("URL", typeof(string)); exceldt.Columns.Add("Size", typeof(string)); exceldt.Columns.Add("Color", typeof(string)); exceldt.Columns.Add("Isdefault", typeof(bool)); exceldt.Columns.Add("ParentSku", typeof(string)); exceldt.Columns.Add("Bulletpoints1", typeof(string)); exceldt.Columns.Add("Bulletpoints2", typeof(string)); exceldt.Columns.Add("Bulletpoints3", typeof(string)); exceldt.Columns.Add("Bulletpoints4", typeof(string)); exceldt.Columns.Add("Bulletpoints5", typeof(string)); exceldt.Columns.Add("Category", typeof(string)); exceldt.Columns.Add("Weight", typeof(string)); exceldt.Columns.Add("Style", typeof(string)); exceldt.Columns.Add("Shipping", typeof(string)); exceldt.Columns.Add("Minimum_Manufacturer_Age_Recommended", typeof(string)); exceldt.Columns.Add("AGE_Unit_Of_Measure", typeof(string)); exceldt.Columns.Add("Width", typeof(string)); exceldt.Columns.Add("Height", typeof(string)); exceldt.Columns.Add("WeightUnitMeasure", typeof(string)); exceldt.Columns.Add("UPC", typeof(string)); exceldt.Columns.Add("ManPartNO", typeof(string)); exceldt.Columns.Add("ISGtin", typeof(string)); try { int Counter = 0; foreach (Product Prd in query) { string Brand = string.IsNullOrEmpty(Prd.Brand) ? "" : Prd.Brand.ToUpper(); if (Brand != "SOLOGEAR" && Brand != "OCTANE SEATING") { try { exceldt.Rows.Add(); exceldt.Rows[Counter][0] = Counter; exceldt.Rows[Counter][1] = string.IsNullOrEmpty(Prd.SKU) ? "" : Regex.Replace(Prd.SKU, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][2] = string.IsNullOrEmpty(Prd.Name) ? "" : Regex.Replace(Prd.Name, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][3] = string.IsNullOrEmpty(Prd.Description) ? "" : Regex.Replace(Prd.Description, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][4] = string.IsNullOrEmpty(Prd.Bulletpoints) ? "" : Regex.Replace(Prd.Bulletpoints, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][5] = string.IsNullOrEmpty(Prd.Manufacturer) ? "" : Regex.Replace(Prd.Manufacturer, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][6] = string.IsNullOrEmpty(Prd.Brand) ? "Default Manufacturer" : Regex.Replace(Prd.Brand, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][7] = Prd.Price; exceldt.Rows[Counter][8] = Prd.Currency; exceldt.Rows[Counter][9] = Prd.Stock; exceldt.Rows[Counter][10] = string.IsNullOrEmpty(Prd.Image) ? "" : Regex.Replace(Prd.Image, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][11] = string.IsNullOrEmpty(Prd.URL) ? "" : Regex.Replace(Prd.URL, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][12] = string.IsNullOrEmpty(Prd.Size) ? "" : Regex.Replace(Prd.Size, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][13] = string.IsNullOrEmpty(Prd.Color) ? "" : Regex.Replace(Prd.Color, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][14] = Prd.Isparent; exceldt.Rows[Counter][15] = string.IsNullOrEmpty(Prd.parentsku) ? "" : Regex.Replace(Prd.parentsku, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][16] = string.IsNullOrEmpty(Prd.Bulletpoints1) ? "" : Regex.Replace(Prd.Bulletpoints1, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][17] = string.IsNullOrEmpty(Prd.Bulletpoints2) ? "" : Regex.Replace(Prd.Bulletpoints2, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][18] = string.IsNullOrEmpty(Prd.Bulletpoints3) ? "" : Regex.Replace(Prd.Bulletpoints3, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][19] = string.IsNullOrEmpty(Prd.Bulletpoints4) ? "" : Regex.Replace(Prd.Bulletpoints4, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][20] = string.IsNullOrEmpty(Prd.Bulletpoints5) ? "" : Regex.Replace(Prd.Bulletpoints5, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][21] = string.IsNullOrEmpty(Prd.Category) ? "" : Regex.Replace(Prd.Category, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][22] = Prd.Weight; exceldt.Rows[Counter][23] = string.IsNullOrEmpty(Prd.Style) ? "" : Regex.Replace(Prd.Style, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][24] = Prd.Shipping; exceldt.Rows[Counter][25] = Prd.MinimumAgeRecommend; exceldt.Rows[Counter][26] = string.IsNullOrEmpty(Prd.AgeUnitMeasure) ? "" : Regex.Replace(Prd.AgeUnitMeasure, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][27] = string.IsNullOrEmpty(Prd.Width) ? "" : Regex.Replace(Prd.Width, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][28] = string.IsNullOrEmpty(Prd.Height) ? "" : Regex.Replace(Prd.Height, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][29] = string.IsNullOrEmpty(Prd.WeightUnitMeasure) ? "" : Regex.Replace(Prd.WeightUnitMeasure, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][30] = string.IsNullOrEmpty(Prd.UPC) ? "" : Regex.Replace(Prd.UPC, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][31] = string.IsNullOrEmpty(Prd.ManPartNO) ? "" : Regex.Replace(Prd.ManPartNO, @"\\t|\n|\r", " ").Replace("\t", " "); exceldt.Rows[Counter][32] = Prd.ISGtin; } catch { } Counter++; } } #region DBChanges int ProcessedStatus = 1; DB _Db = new DB(); #region MarkProductsAsOutofStock try { _Db.GetDatasetByPassDatatable("MarkProductsAsOutOfStock", exceldt, "@Products", CommandType.StoredProcedure, "@StoreName," + StoreName); } catch { _Mail.SendMail("OOPS there is issue accured in mark products as out of stock in database " + StoreName, ", due to which all products that is going out of stock on website is remain in stock on amazon.", false, true, ErrorTypeID); } #endregion MarkProductsAsOutofStock int TotalNoOfRecords = exceldt.Rows.Count; int NoOfFeeds = 0; if (TotalNoOfRecords % 2000 == 0) NoOfFeeds = Convert.ToInt32(TotalNoOfRecords / 2000); else NoOfFeeds = Convert.ToInt32(TotalNoOfRecords / 2000) + 1; for (int i = 0; i < NoOfFeeds; i++) { if (!_Db.ProductInsert(StoreName, exceldt.AsEnumerable().Skip(i * 2000).Take(2000).CopyToDataTable())) { _Mail.SendMail("OOPS issue accured in insertion of products in database for store " + StoreName, "Issue Occured In insertion of products in database", false, true, ErrorTypeID); ProcessedStatus = 0; } } if (exceldt.Rows.Count == 0) { _Mail.SendMail("OOPS there is no any product go to insert in database for " + StoreName + ", due to which all products of this store have updated inventory to 0 in database", "Issue Occured In insertion of products in database", false, true, ErrorTypeID); ProcessedStatus = 0; } _Db.ExecuteCommand("update Schduler set LastProcessedStatus=" + ProcessedStatus + " where StoreName='" + StoreName + "'"); #endregion DBChanges return true; } catch (Exception exp) { _Mail.SendMail("OOPS issue accured in insertion of products for store " + StoreName + " exp=" + exp.Message, "Issue Occured In insertion of products in database", false, true, ErrorTypeID); return false; } }