예제 #1
0
        public static bool ProcessAll(hydroLib.IBIGMatrixStatus bmStatus)
        {
            // if a j349 worksheet exists, return a false, that is old way of processing.
            List<string> wsNames = hydroLib.ExcelHelper.GetWorksheetNames();
            foreach (string ws in wsNames)
            {
                if (ws == "j349") return false;
            }

            Matrix_Workbook wb = new Matrix_Workbook(bmStatus);
            return wb.ProcessAll();
        }
예제 #2
0
        public bool Simulate(hydroLib.IBIGMatrixStatus status)
        {
            DateTime start = DateTime.Now;

            if (OnSubReachStarted != null) OnSubReachStarted(_matrixWorksheet.Worksheet.Name,"SR " + Number.ToString());

            //_matrixWorksheet.Workbook.Application.CalculateFull();
            // build the .in file
            if (!GenerateInFile())
            {
                if (OnError != null)
                {
                    OnError(_matrixWorksheet.Worksheet.Name + " SR" + this.Number.ToString() + " simulation failed" + Environment.NewLine +
                            "failed to generate the In file for j349");
                }
                return false;
            }
            _matrixWorksheet.Status.log(_matrixWorksheet.Worksheet.Name + " SR" + this.Number.ToString() + " input file created: " + InputFile);

            // run the simulation
            if (!hydroLib.j349.Simulate(InputFile, OutputFile, status))
            {
                _matrixWorksheet.Status.log(_matrixWorksheet.Worksheet.Name + " SR" + this.Number.ToString() + " simulation failed");
                if (OnError != null)
                {
                    OnError(_matrixWorksheet.Worksheet.Name + " SR" + this.Number.ToString() + " simulation failed" +
                            Environment.NewLine + hydroLib.j349.GetLastError());
                }
                return false;
            }
            _matrixWorksheet.Status.log(_matrixWorksheet.Worksheet.Name + " SR" + this.Number.ToString() + " simulation succeeded");

            // read the .out file
            if (!UpdateExcelWithOutput())
            {

                if (OnError != null)
                {
                    OnError(_matrixWorksheet.Worksheet.Name + " SR" + this.Number.ToString() + " simulation failed" +
                            Environment.NewLine + " failed to update excel with output");
                }
                return false;
            }
            //_matrixWorksheet.Workbook.Application.CalculateFull();
            TimeSpan ts = DateTime.Now - start;
            if (OnSubreachCompleted != null)
            {
                OnSubreachCompleted(_matrixWorksheet.Worksheet.Name,"SR " + Number.ToString(), ts.Seconds.ToString() + " s");
            }

            GC.Collect();

            return true;
        }
예제 #3
0
 public Matrix_Workbook(hydroLib.IBIGMatrixStatus status)
 {
     //_workbook = workbook;
     _status = status;
 }