Exemplo n.º 1
0
        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);
        }