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) }); }