public JsonResult Decision(Models.FuzzyTopsis ft) { //Models.FuzzyTopsis ft = new Models.FuzzyTopsis() //{ // dgData = dgData, // dgWeight = dgWeight, // numCriteria = numCriteria, // numberOfAlternative = numberOfAlternative, // method = method //}; FuzzyTOPSIS FT = new FuzzyTOPSIS(); List <Element[]> wd = new List <Element[]>(); List <Element[][]> fdm = new List <Element[][]>(); #region Init Element[] weight = new Element[ft.numCriteria]; for (int i = 0; i < ft.numCriteria; i++) { weight[i] = new Element(); } Element[][] l = new Element[ft.numberOfAlternative + 1][]; for (int i = 0; i < l.Length; i++) { l[i] = new Element[ft.numCriteria]; for (int j = 0; j < ft.numCriteria; j++) { l[i][j] = new Element(); } } #endregion List <Element> list = new List <Element>(); Element el = new Element(); for (int i = 0; i < ft.numberOfAlternative; i++) { for (int j = 0; j < ft.numCriteria; j++) { l[i][j].e = Find(ft.dgData[i][j]); } } for (int i = 0; i < ft.numCriteria; i++) { weight[i].e = Find(ft.dgWeight[i][0]); } wd.Add(weight); fdm.Add(l); int[] criteria = new int[ft.numCriteria]; for (int i = 0; i < criteria.Length; i++) { criteria[i] = 1; } double[] result = FT.Do(wd, fdm, 1, ft.numCriteria, ft.numberOfAlternative, 1, criteria); double[] temp = new double[result.Length]; for (int i = 0; i < result.Length; i++) { temp[i] = result[i] / result.Sum(); } int[] alters = new int[ft.numberOfAlternative]; for (int i = 0; i < result.Length; i++) { alters[i] = i; } Models.Result r = new Models.Result(); r.data = temp; //var key = new System.Web.Helpers.Chart(width: 300, height: 300) //.AddTitle("نتیجه تصمیم گیری") //.AddSeries( // chartType: "Bubble", // name: "گزینه ها", // xValue:alters , // //xValue: new[] { "Peter", "Andrew", "Julie", "Dave" }, // yValues:result // //yValues: new[] { "2", "7", "5", "3" } // ); //return File(key.ToWebImage().GetBytes(), "image/jpeg"); //return (View // (viewName: "Result", // model: r)); return(Json(r.data, JsonRequestBehavior.AllowGet)); //string[][] dgData=null; //string[][] dgWeight = null; //#region Init //Element[] weight = new Element[numCriteria]; //for (int i = 0; i < numCriteria; i++) // weight[i] = new Element(); //Element[][] l = new Element[numberOfAlternative][]; //for (int i = 0; i < l.Length; i++) //{ // l[i] = new Element[numCriteria]; // for (int j = 0; j < numCriteria; j++) // l[i][j] = new Element(); //} //#endregion //List<Element> list = new List<Element>(); //Element el = new Element(); //for (int i = 0; i < numberOfAlternative - 1; i++) //{ // for (int j = 0; j < numCriteria; j++) // { // l[i][j].e = Find(dgData[i][j]); // } //} //for (int i = 0; i < numCriteria; i++) //{ // weight[i].e = Find(dgWeight[0][i]); //} //wd.Add(weight); //fdm.Add(l); //int[] criteria = new int[numCriteria]; //for (int i = 0; i < criteria.Length; i++) //{ // criteria[i] = 1; //} //double[] result = FT.Do(wd, fdm, 1, numCriteria, numberOfAlternative-1, 1, criteria); //for (int i = 0; i < result.Length; i++) //{ // result[i] = result[i] / result.Sum(); //} //int[] alters=new int[numberOfAlternative]; //for (int i=0;i<result.Length;i++){ // alters[i]=i; //} }