public JsonResult GetConfigurationInstance(string modelName)
        {
            // Get the FeatureModel
            ModelManager manager = new ModelManager(_modelFolderPath);

            Core.Modelling.BLOs.Model targetModel = manager.GetModelByFileNameInFolder(modelName);

            // Create a ConfiguratorSession and store it in the session
            ConfigurationInstanceManager configurationInstanceManager = new ConfigurationInstanceManager(_configurationInstanceFolderPath);
            ConfiguratorSession          configSession = configurationInstanceManager.CreateConfiguratorSession(targetModel);

            HttpContext.Session["configuratorSession"] = configSession;

            // Toggle the root feature, as an initial starting point
            configSession.ToggleFeatureAsUser(configSession.configurationInstance.RootFeatureSelection.FeatureIdentifier);


            //
            return(Json(configSession.configurationInstance, JsonRequestBehavior.AllowGet));
        }
        public JsonResult UploadModelFile() // Uploads a Model file and then returns the ConfigurationInstance
        {
            try
            {
                // Get the model from the uploaded file
                var          file    = Request.Files[0];
                ModelManager manager = new ModelManager(_modelFolderPath);
                Core.Modelling.BLOs.Model targetModel = manager.GetModelFromStream(file.InputStream);

                // Create a ConfiguratorSession and store it in the session
                ConfigurationInstanceManager configurationInstanceManager = new ConfigurationInstanceManager(_configurationInstanceFolderPath);
                ConfiguratorSession          configSession = configurationInstanceManager.CreateConfiguratorSession(targetModel);
                HttpContext.Session["configuratorSession"] = configSession;

                //// Toggle the root feature, as an initial starting point
                //configSession.ToggleFeatureAsUser(configSession.configurationInstance.RootFeatureSelection.FeatureIdentifier);

                return(Json(configSession.configurationInstance));
            }
            catch (System.Exception ex)
            {
                return(Json("Upload Failed: " + ex.Message));
            }
        }