コード例 #1
0
        // 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);
        }
コード例 #2
0
        // 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);
        }