public ActionResult <ProductModel[]> GetType(string identity = null)
        {
            if (identity == null)
            {
                var products = _productManagement.LoadTypes(new ProductQuery {
                    Selector = Selector.Direct, ExcludeDerivedTypes = false
                })
                               .ToList();
                var productModels = new List <ProductModel>();
                foreach (var p in products)
                {
                    productModels.Add(_productConverter.ConvertProduct(p, false));
                }
                return(productModels.ToArray());
            }

            var identityArray = WebUtility.HtmlEncode(identity).Split('-');

            if (identityArray.Length != 2)
            {
                return(BadRequest($"Identity has wrong format. Must be identifier-revision"));
            }
            var productIdentity = new ProductIdentity(identityArray[0], Convert.ToInt16(identityArray[1]));
            var productType     = _productManagement.LoadType(productIdentity);

            if (productType == null)
            {
                return(NotFound());
            }
            return(new ProductModel[] { _productConverter.ConvertProduct(productType, false) });
        }