Ejemplo n.º 1
0
        private void Calc_kY()
        {
            var coeffsArr = Enumerable.Range(0, 12)
                            .Select(i => "b" + i)
                            .ToArray();

            CalcUtils.CopyCoeffs("OI_RnY",
                                 tables.BazaInfoHydro, tables.BazaInfoCoeffs, tables.CalcsHydro,
                                 coeffsArr);

            tables.CalcsHydro.IterateRows(row =>
            {
                int offset;

                if (row["DF1"].DoubleValue > 0.5)
                {
                    offset = 0;
                }
                else if (row["DF1"].DoubleValue <= 0.5 && row["DF2"].DoubleValue >= 0.5)
                {
                    offset = 4;
                }
                else if (row["DF1"].DoubleValue < 0.5 && row["DF2"].DoubleValue < 0.5)
                {
                    offset = 8;
                }
                else
                {
                    throw new Exception(
                        "Страница 9: Ни одно из условий не соблюдается");
                }

                var res = CalcUtils.BlockE_Func_Calc_1_3(
                    row[coeffsArr[0 + offset]].DoubleValue,
                    row[coeffsArr[1 + offset]].DoubleValue,
                    row[coeffsArr[2 + offset]].DoubleValue,
                    row[coeffsArr[3 + offset]].DoubleValue,
                    row["kXB"].DoubleValue);

                row.Set("kY", res, CellMapper.Rounder2);
            }, "kY");

            tables.Result.AddColumn(tables.CalcsHydro.Column("kY"));
        }