public virtual void SendDeleteCommand(CalculateUpdateMessage message, UserDatabase database) { var result = _messageSender.PublishDeleteEvent(message); if (!result) { Enqueue(database.ConnectionString, message.ProductID, message.EntityTypeId, message.Status, message.RetryCount, message.ArrivedTime, database.DatabaseId, message.ExternalId, message.Action); Logger.Error($"Processing failed: DatabaseId {message.DatabaseID} : EntityId {message.ProductID} : EntityTypeId {message.EntityTypeId}"); } }
protected HashSet <CalculateUpdateMessage> GetMessages(Constants.EntityType entityType, Constants.MessageActionType messageActionType, int count) { HashSet <CalculateUpdateMessage> messages = new HashSet <CalculateUpdateMessage>(); for (int i = 0; i < count; i++) { var calculateMessage = new CalculateUpdateMessage(i, string.Empty, (int)messageActionType, 0, (int)entityType, i, 0, OrchestrationQueueStatus.New); calculateMessage.ExternalId = "ExternalId"; messages.Add(calculateMessage); } return(messages); }
public virtual HashSet <CalculateUpdateMessage> GetDatabaseMessages(UserDatabase userDatabase) { HashSet <CalculateUpdateMessage> messages = new HashSet <CalculateUpdateMessage>(); var sqlParam = new SqlParameter("@count", System.Data.SqlDbType.Int) { Value = _appConfiguration.MessagesCount }; var reader = _databaseManager.ExecuteReader(userDatabase.ConnectionString, "sc_calculation_dequeue", true, sqlParam); while (reader.Read()) { var id = reader.GetValue <int>("Id"); var entityId = reader.GetValue <int>("EntityId"); var entityTypeId = reader.GetValue <int>("EntityTypeId"); var statusId = (OrchestrationQueueStatus)reader.GetValue <int>("StatusId"); var retryCount = reader.GetValue <int>("RetryCount"); var dateCreaded = reader.GetValue <DateTime>("DateCreated"); var externalId = reader.GetValue <string>("ExternalId"); var messageActionType = Constants.MessageActionType.NoMessage; if (reader.IsDBNull("MessageActionTypeId")) { messageActionType = Constants.MessageActionType.StarChefEventsUpdated; } else { var messageActionTypeId = reader.GetValueOrDefault <int>("MessageActionTypeId"); messageActionType = (Constants.MessageActionType)messageActionTypeId; } if (messageActionType == Constants.MessageActionType.NoMessage) { messageActionType = Constants.MessageActionType.StarChefEventsUpdated; } var message = new CalculateUpdateMessage(entityId, userDatabase.ConnectionString, (int)messageActionType, userDatabase.DatabaseId, entityTypeId, id, retryCount, statusId) { ArrivedTime = dateCreaded, ExternalId = userDatabase.ExternalId }; message.ExternalId = externalId; if (!messages.Any(c => c.EntityTypeId == entityTypeId && c.ProductID == entityId && c.Action == (int)messageActionType)) { messages.Add(message); } } return(messages); }
public virtual void Send(EnumHelper.EntityTypeWrapper?entityTypeWrapper, string connectionString, CalculateUpdateMessage message, int databaseId) { var result = _messageSender.Send(entityTypeWrapper.Value, connectionString, message.EntityTypeId, message.ProductID, message.ExternalId, message.DatabaseID, message.ArrivedTime); if (!result) { Enqueue(connectionString, message.ProductID, message.EntityTypeId, message.Status, message.RetryCount, message.ArrivedTime, databaseId, message.ExternalId, message.Action); Logger.Error($"Processing failed: DatabaseId {message.DatabaseID} : EntityId {message.ProductID} : EntityTypeId {message.EntityTypeId}"); } }