public RestaurantFullMenu getInventory()
        {
            RestaurantFullMenu retMenu = new RestaurantFullMenu();

            Configuration.Default.AccessToken = "sq0atp-ck43ZyjwVgVq8ZnmW98QNw";
            int categorynumber = 0;

            var apiInstance = new CatalogApi();

            try
            {
                // ListCatalog
                ListCatalogResponse result = apiInstance.ListCatalog(null, null);
                IDictionary <string, RestaurantItem>     items     = new Dictionary <string, RestaurantItem>();
                IDictionary <string, RestaurantCategory> categorys = new Dictionary <string, RestaurantCategory>();

                foreach (var restObj in result.Objects)
                {
                    switch (restObj.Type)
                    {
                    case Square.Connect.Model.CatalogObject.TypeEnum.ITEM:
                        if (restObj.ItemData.CategoryId == "CC523COHULAO3I5DAZRPCNKB")
                        {
                            items.Add(restObj.ItemData.Name, new RestaurantItem()
                            {
                                ItemName        = restObj.ItemData.Name,
                                ItemDescription = restObj.ItemData.Description,
                                ItemPrice       = "$12"
                            });
                        }
                        break;

                    case Square.Connect.Model.CatalogObject.TypeEnum.CATEGORY:
                        categorynumber = categorynumber + 1;
                        categorys.Add(restObj.CategoryData.Name, new RestaurantCategory()
                        {
                            CategoryName   = restObj.CategoryData.Name,
                            CategoryNumber = categorynumber.ToString()
                        });
                        break;

                    default:
                        break;
                    }
                }

                retMenu.items     = items;
                retMenu.categorys = categorys;
            }
            catch (Exception e)
            {
                //Debug.Print("Exception when calling CatalogApi.ListCatalog: " + e.Message);
            }

            return(retMenu);
        }
        public void Cleanup()
        {
            var cursor          = string.Empty;
            var objectsToDelete = new HashSet <String>();

            do
            {
                var response = instance.ListCatalog(cursor, null);
                objectsToDelete.UnionWith(response.Objects.Select(o => o.Id).ToList());
                cursor = response.Cursor;
            } while (!string.IsNullOrEmpty(cursor));

            objectsToDelete
            .Select((o, i) => new { Index = i, Value = o })
            .GroupBy(x => x.Index / 200)
            .Select(x => x.Select(v => v.Value).ToList())
            .ToList()
            .ForEach(ids =>
            {
                var request = new BatchDeleteCatalogObjectsRequest(ObjectIds: ids);
                instance.BatchDeleteCatalogObjects(request);
            });
        }