internal IMessage CreateDeleteEventPayload(string entityExternalId, int entityTypeId, int databaseId, string dbConnectionString, IDatabaseManager databaseManager) { IMessage payload = null; switch ((Constants.EntityType)entityTypeId) { case Constants.EntityType.Ingredient: { payload = _eventFactory.CreateDeleteEvent <IngredientUpdated, IngredientUpdatedBuilder>(dbConnectionString, entityExternalId, databaseId); } break; case Constants.EntityType.Dish: { payload = _eventFactory.CreateDeleteEvent <RecipeUpdated, RecipeUpdatedBuilder>(dbConnectionString, entityExternalId, databaseId); } break; case Constants.EntityType.Menu: { payload = _eventFactory.CreateDeleteEvent <MenuUpdated, MenuUpdatedBuilder>(dbConnectionString, entityExternalId, databaseId); } break; case Constants.EntityType.MenuCycle: { _logger.DebugFormat("MenuCycle deletion message is not sent because it's not supported in Fourth.Orchestration.Model.Menus.Events."); } break; case Constants.EntityType.Category: { /* * Categories are updated with Update message for ingredient */ _logger.DebugFormat("Category deletion does not send delete message."); } break; case Constants.EntityType.Group: payload = _eventFactory.CreateDeleteEvent <GroupUpdated, GroupUpdatedBuilder>(dbConnectionString, entityExternalId, databaseId); break; case Constants.EntityType.PriceBand: { _logger.DebugFormat("PriceBand deletion message is not sent because it's not supported in Fourth.Orchestration.Model.Menus.Events."); } break; case Constants.EntityType.ProductSet: { payload = _eventFactory.CreateDeleteEvent <SetUpdated, SetUpdatedBuilder>(dbConnectionString, entityExternalId, databaseId); } break; case Constants.EntityType.Supplier: { payload = _eventFactory.CreateDeleteEvent <SupplierUpdated, SupplierUpdatedBuilder>(dbConnectionString, entityExternalId, databaseId); } break; case Constants.EntityType.UserGroup: { /* * User Groups are updated with Update message for users */ _logger.DebugFormat("UserGroup deletion does not send delete message."); } break; case Constants.EntityType.User: { payload = _eventFactory.CreateDeleteEvent <UserUpdated, UserUpdatedBuilder>(dbConnectionString, entityExternalId, databaseId); } break; case Constants.EntityType.UserUnit: { _logger.DebugFormat("UserUnit deletion message is not sent because it's not supported in Fourth.Orchestration.Model.Menus.Events."); } break; } return(payload); }