public ActionResult SaveInstance(ProductInstanceModel instanceModel) { if (instanceModel == null) { return(BadRequest($"Instance model was empty")); } var type = ReflectionTool.GetPublicClasses <IProductType>(t => t.Name == instanceModel.Type) .FirstOrDefault(); if (type == null) { return(NotFound()); } var productType = (IProductType)Activator.CreateInstance(type); var productInstance = _productConverter.ConvertProductInstanceBack(instanceModel, productType); _productManagement.SaveInstance(productInstance); return(Ok()); }