// Not used : changed to Views Result public ActionResult ViewSystemValues(int LsystemID,int ViewsID) { try { Lsystem lsystem = db.Lsystem.FirstOrDefault(x => x.LsystemID == LsystemID); ViewBag.LsystemName = lsystem.LsystemName; ViewBag.ViewsName = db.Views.FirstOrDefault(x => x.ViewsID == ViewsID).ViewsName; Views views = db.Views.FirstOrDefault(x => x.ViewsID == ViewsID); var req_prop = db.ViewsProperty.Where(x => x.ViewsID == ViewsID).ToList().OrderBy(x => x.TcSetID); var req_set = new List<TcSet>(); foreach (var item in req_prop) req_set.Add(item.TcSet); var configlist = db.ConfigurationCollection.Where(x => x.LsystemID == LsystemID).ToList(); var tcidlist = new List<int>(); //foreach (var item in views.TechnicalCharacteristic) // tcidlist.Add(item.TechnicalCharacteristicID); var opidlist = new List<int>(); foreach (var item in tcidlist) { foreach (var op in lsystem.Options) if (op.TechnicalCharacteristicID == item) opidlist.Add(op.OptionID); } var covlist = new List<Config_OptionVal>(); foreach (var item in configlist) { foreach (var opid in opidlist) { foreach (var c in db.Config_OptionVal) { if (c.OptionID == opid && c.ConfigurationCollectionID == item.ConfigurationCollectionID && !covlist.Contains(c)) covlist.Add(c); } } } var ovcombi = new List<List<int>>(); var op_ov_list = new List<Tuple<int, int, List<int>>>(); foreach (var con in configlist) { foreach (var op in opidlist) { var ovidlist = new List<int>(); foreach (var cov in covlist) { if (cov.ConfigurationCollectionID == con.ConfigurationCollectionID && cov.OptionID == op) { ovidlist.Add(cov.OptionValueID); } } op_ov_list.Add(new Tuple<int, int, List<int>>(con.ConfigurationCollectionID, op, ovidlist)); } } var ovrows = new List<List<String>>(); var B = new List<String>(); foreach (var config in configlist) { var A = new List<String>(); int count = 0; foreach (var item in op_ov_list) { if (item.Item1 == config.ConfigurationCollectionID) { if (count == 0) { foreach (var ov in item.Item3) A.Add(ov.ToString()); count++; } else { foreach (var ov in item.Item3) B.Add(ov.ToString()); A = Cartesian(A, B); } } } ovrows.Add(A.Distinct().ToList()); } var distinctrows = new List<String>(); foreach (var item in ovrows) { foreach (var a in item) { if (!distinctrows.Contains(a)) distinctrows.Add(a); } } var rowovidlist = new List<int[]>(); foreach (var item in distinctrows) { int i = 0; string[] itemsplit = item.Split(new string[] { "delim" }, StringSplitOptions.None); int[] opid = new int[itemsplit.Count()]; foreach (var x in itemsplit) opid[i++] = int.Parse(x); rowovidlist.Add(opid); } var model = new ModelToBePassed { TcSet = req_set, ViewsVM = new List<ViewsVM>() }; model.TcSet = req_set; var r = new List<String[]>(); var distinctr = new List<String[]>(); foreach (var item in rowovidlist) { var row = new String[req_set.Count()]; int i = 0; foreach (var ovid in item) { var ov = db.OptionValue.FirstOrDefault(x => x.OptionValueID == ovid); int count = 0; foreach (var set in ov.SetValue.OrderBy(x => x.TcSet.TcSetID)) { count++; //Important part is commented if (req_set.Any(x => x.TcSetID == set.TcSetID)) { row[i++] = set.Value; break; } //if (!req_set.Any(x => x.TcSetID == set.TcSetID)) // row[i++] = "null"; //if (a.TcSetID == set.TcSetID) // row[i++] = set.Value; else if (count == ov.SetValue.Count()) row[i++] = "no value"; } } r.Add(row); } foreach (var item in op_ov_list) { var ov_list = new List<int>(); } var stringlist = new List<String>(); foreach (var item in r) { string s = "delim"; foreach (var x in item) { if (x == null) s = s + "no value" + "delim"; else s = s + x + "delim"; } s = string.Join("", s.Split(default(string[]), StringSplitOptions.RemoveEmptyEntries)); stringlist.Add(s); } var distinctstringlist = stringlist.Distinct().ToList(); distinctr = r.Distinct().ToList(); foreach (var item in distinctstringlist) { var row1 = new String[req_set.Count()]; row1 = item.Split(new string[] { "delim" }, StringSplitOptions.RemoveEmptyEntries); var viewvm = new ViewsVM(); viewvm.row = row1; model.ViewsVM.Add(viewvm); } return View(model); } catch(Exception e) { ViewBag.Error = e.Message; return View("Error"); } }
//To View the different values for the system in the View : Not required public ActionResult ViewSystemValue (int LsystemID,int ViewsID) { try { var model = new List<ViewSystemValuesVM>(); var lsystem = db.Lsystem.FirstOrDefault(x => x.LsystemID == LsystemID); ViewBag.LsystemName = lsystem.LsystemName; ViewBag.ViewsName = db.Views.FirstOrDefault(x => x.ViewsID == ViewsID).ViewsName; var viewslist = db.ViewsProperty.Where(x => x.ViewsID == ViewsID).ToList(); var tclist = new List<TcSet>(); var tcid = new List<int>(); foreach (var item in viewslist) { tclist.Add(db.TcSet.FirstOrDefault(x => x.TcSetID == item.TcSetID)); tcid.Add(item.TcSetID); } var optionlist = new List<Option>(); foreach (var item in tclist) { foreach (var op in db.Option.ToList()) { if (op.TechnicalCharacteristicID == item.TechnicalCharacteristicID && op.LsystemID == LsystemID) if (!optionlist.Contains(op)) optionlist.Add(op); } } foreach (var item in optionlist) { foreach (var ov in item.OptionValues) { foreach (var sv in ov.SetValue) { if (tclist.Any(p => p.TcSetID == sv.TcSetID)) { var VM = new ViewSystemValuesVM(); VM.TcSetID = sv.TcSetID; VM.Value = sv.Value; model.Add(VM); } } } } string[] myArray = new string[tclist.Count()]; var model1 = new List<String[]>(); int tclistcount = tclist.Count(); int[] tcidcopy = new int[tclistcount]; var serialize = new List<Tuple<int, List<string>>>(); for (int i = 0; i < tcid.Count(); i++) { var val = new List<string>(); foreach (var item in model) { if (tcid[i] == item.TcSetID) val.Add(item.Value); } serialize.Add(new Tuple<int, List<string>>(tcid[i], val)); } var rowval = new List<string>(); int j = 0; var A = new List<String>(); foreach (var item in serialize) { if (j == 0) { A = item.Item2; j = 1; } else A = Cartesian(A, item.Item2); } ViewBag.A = A; var distinctlist = new List<String>(); distinctlist = A.Distinct().ToList(); var ViewsVM = new List<ViewsVM>(); foreach (var item in distinctlist) { var row = new ViewsVM(); row.row = item.Split(new string[] { "delim" }, StringSplitOptions.None); ViewsVM.Add(row); } var modeltobepassed = new ModelToBePassed { ViewsVM = ViewsVM, TcSet = tclist }; return View(modeltobepassed); } catch(Exception e) { ViewBag.Error = e.Message; return View("Error"); } }