private static string GetFeedFilePath(FeedGenerationFileItemRange fileItemRange, FeedGenerationFileLineItem feedGenerationFileLineItem, string languageString, string pathBase) { return(string.Format("{0}/{1}/{2}-{3}-{4}.txt", pathBase, languageString, feedGenerationFileLineItem.Catalog, fileItemRange.Begin, fileItemRange.End)); }
private void WriteRangeFile(FeedGenerationFileLineItem fileComponent, FeedGenerationFileItemRange range, IEnumerable <AbstractFileFeedWriter> feedWriters) { using (var sqlConnection = new SqlConnection(OdysseyCommerceConnectionString)) { sqlConnection.Open(); var catalog = fileComponent.Catalog; var sqlParameters = new SqlParameter[2]; if (!fileComponent.IsIncluded) { Log.InfoFormat("FeedGenerationFileLineItem [{0}-{1}] was excluded from feed generation.", catalog, fileComponent.RangeDatas); return; } var identifier = string.Format("{0}_{1}", catalog, fileComponent.RangeDatas); try { sqlParameters[0] = new SqlParameter("@PIDRangeStart", range.Begin); sqlParameters[1] = new SqlParameter("@PIDRangeEnd ", range.End); identifier = string.Format("{0}_{1}_{2}", catalog, range.Begin, range.End); var startDt = DateTime.Now; Log.DebugFormat("[{0}] start", identifier); using (var sqlCommand = new SqlCommand(fileComponent.StoredProcedureName, sqlConnection) { CommandType = CommandType.StoredProcedure, CommandTimeout = SearchDataCommandTimeout }) { if (!(sqlParameters[0].Value.ToString() == "0" && sqlParameters[1].Value.ToString() == "99")) { sqlCommand.Parameters.AddRange(sqlParameters); } if (LimitTo100Products) { sqlCommand.Parameters.AddWithValue("@GetTop100", 1); } if (_isIncrementalRun) { sqlCommand.Parameters.AddWithValue("@IsIncremental", 1); sqlCommand.Parameters.AddWithValue("@DateChanged", _effectiveFromTime); } using (var sqlDataReader = sqlCommand.ExecuteReader()) { if (!sqlDataReader.HasRows) { Log.InfoFormat("Runner.WriteRangeFile. sqlDataReader has no rows. catalog: {0}", catalog); } while (sqlDataReader.Read()) { foreach (var writer in feedWriters) { try { writer.Write(sqlDataReader, identifier); } catch (Exception ex) { if (_isIncrementalRun || !AllowItemErrorsInFiles) { throw; } Log.Error(string.Format("[Feed] {0} errored out.", identifier), ex); _hasError = true; } } } } //using sqldatareader } //using sqlCommand var endDt = DateTime.Now; var execTime = endDt - startDt; Log.InfoFormat("[{0}] completed. Execution time in seconds: {1}", identifier, execTime.TotalSeconds); } catch (Exception ex) { Log.Error(string.Format("Runner.WriteRangeFile(). [Feed] {0} errored out.", identifier), ex); _hasError = true; if (_isIncrementalRun || !AllowItemErrorsInFiles) { throw; } } } }