public ActionResult Demo() { //OxyConverterLib.Calculate ocl = new OxyConverterLib.Calculate(); OxyConverterDB _db = new OxyConverterDB(); if (_db.Variants.Where(l => l.Owner.ID_User == _users.CurrentUser.ID_User).FirstOrDefault() == null) { double _Q = 80; double _C = 3; double _T = 298; double _P = 140000; string _NameDefaultVariant = "Шаблон"; Variants var_default = new Variants { NameVariant = _NameDefaultVariant, DateVariant = System.DateTime.Now, Owner = _users.CurrentUser }; int _ID_Variant_new = _db.Variants.Where(p => p.NameVariant == _NameDefaultVariant && p.Owner.ID_User == _users.CurrentUser.ID_User).First().ID_Variant; InputDataVariants inputDataVariants_new = new InputDataVariants { ID_Variant = _ID_Variant_new, Q = _Q, C = _C, T = _T, P = _P, Owner = _users.CurrentUser }; _inputDataVariants.InsertOrUpdate(inputDataVariants_new); _inputDataVariants.Save(); } int _ID_Variant_First = _db.Variants.First(p => p.Owner.ID_User == _users.CurrentUser.ID_User).ID_Variant; OxyConverterLib.Calculate ocl = new OxyConverterLib.Calculate(); #region --- Задать исходные данные для первого найденного варианта ocl.Q = _inputDataVariants.All.First(p => p.Variants.ID_Variant == _ID_Variant_First && p.Owner.ID_User == _users.CurrentUser.ID_User).Q; ocl.C = _inputDataVariants.All.First(p => p.Variants.ID_Variant == _ID_Variant_First && p.Owner.ID_User == _users.CurrentUser.ID_User).C; ocl.T = _inputDataVariants.All.First(p => p.Variants.ID_Variant == _ID_Variant_First && p.Owner.ID_User == _users.CurrentUser.ID_User).T; ocl.P = _inputDataVariants.All.First(p => p.Variants.ID_Variant == _ID_Variant_First && p.Owner.ID_User == _users.CurrentUser.ID_User).P; #endregion --- Задать исходные данные для первого найденного варианта ViewBag.InputData = ocl; ViewBag.ID_Variant = new SelectList(_variants.All.Where(t => t.Owner.ID_User == _users.CurrentUser.ID_User), "ID_Variant", "NameVariant"); ViewBag.NameNewVariant = "Новый вариант"; return(View()); }
public ActionResult Demo(string _ID_Variant) { int ID_Variant = int.Parse(_ID_Variant); OxyConverterLib.Calculate ocl = new OxyConverterLib.Calculate(); #region --- Задать исходные данные для выбранного варианта ocl.Q = _inputDataVariants.All.First(p => p.Variants.ID_Variant == ID_Variant && p.Owner.ID_User == _users.CurrentUser.ID_User).Q; ocl.C = _inputDataVariants.All.First(p => p.Variants.ID_Variant == ID_Variant && p.Owner.ID_User == _users.CurrentUser.ID_User).C; ocl.T = _inputDataVariants.All.First(p => p.Variants.ID_Variant == ID_Variant && p.Owner.ID_User == _users.CurrentUser.ID_User).T; ocl.P = _inputDataVariants.All.First(p => p.Variants.ID_Variant == ID_Variant && p.Owner.ID_User == _users.CurrentUser.ID_User).P; #endregion --- Задать исходные данные для выбранного варианта ViewBag.InputData = ocl; ViewBag.ID_Variant = new SelectList(_variants.All.Where(t => t.Owner.ID_User == _users.CurrentUser.ID_User), "ID_Variant", "NameVariant"); ViewBag.NameNewVariant = "Новый вариант"; return(View()); }
public void TestMethod1() { OxyConverterLib.Calculate cc = new OxyConverterLib.Calculate(); #region 1. Присвоить исходные данные cc.Q = 80; cc.q = 3; cc.T = 298; cc.P = 140000; #endregion 1. Присвоить исходные данные #region 2. Передать исходные данные в Excel-файл, записать в соответствующие ячейки (формат адреса ячейки [номер строки, номер столбца]) objExcel = new Excel.Application(); WorkBook = objExcel.Workbooks.Open( Directory.GetCurrentDirectory() + "\\" + fileName); Excel.Worksheet WorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)WorkBook.Sheets["Лист1"]; ((Microsoft.Office.Interop.Excel.Range)WorkSheet.Cells[3, 3]).Value2 = cc.Q; ((Microsoft.Office.Interop.Excel.Range)WorkSheet.Cells[4, 3]).Value2 = cc.q; ((Microsoft.Office.Interop.Excel.Range)WorkSheet.Cells[5, 3]).Value2 = cc.T; ((Microsoft.Office.Interop.Excel.Range)WorkSheet.Cells[6, 3]).Value2 = cc.P; #endregion 2. Передать исходные данные в Excel-файл, записать в соответствующие ячейки (формат адреса ячейки [номер строки, номер столбца]) #region 3. Прочитать из ячейки Excel-файла расчетное значение double Get_Vud = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[11, 3]).Value.ToString()); double Get_Wud = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[12, 3]).Value.ToString()); double Get_Ph = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[13, 3]).Value.ToString()); double Get_Ro_h = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[14, 3]).Value.ToString()); double Get_Lambda = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[15, 3]).Value.ToString()); double Get_W_g = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[16, 3]).Value.ToString()); double Get_Ro_g = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[17, 3]).Value.ToString()); double Get_H0 = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[18, 3]).Value.ToString()); double Get_D = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[19, 3]).Value.ToString()); double Get_Vm = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[20, 3]).Value.ToString()); double Get_d_dn = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[21, 3]).Value.ToString()); double Get_d_g = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[22, 3]).Value.ToString()); double Get_V = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[23, 3]).Value.ToString()); double Get_H_k = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[24, 3]).Value.ToString()); double Get_H_c = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[25, 3]).Value.ToString()); double Get_H_v = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[26, 3]).Value.ToString()); double Get_t_c = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[27, 3]).Value.ToString()); double Get_t_dn = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[28, 3]).Value.ToString()); double Get_t_k = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[29, 3]).Value.ToString()); double Get_delta = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[30, 3]).Value.ToString()); double Get_D_n = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[31, 3]).Value.ToString()); double Get_H = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[32, 3]).Value.ToString()); double Get_d_otv = double.Parse(((Excel.Range)WorkBook.Sheets["Лист1"].Cells[33, 3]).Value.ToString()); if (WorkBook != null) { WorkBook.Close(false, null, null); } if (objExcel != null) { objExcel.Quit(); } #endregion 3. Прочитать из ячейки Excel-файла расчетное значение #region 4. Сравнить значения из Excel и из библиотеки с нужной точностью, знаков после запятой Console.WriteLine("--- Результаты расчетов"); Console.WriteLine(""); Assert.AreEqual(Get_Vud, Math.Round((double)cc.Vud, 2), 0.01); Console.WriteLine("Удельный объем кислородного конвертера : ожидается Vud={0}; фактически cc.Vud()= {1}", Get_Vud, Math.Round((double)cc.Vud, 2)); Assert.AreEqual(Get_Wud, Math.Round((double)cc.Wud, 2), 0.01); Console.WriteLine("Критическая скорость истечения кислорода : ожидается Wud={0}; фактически cc.Wud()= {1}", Get_Wud, Math.Round((double)cc.Wud, 2)); Assert.AreEqual(Get_Ph, Math.Round((double)cc.Ph, 2), 0.01); Console.WriteLine("Давление кислорода перед соплами кислородной фурмы : ожидается Ph={0}; фактически cc.Ph()= {1}", Get_Ph, Math.Round((double)cc.Ph, 2)); Assert.AreEqual(Get_Ro_h, Math.Round((double)cc.Ro_h, 2), 0.01); Console.WriteLine("Начальная плотность кислорода : ожидается Ro_h={0}; фактически cc.Ro_h()= {1}", Get_Ro_h, Math.Round((double)cc.Ro_h, 2)); Assert.AreEqual(Get_Lambda, Math.Round((double)cc.Lambda, 2), 0.01); Console.WriteLine("Критерий скорости истечения кислорода : ожидается Lambda={0}; фактически cc.Lambda()= {1}", Get_Lambda, Math.Round((double)cc.Lambda, 2)); Assert.AreEqual(Get_W_g, Math.Round((double)cc.W_g, 2), 0.01); Console.WriteLine("Скорость истечения кислорода на срезе сопла кислородной фурмы : ожидается W_g={0}; фактически cc.W_g()= {1}", Get_W_g, Math.Round((double)cc.W_g, 2)); Assert.AreEqual(Get_Ro_g, Math.Round((double)cc.Ro_g, 2), 0.01); Console.WriteLine("Плотность кислорода на срезе сопла кислородной фурмы : ожидается Ro_g={0}; фактически cc.Ro_g()= {1}", Get_Ro_g, Math.Round((double)cc.Ro_g, 2)); Assert.AreEqual(Get_H0, Math.Round((double)cc.H0, 2), 0.01); Console.WriteLine("Глубина спокойной ванны : ожидается H0={0}; фактически cc.H0()= {1}", Get_H0, Math.Round((double)cc.H0, 2)); Assert.AreEqual(Get_D, Math.Round((double)cc.D, 2), 0.01); Console.WriteLine("Внутренний диаметр конвертора : ожидается D={0}; фактически cc.D()= {1}", Get_D, Math.Round((double)cc.D, 2)); Assert.AreEqual(Get_Vm, Math.Round((double)cc.Vm, 2), 0.01); Console.WriteLine("Объём металлической ванны : ожидается Vm={0}; фактически cc.Vm()= {1}", Get_Vm, Math.Round((double)cc.Vm, 2)); Assert.AreEqual(Get_d_dn, Math.Round((double)cc.d_dn, 2), 0.01); Console.WriteLine("Внутренний диаметр днища : ожидается d_dn={0}; фактически cc.d_dn()= {1}", Get_d_dn, Math.Round((double)cc.d_dn, 2)); Assert.AreEqual(Get_d_g, Math.Round((double)cc.d_g, 2), 0.01); Console.WriteLine("Диаметр горловины конвертора : ожидается d_g={0}; фактически cc.d_g()= {1}", Get_d_g, Math.Round((double)cc.d_g, 2)); Assert.AreEqual(Get_V, Math.Round((double)cc.V, 2), 0.01); Console.WriteLine("Рабочий объём конвертора : ожидается V={0}; фактически cc.V()= {1}", Get_V, Math.Round((double)cc.V, 2)); Assert.AreEqual(Get_H_k, Math.Round((double)cc.H_k, 2), 0.01); Console.WriteLine("Высота конической части конвертера : ожидается H_k={0}; фактически cc.H_k()= {1}", Get_H_k, Math.Round((double)cc.H_k, 2)); Assert.AreEqual(Get_H_c, Math.Round((double)cc.H_c, 2), 0.01); Console.WriteLine("Высота цилидрической части конвертера : ожидается H_c={0}; фактически cc.H_c()= {1}", Get_H_c, Math.Round((double)cc.H_c, 2)); Assert.AreEqual(Get_H_v, Math.Round((double)cc.H_v, 2), 0.01); Console.WriteLine("Внутренняя высота конвертера : ожидается H_v={0}; фактически cc.H_v()= {1}", Get_H_v, Math.Round((double)cc.H_v, 2)); Assert.AreEqual(Get_t_c, Math.Round((double)cc.t_c, 2), 0.01); Console.WriteLine("Толщина футеровки конвертера в цилиндрической части : ожидается t_c={0}; фактически cc.t_c()= {1}", Get_t_c, Math.Round((double)cc.t_c, 2)); Assert.AreEqual(Get_t_dn, Math.Round((double)cc.t_dn, 2), 0.01); Console.WriteLine("Толщина днища конвертера : ожидается t_dn={0}; фактически cc.t_dn()= {1}", Get_t_dn, Math.Round((double)cc.t_dn, 2)); Assert.AreEqual(Get_t_k, Math.Round((double)cc.t_k, 2), 0.01); Console.WriteLine("Толщина футеровки конвертера в конической части : ожидается t_k={0}; фактически cc.t_k()= {1}", Get_t_k, Math.Round((double)cc.t_k, 2)); Assert.AreEqual(Get_delta, Math.Round((double)cc.delta, 2), 0.01); Console.WriteLine("Толщина металлического кожуха конвертера : ожидается delta={0}; фактически cc.delta()= {1}", Get_delta, Math.Round((double)cc.delta, 2)); Assert.AreEqual(Get_D_n, Math.Round((double)cc.D_n, 2), 0.01); Console.WriteLine("Наружный диаметр конвертера : ожидается D_n={0}; фактически cc.D_n()= {1}", Get_D_n, Math.Round((double)cc.D_n, 2)); Assert.AreEqual(Get_H, Math.Round((double)cc.H, 2), 0.01); Console.WriteLine("Полная высота конвертера : ожидается H={0}; фактически cc.H()= {1}", Get_H, Math.Round((double)cc.H, 2)); Assert.AreEqual(Get_d_otv, Math.Round((double)cc.d_otv, 2), 0.01); Console.WriteLine("Диаметр сталевыпускного отверстия : ожидается d_otv={0}; фактически cc.d_otv() = {1}", Get_d_otv, Math.Round((double)cc.d_otv, 2)); #endregion 4. Сравнить значения из Excel и из библиотеки с нужной точностью, знаков после запятой }