//[SwaggerDefaultValue("Compare", "<", "<,<=,>,>=,=")]
        //[SwaggerDefaultValue("Model_URI", "@{body('besconnector').Results.output2.FullURL}")]
        //[SwaggerDefaultValue("Evaluate_Output_Path", "@{body('besconnector').Results.output1.FullURL}")]
        public async Task<HttpResponseMessage> Post(
            [Metadata("Retrained Results", "This should be the results from the BES Output")][FromBody] JObject body,
            [Metadata("Trained Model Output Name", "The name of the trained model output from BES")]string trainedOutputName,

            [Metadata("Scoring Web Service URL", "This is the new endpoint's Patch URL which you can get from Azure Portal's web service Dashboard. It is also returned when you call the AddEndpoint method to create the endpoint using the APIs")] string WebService_URL,
       
            [Metadata("Scoring Web Service Key", "This is the API Key of the new endpoint which you can get from Azure Portal's web service Dashboard")] string WebService_Key,
           
            [Metadata("Resource Name", "Saved Trained Model Name e.g. MyTrainedModel [trained model]")] string Resource_Name,
                          [Metadata("Evaluate Model Output NAme", "The name of the evaluation model from BES")]  string evaluateOutputName = "",
            [Metadata("Evaluate Result Key", "The name of the parameter from the Evaluate Module result. Use the Visualize option of the module in the experiment to get the list of available keys to use here.")] string Evaluate_Key = "",
            [Metadata("Evaluate Condition", "Use to set the condition for the threshold for retraining.")] string Compare = "",
            [Metadata("Evaluate Value", "The threshold value of the Evaluation Result Key.")] double Evaluate_Condition = 0
            )
        {
            string Evaluate_Output_Path = evaluateOutputName == "" ? "" : (string)body[evaluateOutputName]["FullURL"];
            string Model_URI = (string)body[trainedOutputName]["FullURL"];
            bool passEvaluate = CheckEvaluate(Evaluate_Output_Path, Evaluate_Key, Compare, Evaluate_Condition);
            ResponeObject Robj = new ResponeObject();
            if (passEvaluate)
            {
                HttpResponseMessage result = await OverwriteModel(Model_URI, WebService_URL, WebService_Key, Resource_Name);
                //return Request.CreateResponse(result.StatusCode, )

                Robj.HttpStatusCode = result.StatusCode;
                if (result.IsSuccessStatusCode)
                {
                    Robj.Description = "Successfully updated the model";
                    return Request.CreateResponse<ResponeObject>(HttpStatusCode.OK, Robj);
                }
                else
                {
                    Robj.Description = "UnSuccessful updated the model";
                    return Request.CreateResponse<ResponeObject>(HttpStatusCode.InternalServerError, Robj);
                }

            }

            Robj.HttpStatusCode = HttpStatusCode.NotAcceptable;
            Robj.Description = "The condition is not acceptable";
            return Request.CreateResponse<ResponeObject>(HttpStatusCode.NotAcceptable, Robj);
        }