Exemple #1
0
        private void InsertResult(string id, Dictionary <int, double[][]> resByPol)
        {
            // 데이터 전환 to list<object[]>
            var lst = new List <object[]>();

            object[] obj;
            var      now = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

            foreach (var kv in resByPol)
            {
                for (int rowNo = 0; rowNo < kv.Value.Length; rowNo++)
                {
                    obj    = new object[14];
                    obj[0] = id;
                    obj[1] = now;
                    obj[2] = kv.Key;
                    obj[3] = (RSettings.InsertsByMth ? rowNo + 1 : 0);

                    for (int i = 0; i < kv.Value[rowNo].Length; i++)
                    {
                        obj[4 + i] = kv.Value[rowNo][i];
                    }

                    lst.Add(obj);
                }
            }

            // db입력
            var dbParams = new Tools.DBConnParams();

            dbParams.InitMY();
            Tools.MySqlDBConn dbConn = new Tools.MySqlDBConn(dbParams);
            dbConn.Insert(lst, @"proj_result");
        }
Exemple #2
0
        public static void TestCloud(string[] args)
        {
            Console.WriteLine("프로그램 시작");
            var irs = new List <double> {
                0.01
            };

            for (int i = 1; i < 14; i++)
            {
                irs.Add(0.01 + 0.001 * i);
            }

            var sp = new LiabilityCalc.ScenParams()
            {
                SourceCurve = irs, HW_a = 0.1, HW_sigma = 0.01, EqSigma = 0.27, BondSigma = 0.01
            };

            ScenarioManager sm = new ScenarioManager(sp, 1200);

            Tools.DBConnParams dbP = new Tools.DBConnParams(new string[] { args[1], args[2], args[3], args[4] });

            int scenCnt = 100;

            sm.SetScenDataFromFile(scenCnt);

            Console.WriteLine("시나리오 생성 완료");

            for (int i = 1; i <= scenCnt; i++)
            {
                sm.SetCurrentScen(i);
                InsertScenToDB(args[0], sm.CurrentScenNo, sm.CurrentScenData, dbP);
                Console.WriteLine($@"시나리오 {i}번 입력 완료");
            }
        }
Exemple #3
0
 public Runner(RunSettings rs, TableManager tm, ScenarioManager sm, Tools.DBConnParams dp)
 {
     RSettings = rs;
     TM        = tm;
     SM        = sm;
     DbParams  = dp;
 }
Exemple #4
0
        public static void InsertMort()
        {
            var dt = new List <object[]>();

            var line = new object[121 + 3];

            line[0] = "2009";
            line[1] = "UL";
            line[2] = 1;

            for (int age = 0; age <= 120; age++)
            {
                if (age == 120)
                {
                    line[age + 3] = 1.0;
                }
                else
                {
                    line[age + 3] = 0.001 * age;
                }
            }

            dt.Add(line);

            line = new object[121 + 3];

            line[0] = "2009";
            line[1] = "UL";
            line[2] = 2;

            for (int age = 0; age <= 120; age++)
            {
                if (age == 120)
                {
                    line[age + 3] = 1.0;
                }
                else
                {
                    line[age + 3] = (0.001 * age) * 0.8;
                }
            }

            dt.Add(line);

            var dp = new Tools.DBConnParams();

            dp.InitMY();

            Tools.MySqlDBConn conn = new Tools.MySqlDBConn(dp);
            conn.Insert(dt, "mortality");
        }
Exemple #5
0
        public ProjRunner(string[] args)
        {
            try
            {
                runGuid = args[0];

                // 디비 연결
                dbP = new Tools.DBConnParams()
                {
                    ServerName = @"kkhproj-db.czuxn57jn8hk.ap-northeast-2.rds.amazonaws.com", ServerID = "admin", ServerPW = "kkh198400", DbName = "proj"
                };
                msConn = new Tools.MsSqlDbConn(dbP);

                // 런 인포 받아오기
                string query   = $@"select top 1 id, arguments from RunInfo where guid = '{runGuid}'";
                var    runArgs = msConn.GetResult(query)[0];
                jobId  = runArgs[0].ToString();
                infId  = runArgs[1].ToString().Split(' ')[0];
                scenId = runArgs[1].ToString().Split(' ')[1];

                // 환경변수 가져오기
                machineName = Environment.GetEnvironmentVariable("kkhproj", EnvironmentVariableTarget.User);

                // 인포스 시작, 끝 가져오기
                query = $@"select top 1 StartNo, EndNo from RunStatus where guid ='{runGuid}' and machinename = '{machineName}'";
                var res  = msConn.GetResult(query)[0];
                int sInf = Convert.ToInt32(res[0]);
                int eInf = Convert.ToInt32(res[1]);

                // 상태 업데이트
                WriteLog("Running");
                Console.WriteLine($@"Ready to Run {machineName}");

                // 런파라미터
                rs                 = new RunSettings();
                rs.IdMP            = infId;
                rs.MpNoStart       = sInf;
                rs.MpNoEnd         = eInf;
                rs.ResultLabel     = jobId;
                rs.ScenCntOneBatch = 1000;
                rs.ScenBatchCnt    = 1;
                rs.InsertsByPol    = true;
                rs.InsertsByScen   = false;
            }
            catch (Exception e)
            {
                WriteLog("Failed_Init \n" + e.ToString());
                throw new Exception("Fail to start program");
            }
        }
