public static DataBase.Coefficient GetCoefficient(long idOfIndex) { DbConnection.Initialise(StringConnection); var k = new DataBase.Coefficient(); using (var adapter = TableAdapter <Info> .Open()) k.Info = adapter.Select().Where(tbl => tbl.ID_KIndex == Convert.ToInt64(idOfIndex)).ToList(); using (var adapter = TableAdapter <KIndex> .Open()) { var row = adapter.Select().First(tbl => tbl.ID == Convert.ToInt64(idOfIndex)); k.Name = row.Name; k.ParamName = row.ParamName; k.ParamDiscription = row.ParamDiscription; k.Discription = row.Discription; k.ID_KIndex = idOfIndex; } return(k); }
public static double GetCoefficientValue(DataBase.Coefficient coeff) { DbConnection.Initialise(StringConnection); Int64 infoId = 0; double value = 0; List <Coefficient> rows; Double.TryParse(coeff.SelectedParamValue, out value); if (coeff.Info.Count != 0) { using (var adapter = TableAdapter <Info> .Open()) infoId = adapter.Select().First(tbl => (tbl.ID_KIndex == coeff.ID_KIndex) && (tbl.Discription == coeff.SelectedParamValue)).ID; } Node item = coeff.ID; using (var adapter = TableAdapter <Tables.Coefficient> .Open()) rows = adapter.Select().Where(tbl => (tbl.ID_KIndex == coeff.ID_KIndex) && ((tbl.ID_Type == item.ID_Type) || ( (tbl.ID_KIndex == coeff.ID_KIndex) && (tbl.ID_Type == null) && (tbl.ID_Scroll == item.ID_Scroll)) || ( (tbl.ID_KIndex == coeff.ID_KIndex) && (tbl.ID_Type == null) && (tbl.ID_Scroll == null) && (tbl.ID_Class == item.ID_Class)) )).ToList(); if (infoId != 0) { foreach (var row in rows) { if (row.Info == infoId) { return(row.Value); } } } if (rows.FirstOrDefault(r => r.MathModel != null) != null) { Kmodel m; using (var adapter = TableAdapter <Kmodel> .Open()) m = adapter.Select().FirstOrDefault(tbl => (tbl.ID_KIndex == coeff.ID_KIndex) && ((tbl.ID_Type == item.ID_Type) || ( (tbl.ID_KIndex == coeff.ID_KIndex) && (tbl.ID_Type == null) && (tbl.ID_Scroll == item.ID_Scroll)) || ( (tbl.ID_KIndex == coeff.ID_KIndex) && (tbl.ID_Type == null) && (tbl.ID_Scroll == null) && (tbl.ID_Class == item.ID_Class)) )); if (m == null) { m = new Kmodel(); } ExpressionContext context = new ExpressionContext(); context.Imports.AddType(typeof(Math)); List <string> s = context.Variables.Keys.ToList(); context.Variables["A"] = m.A; context.Variables["Ns"] = m.Ns; context.Variables["B"] = m.B; context.Variables["Nt"] = m.Nt; context.Variables["G"] = m.G; context.Variables["t"] = coeff.Temperature; context.Variables["H"] = m.H; context.Variables["value"] = value; context.Variables["J"] = m.J; IDynamicExpression eDynamic = context.CompileDynamic(rows[0].MathModel); var x = (double)eDynamic.Evaluate(); return(x); } if (rows.FirstOrDefault(r => (r.ParamMin != 0) || (r.ParamMax != 0)) != null) { foreach (var row in rows) { if ((row.ParamMax == 0) && (row.ParamMin > 0)) { row.ParamMax = double.MaxValue; } if ((row.ParamMin <= value) && (value < row.ParamMax)) { return(row.Value); } } } if (rows.FirstOrDefault(r => r.ParamFix != 0) != null) { foreach (var row in rows) { if (row.ParamFix != value) { return(row.Value); } } } return(value); }