public void SetModifiedMenuAsDefault(string enterpriseId)
        {
            using (var session = _documentStore.OpenSession())
            {
                var enterprise   = session.Load <Enterprise>(enterpriseId);
                var modifiedMenu = session.Include <ModifiedMenu>(m => m.Menu.Categories.SelectMany(p => p.Products)).Load(enterprise.ModifiedMenu);

                //Get deleted products. Products that exist in Original menu but NOT in the new Modified menu.
                var deletedProductsIds =
                    GeneralHelper.CompareLists(enterprise.Menu.Categories.SelectMany(c => c.Products).ToList(),
                                               modifiedMenu.Menu.Categories.SelectMany(c => c.Products).ToList());
                var productsToDelete = session.Load <Product>(deletedProductsIds);
                foreach (var productToDelete in productsToDelete)
                {
                    //Delete products
                    if (productToDelete.Id == enterpriseId)
                    {
                        session.Delete(productToDelete);
                    }
                    else
                    {
                        _logger.Warn(string.Format("Was about to delete product ({0}) that not belongs to enterprise ({1}) Code:[bvfgttls]", productToDelete.Id, enterpriseId));
                    }
                }
                if (productsToDelete.Any())
                {
                    _logger.Info(string.Format("{0} products deleted for approved modified menu. Enterprise: {1}", productsToDelete.Count(), enterpriseId));
                }

                //Set all updated versions to be the real versions
                var products = session.Load <Product>(modifiedMenu.Menu.Categories.SelectMany(p => p.Products));
                foreach (var p in products.Where(p => p.UpdatedVersion != null))
                {
                    var product = ProductHelper.AddUpdatedInfoToProduct(p);
                    product.UpdatedVersion = null;
                }
                if (products.Any())
                {
                    _logger.Info(string.Format("Updated {0} products for approved modified menu. Enterprise: {1}", products.Count(), enterpriseId));
                }

                enterprise.Menu         = modifiedMenu.Menu;
                enterprise.ModifiedMenu = null;

                session.Delete(modifiedMenu);

                session.SaveChanges();
            }
        }