// POST api/<controller> public HttpResponseMessage Post([FromBody] JObject value) { ScatterDomainService ScatterDomainService = new Ewav.Web.Services.ScatterDomainService(); GadgetParameters GadgetParameters; ControllerCommon CommonClass = new ControllerCommon(); List <EwavRule_Base> Rules = new List <EwavRule_Base>(); Google.DataTable.Net.Wrapper.DataTable dt = null; JObject chartJSON = (JObject)value["chart"]; List <EwavDataFilterCondition> dashboardFilters = new List <EwavDataFilterCondition>(); GadgetParameters = new GadgetParameters(); GadgetParameters.DatasourceName = chartJSON["@DatasourceName"].ToString(); GadgetParameters.InputVariableList = new Dictionary <string, string>(); GadgetParameters.TableName = CommonClass.GetDatabaseObject(GadgetParameters.DatasourceName); Mapper Mapper = new Controllers.Mapper(); GadgetParameters.MainVariableName = chartJSON["xAxisVariable"].ToString(); GadgetParameters.CrosstabVariableName = chartJSON["yAxisVariable"].ToString(); Rules = CommonClass.ReadRules(value); dashboardFilters = CommonClass.GetFilters(value); GadgetParameters.GadgetFilters = CommonClass.GetFilters(chartJSON, true); dt = new Google.DataTable.Net.Wrapper.DataTable(); ScatterDataDTO ScatterDTO = ScatterDomainService.GenerateTable( GadgetParameters, dashboardFilters, Rules, CommonClass.AdvancedDataFilterString); //if (ScatterDTO.RegresResults.Variables != null) //{ decimal coefficient = Convert.ToDecimal(ScatterDTO.RegresResults.Variables[0].Coefficient); decimal constant = Convert.ToDecimal(ScatterDTO.RegresResults.Variables[1].Coefficient); NumericDataValue newMaxValue = new NumericDataValue(); newMaxValue.IndependentValue = ScatterDTO.MaxValue.IndependentValue + 1; newMaxValue.DependentValue = (coefficient * ScatterDTO.MaxValue.IndependentValue) + constant; NumericDataValue newMinValue = new NumericDataValue(); newMinValue.IndependentValue = ScatterDTO.MinValue.IndependentValue - 1; newMinValue.DependentValue = (coefficient * ScatterDTO.MinValue.IndependentValue) + constant; //} dt.AddColumn(new Column(ColumnType.Number, "X", "X")); dt.AddColumn(new Column(ColumnType.Number, GadgetParameters.MainVariableName, GadgetParameters.MainVariableName)); dt.AddColumn(new Column(ColumnType.Number, GadgetParameters.CrosstabVariableName, GadgetParameters.CrosstabVariableName)); Row r = dt.NewRow(); r.AddCellRange(new Cell[] { new Cell(newMinValue.IndependentValue), new Cell(newMinValue.DependentValue), new Cell(null) } ); dt.AddRow(r); r = dt.NewRow(); r.AddCellRange(new Cell[] { new Cell(newMaxValue.IndependentValue), new Cell(newMaxValue.DependentValue), new Cell(null) } ); dt.AddRow(r); foreach (var item in ScatterDTO.DataValues) { r = dt.NewRow(); r.AddCellRange(new Cell[] { new Cell(item.IndependentValue), new Cell(null), new Cell(item.DependentValue) } ); dt.AddRow(r); } var obj = new HttpResponseMessage() { Content = new StringContent(dt.GetJson()) }; obj.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); return(obj); }
// POST api/<controller> public HttpResponseMessage Post([FromBody] JObject value) { LinearRegressionDomainService LinearRegressionDomainService = new LinearRegressionDomainService(); GadgetParameters GadgetParameters; ControllerCommon CommonClass = new ControllerCommon(); List <EwavRule_Base> Rules = new List <EwavRule_Base>(); JObject gadgetJSON = (JObject)value["gadget"]; List <EwavDataFilterCondition> dashboardFilters = new List <EwavDataFilterCondition>(); GadgetParameters = new GadgetParameters(); GadgetParameters.DatasourceName = gadgetJSON["@DatasourceName"].ToString(); GadgetParameters.InputVariableList = new Dictionary <string, string>(); GadgetParameters.TableName = CommonClass.GetDatabaseObject(GadgetParameters.DatasourceName); Mapper Mapper = new Controllers.Mapper(); Rules = CommonClass.ReadRules(value); dashboardFilters = CommonClass.GetFilters(value); GadgetParameters.GadgetFilters = CommonClass.GetFilters(gadgetJSON, true); List <string> columnNames = new List <string>(); Dictionary <string, string> inputVariableList = Mapper.MapJSONToRegressionInputVariableList(gadgetJSON); foreach (KeyValuePair <string, string> kvp in inputVariableList) { if (kvp.Value.ToLower().Equals("unsorted") || kvp.Value.ToLower().Equals("dependvar") || kvp.Value.ToLower().Equals("weightvar") || kvp.Value.ToLower().Equals("matchvar")) { columnNames.Add(kvp.Key); } else if (kvp.Value.ToLower().Equals("discrete")) { columnNames.Add(kvp.Key); } } List <DictionaryDTO> inputDtoList = new List <DictionaryDTO>(); inputDtoList = Mapper.MapDictToList(inputVariableList); LinRegressionResults LinRegressionResults = LinearRegressionDomainService.GetRegressionResult( GadgetParameters, columnNames, inputDtoList, dashboardFilters, Rules, CommonClass.AdvancedDataFilterString); LinRegressionResults = Mapper.FormatLinRegressionResults(LinRegressionResults); var obj = new HttpResponseMessage() { Content = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(LinRegressionResults))//dt.GetJson()) }; obj.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json"); return(obj); }