Exemple #6
0
        public void LoadRecords(Tools.DBConnParams dbParams)
        {
            Tools.IDbConnection dbConn = new Tools.MsSqlDbConn(dbParams);

            //string query = $@"select * from Records where id = '{whereID}' and elapsedmth=60 and premyr=10 and startageofsomething = 60 limit 1";
            string query    = $@"select * from Records where id = '{RSettings.IdMP}' and contno >= {RSettings.MpNoStart} and contno <= {RSettings.MpNoEnd}";
            var    recsFrom = dbConn.GetResult(query);

            if (recsFrom.Count == 0)
            {
                throw new Exception("no recs for db");
            }

            Recs = Tools.LibsData.GetInstance <Record>(recsFrom);
        }
Exemple #7
0
        public static void InsertLapse()
        {
            var dt = new List <object[]>();

            // 1번째 라인
            var line = new object[120 + 3];

            line[0] = "2009";
            line[1] = "UL";
            line[2] = "InPayment";

            for (int yr = 1; yr <= 120; yr++)
            {
                if (yr >= 20)
                {
                    line[yr + 2] = 0.03;
                }
                else
                {
                    line[yr + 2] = Math.Max(0.03, 0.1 - yr * 0.01);
                }
            }

            dt.Add(line);

            // 2번째 라인
            line = new object[120 + 3];

            line[0] = "2009";
            line[1] = "UL";
            line[2] = "AfterPayment";

            for (int yr = 1; yr <= 120; yr++)
            {
                line[yr + 2] = 0.03;
            }

            dt.Add(line);

            var dp = new Tools.DBConnParams();

            dp.InitMY();

            Tools.MySqlDBConn conn = new Tools.MySqlDBConn(dp);
            conn.Insert(dt, "lapse");
        }
Exemple #8
0
        public static void TestDB()
        {
            //Tools.DBConnParams dbPMS = new Tools.DBConnParams();
            //dbPMS.InitMS();
            //Tools.IDbConnection connMS = new Tools.MsSqlDbConn(dbPMS);

            Tools.DBConnParams dbPMY = new Tools.DBConnParams();
            dbPMY.InitMY();
            Tools.IDbConnection connMY = new Tools.MySqlDBConn(dbPMY);

            var dbP = new Tools.DBConnParams()
            {
                ServerName = @"kkhproj-db.czuxn57jn8hk.ap-northeast-2.rds.amazonaws.com", ServerID = "admin", ServerPW = "kkh198400", DbName = "proj"
            };

            Tools.MsSqlDbConn connMS2 = new Tools.MsSqlDbConn(dbP);

            IDataReader dr = connMY.GetDataReader($@"select * from lapse");

            connMS2.Insert(dr, "lapse");

            dr = connMY.GetDataReader($@"select * from mortality");
            connMS2.Insert(dr, "mortality");
        }
Exemple #9
0
 public TableManager(RunSettings rs, Tools.DBConnParams dbParams)
 {
     RunSets = rs;
     DbConn  = new Tools.MsSqlDbConn(dbParams);
 }
Exemple #10
0
        public static void InsertScenToDB(string id, int currentScenNo, Dictionary <ScenType, double[]> currentScenData, Tools.DBConnParams dbP)
        {
            // 데이터 전환 to list<object[]>
            // id, asset, scenno, val
            var lst = new List <object[]>();

            object[] obj;

            foreach (var kv in currentScenData)
            {
                string asset = kv.Key.ToString();
                for (int i = 0; i < kv.Value.Length; i++)
                {
                    obj    = new object[5];
                    obj[0] = id;
                    obj[1] = asset;
                    obj[2] = currentScenNo;
                    obj[3] = i;
                    obj[4] = kv.Value[i];
                    lst.Add(obj);
                }
            }

            // db입력
            Tools.MsSqlDbConn dbConn = new Tools.MsSqlDbConn(dbP);
            //Tools.MySqlDBConn dbConn = new Tools.MySqlDBConn(dbP);
            dbConn.Insert(lst, @"TestScen");
        }