Example #1
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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}");
            }
        }