public void MikeScenario_Controller_Put_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { MikeScenarioController mikeScenarioController = new MikeScenarioController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(mikeScenarioController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, mikeScenarioController.DatabaseType); MikeScenario mikeScenarioLast = new MikeScenario(); using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { Query query = new Query(); query.Language = LanguageRequest; MikeScenarioService mikeScenarioService = new MikeScenarioService(query, db, ContactID); mikeScenarioLast = (from c in db.MikeScenarios select c).FirstOrDefault(); } // ok with MikeScenario info IHttpActionResult jsonRet = mikeScenarioController.GetMikeScenarioWithID(mikeScenarioLast.MikeScenarioID); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <MikeScenario> Ret = jsonRet as OkNegotiatedContentResult <MikeScenario>; MikeScenario mikeScenarioRet = Ret.Content; Assert.AreEqual(mikeScenarioLast.MikeScenarioID, mikeScenarioRet.MikeScenarioID); BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult; Assert.IsNull(badRequest); // Put to return success IHttpActionResult jsonRet2 = mikeScenarioController.Put(mikeScenarioRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <MikeScenario> mikeScenarioRet2 = jsonRet2 as OkNegotiatedContentResult <MikeScenario>; Assert.IsNotNull(mikeScenarioRet2); BadRequestErrorMessageResult badRequest2 = jsonRet2 as BadRequestErrorMessageResult; Assert.IsNull(badRequest2); // Put to return CSSPError because MikeScenarioID of 0 does not exist mikeScenarioRet.MikeScenarioID = 0; IHttpActionResult jsonRet3 = mikeScenarioController.Put(mikeScenarioRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet3); OkNegotiatedContentResult <MikeScenario> mikeScenarioRet3 = jsonRet3 as OkNegotiatedContentResult <MikeScenario>; Assert.IsNull(mikeScenarioRet3); BadRequestErrorMessageResult badRequest3 = jsonRet3 as BadRequestErrorMessageResult; Assert.IsNotNull(badRequest3); } } }
// Events private void AutoRunMike_Load(object sender, EventArgs e) { richTextBoxStatus.Clear(); butStart.Enabled = true; butPause.Enabled = false; CreateNewM21FMWithEvents(); CurrentMikeScenario = new MikeScenario(); m21fmLog = new M21fmLog(); lblStatusWorking.Text = "Paused ... "; lblStatusUpdate.Text = "Press start ... "; Start(); CheckForMoreReadyToRun(); //DesktopChildrenWindowsList = new List<WndHandleAndTitle>(); }
public IHttpActionResult GetMikeScenarioWithID([FromUri] int MikeScenarioID, [FromUri] string lang = "en", [FromUri] string extra = "") { using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { MikeScenarioService mikeScenarioService = new MikeScenarioService(new Query() { Language = (lang == "fr" ? LanguageEnum.fr : LanguageEnum.en) }, db, ContactID); mikeScenarioService.Query = mikeScenarioService.FillQuery(typeof(MikeScenario), lang, 0, 1, "", "", extra); if (mikeScenarioService.Query.Extra == "A") { MikeScenarioExtraA mikeScenarioExtraA = new MikeScenarioExtraA(); mikeScenarioExtraA = mikeScenarioService.GetMikeScenarioExtraAWithMikeScenarioID(MikeScenarioID); if (mikeScenarioExtraA == null) { return(NotFound()); } return(Ok(mikeScenarioExtraA)); } else if (mikeScenarioService.Query.Extra == "B") { MikeScenarioExtraB mikeScenarioExtraB = new MikeScenarioExtraB(); mikeScenarioExtraB = mikeScenarioService.GetMikeScenarioExtraBWithMikeScenarioID(MikeScenarioID); if (mikeScenarioExtraB == null) { return(NotFound()); } return(Ok(mikeScenarioExtraB)); } else { MikeScenario mikeScenario = new MikeScenario(); mikeScenario = mikeScenarioService.GetMikeScenarioWithMikeScenarioID(MikeScenarioID); if (mikeScenario == null) { return(NotFound()); } return(Ok(mikeScenario)); } } }
/// <summary> /// Tries to execute the CSSPDB transaction (add/delete/update) on an [MikeScenario](CSSPModels.MikeScenario.html) item /// </summary> /// <param name="mikeScenario">Is the MikeScenario item the client want to add to CSSPDB. What's important here is the MikeScenarioID</param> /// <returns>true if MikeScenario item was updated to CSSPDB, false if an error happened during the DB requested transtaction</returns> private bool TryToSave(MikeScenario mikeScenario) { try { db.SaveChanges(); } catch (DbUpdateException ex) { mikeScenario.ValidationResults = new List <ValidationResult>() { new ValidationResult(ex.Message + (ex.InnerException != null ? " Inner: " + ex.InnerException.Message : "")) }.AsEnumerable(); return(false); } return(true); }
/// <summary> /// Updates an [MikeScenario](CSSPModels.MikeScenario.html) item in CSSPDB /// </summary> /// <param name="mikeScenario">Is the MikeScenario item the client want to add to CSSPDB. What's important here is the MikeScenarioID</param> /// <returns>true if MikeScenario item was updated to CSSPDB, false if an error happened during the DB requested transtaction</returns> public bool Update(MikeScenario mikeScenario) { mikeScenario.ValidationResults = Validate(new ValidationContext(mikeScenario), ActionDBTypeEnum.Update); if (mikeScenario.ValidationResults.Count() > 0) { return(false); } db.MikeScenarios.Update(mikeScenario); if (!TryToSave(mikeScenario)) { return(false); } return(true); }
public void MikeScenario_Controller_GetMikeScenarioWithID_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { MikeScenarioController mikeScenarioController = new MikeScenarioController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(mikeScenarioController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, mikeScenarioController.DatabaseType); MikeScenario mikeScenarioFirst = new MikeScenario(); using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { MikeScenarioService mikeScenarioService = new MikeScenarioService(new Query(), db, ContactID); mikeScenarioFirst = (from c in db.MikeScenarios select c).FirstOrDefault(); } // ok with MikeScenario info IHttpActionResult jsonRet = mikeScenarioController.GetMikeScenarioWithID(mikeScenarioFirst.MikeScenarioID); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <MikeScenario> Ret = jsonRet as OkNegotiatedContentResult <MikeScenario>; MikeScenario mikeScenarioRet = Ret.Content; Assert.AreEqual(mikeScenarioFirst.MikeScenarioID, mikeScenarioRet.MikeScenarioID); BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult; Assert.IsNull(badRequest); // Not Found IHttpActionResult jsonRet2 = mikeScenarioController.GetMikeScenarioWithID(0); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <MikeScenario> mikeScenarioRet2 = jsonRet2 as OkNegotiatedContentResult <MikeScenario>; Assert.IsNull(mikeScenarioRet2); NotFoundResult notFoundRequest = jsonRet2 as NotFoundResult; Assert.IsNotNull(notFoundRequest); } } }
private void dataGridViewScenarios_SelectionChanged(object sender, EventArgs e) { if (dataGridViewScenarios.SelectedRows.Count > 0) { MikeScenario mikeScenario = (MikeScenario)dataGridViewScenarios.SelectedRows[0].DataBoundItem; if (dataGridViewScenarios.SelectedRows.Count == 1) { // nothing yet } else { // nothing yet } } else { // nothing yet } }
public IHttpActionResult Delete([FromBody] MikeScenario mikeScenario, [FromUri] string lang = "en") { using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { MikeScenarioService mikeScenarioService = new MikeScenarioService(new Query() { Language = (lang == "fr" ? LanguageEnum.fr : LanguageEnum.en) }, db, ContactID); if (!mikeScenarioService.Delete(mikeScenario)) { return(BadRequest(String.Join("|||", mikeScenario.ValidationResults))); } else { mikeScenario.ValidationResults = null; return(Ok(mikeScenario)); } } }
public void MikeScenario_Controller_Post_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { MikeScenarioController mikeScenarioController = new MikeScenarioController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(mikeScenarioController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, mikeScenarioController.DatabaseType); MikeScenario mikeScenarioLast = new MikeScenario(); using (CSSPDBContext db = new CSSPDBContext(DatabaseType)) { Query query = new Query(); query.Language = LanguageRequest; query.Asc = ""; query.Desc = ""; MikeScenarioService mikeScenarioService = new MikeScenarioService(query, db, ContactID); mikeScenarioLast = (from c in db.MikeScenarios select c).FirstOrDefault(); } // ok with MikeScenario info IHttpActionResult jsonRet = mikeScenarioController.GetMikeScenarioWithID(mikeScenarioLast.MikeScenarioID); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <MikeScenario> Ret = jsonRet as OkNegotiatedContentResult <MikeScenario>; MikeScenario mikeScenarioRet = Ret.Content; Assert.AreEqual(mikeScenarioLast.MikeScenarioID, mikeScenarioRet.MikeScenarioID); BadRequestErrorMessageResult badRequest = jsonRet as BadRequestErrorMessageResult; Assert.IsNull(badRequest); // Post to return CSSPError because MikeScenarioID exist IHttpActionResult jsonRet2 = mikeScenarioController.Post(mikeScenarioRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <MikeScenario> mikeScenarioRet2 = jsonRet2 as OkNegotiatedContentResult <MikeScenario>; Assert.IsNull(mikeScenarioRet2); BadRequestErrorMessageResult badRequest2 = jsonRet2 as BadRequestErrorMessageResult; Assert.IsNotNull(badRequest2); // Post to return newly added MikeScenario mikeScenarioRet.MikeScenarioID = 0; mikeScenarioController.Request = new System.Net.Http.HttpRequestMessage(); mikeScenarioController.Request.RequestUri = new System.Uri("http://localhost:5000/api/mikeScenario"); IHttpActionResult jsonRet3 = mikeScenarioController.Post(mikeScenarioRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet3); CreatedNegotiatedContentResult <MikeScenario> mikeScenarioRet3 = jsonRet3 as CreatedNegotiatedContentResult <MikeScenario>; Assert.IsNotNull(mikeScenarioRet3); BadRequestErrorMessageResult badRequest3 = jsonRet3 as BadRequestErrorMessageResult; Assert.IsNull(badRequest3); IHttpActionResult jsonRet4 = mikeScenarioController.Delete(mikeScenarioRet, LanguageRequest.ToString()); Assert.IsNotNull(jsonRet4); OkNegotiatedContentResult <MikeScenario> mikeScenarioRet4 = jsonRet4 as OkNegotiatedContentResult <MikeScenario>; Assert.IsNotNull(mikeScenarioRet4); BadRequestErrorMessageResult badRequest4 = jsonRet4 as BadRequestErrorMessageResult; Assert.IsNull(badRequest4); } } }
public MikeScenarioTest() { mikeScenario = new MikeScenario(); mikeScenarioExtraA = new MikeScenarioExtraA(); mikeScenarioExtraB = new MikeScenarioExtraB(); }
private bool DownloadInputFiles(MikeScenario mikeScenario) { richTextBoxStatus.AppendText("Trying to download input files from DB for Scenario [" + mikeScenario.MikeScenarioID + "] ...\r\n"); Application.DoEvents(); List <CSSPFile> csspFileList = (from cf in vpse.CSSPFiles from msf in vpse.MikeScenarioFiles where cf.CSSPFileID == msf.CSSPFile.CSSPFileID && msf.MikeScenarioID == mikeScenario.MikeScenarioID && (cf.Purpose == "Input" || cf.Purpose == "InputPol") select cf).ToList <CSSPFile>(); foreach (CSSPFile cf in csspFileList) { FileInfo fi = new FileInfo(cf.FileOriginalPath + cf.FileName); if (fi.Extension == ".m21fm") { CurrentFile = cf.FileOriginalPath + cf.FileName; lblCurrentFile.Text = CurrentFile; } DirectoryInfo di = new DirectoryInfo(cf.FileOriginalPath); if (!di.Exists) { richTextBoxStatus.AppendText("Required path does not exist. Creating path [" + cf.FileOriginalPath + "] ...\r\n"); di.Create(); } richTextBoxStatus.AppendText("Doing file [" + cf.FileOriginalPath + cf.FileName + "] ...\r\n"); if (fi.Exists) { richTextBoxStatus.AppendText("File already exist ...\r\n"); // remove existing file before downloading new file from DB try { richTextBoxStatus.AppendText("Trying to remove file ...\r\n"); fi.Delete(); richTextBoxStatus.AppendText("File removed ...\r\n"); } catch (Exception ex) { richTextBoxStatus.AppendText("Error while trying to remove file ...\r\n"); richTextBoxStatus.AppendText("Error message [" + ex.Message + "] ...\r\n"); lblStatusWorking.Text = "Error ... "; lblStatusUpdate.Text = "See details below ... "; return(false); } } try { richTextBoxStatus.AppendText("Downloading file from DB ...\r\n"); FileStream fs = fi.Create(); BinaryWriter writer = new BinaryWriter(fs); writer.Write(cf.FileContent); writer.Close(); fs.Close(); richTextBoxStatus.AppendText("File downloaded ...\r\n\r\n"); } catch (Exception ex) { richTextBoxStatus.AppendText("Error while trying to download file from DB ...\r\n"); richTextBoxStatus.AppendText("Error message [" + ex.Message + "] ...\r\n"); lblStatusWorking.Text = "Error ... "; lblStatusUpdate.Text = "See details below ... "; return(false); } } return(true); }
private bool GetAllResultFilesToUpload(string m21fmFileName, List <string> FileNameList, MikeScenario NewMikeScenario) { try { AddFileToFileNameList(m21fmFileName, m21fm.femEngineHD.hydrodynamic_module.structures.turbines.output_file_name, FileNameList); if (m21fm.femEngineHD.hydrodynamic_module.outputs != null && m21fm.femEngineHD.hydrodynamic_module.outputs.output != null) { foreach (KeyValuePair <string, M21fm.FemEngineHD.HYDRODYNAMIC_MODULE.OUTPUTS.OUTPUT> kvp in m21fm.femEngineHD.hydrodynamic_module.outputs.output) { FileInfo fi = new FileInfo(m21fmFileName.Substring(0, m21fmFileName.LastIndexOf("\\") + 1) + m21fm.system.ResultRootFolder.Substring(1, m21fm.system.ResultRootFolder.Length - 2) + m21fmFileName.Substring(m21fmFileName.LastIndexOf("\\")) + " - Result Files\\"); AddFileToFileNameList(fi.FullName, kvp.Value.file_name, FileNameList); AddFileToFileNameList(fi.FullName, kvp.Value.input_file_name, FileNameList); } } if (m21fm.femEngineHD.transport_module.outputs != null && m21fm.femEngineHD.transport_module.outputs.output != null) { foreach (KeyValuePair <string, M21fm.FemEngineHD.TRANSPORT_MODULE.OUTPUTS.OUTPUT> kvp in m21fm.femEngineHD.transport_module.outputs.output) { FileInfo fi = new FileInfo(m21fmFileName.Substring(0, m21fmFileName.LastIndexOf("\\") + 1) + m21fm.system.ResultRootFolder.Substring(1, m21fm.system.ResultRootFolder.Length - 2) + m21fmFileName.Substring(m21fmFileName.LastIndexOf("\\")) + " - Result Files\\"); AddFileToFileNameList(fi.FullName, kvp.Value.file_name, FileNameList); AddFileToFileNameList(fi.FullName, kvp.Value.input_file_name, FileNameList); } } } catch (Exception ex) { richTextBoxStatus.AppendText("Error while trying to get results file names from [" + m21fmFileName + "] ...\r\n"); richTextBoxStatus.AppendText("Error message [" + ex.Message + "] ...\r\n"); lblStatusWorking.Text = "Error ... "; lblStatusUpdate.Text = "See details below ... "; return(false); } return(true); }
private void processMikeExited() { richTextBoxStatus.AppendText(string.Format("processMIKE ended at [{0:yyyy-MM-dd hh:mm:ss tt}] ...\r\n", DateTime.Now)); timerMzLaunchStillRunning.Enabled = false; lblStatusWorking.Text = "Process ended ..."; lblStatusUpdate.Text = string.Format("at [{0:yyyy-MM-dd hh:mm:ss tt}]", DateTime.Now); if (!CopyDfsuAndLogToDB()) { lblStatusWorking.Text = "Error ..."; lblStatusUpdate.Text = ""; return; } // should be changing MikeScenario status MikeScenario mikeScenarioToChange = (from ms in vpse.MikeScenarios where ms.MikeScenarioID == CurrentMikeScenario.MikeScenarioID select ms).FirstOrDefault <MikeScenario>(); if (mikeScenarioToChange == null) { richTextBoxStatus.AppendText("Could not find MikeScenario to update. Looking for MikeScenarioID = [" + CurrentMikeScenario.MikeScenarioID + "] ... \r\n"); lblStatusWorking.Text = "Error ..."; lblStatusUpdate.Text = ""; return; } // should Check if the log file shows the normal completion line as the last line string LogFileName = CurrentFile.Substring(0, CurrentFile.LastIndexOf(".")) + ".log"; MemoryStream mems = new MemoryStream(); mems = fileToMemoryStream(LogFileName); richTextBoxStatus.AppendText("Parsing the log file [" + LogFileName + "]\r\n"); if (!m21fmLog.StreamToM21fmLog(mems)) { richTextBoxStatus.AppendText("Error while parsing the log file\r\n"); mikeScenarioToChange.ScenarioStatus = ScenarioStatusType.Error.ToString(); } if (m21fmLog.CompletionTxt == "Run cancelled by user") { richTextBoxStatus.AppendText("Run cancelled by user\r\n"); mikeScenarioToChange.ScenarioStatus = ScenarioStatusType.Canceled.ToString(); } if (m21fmLog.CompletionTxt == "Abnormal run completion") { richTextBoxStatus.AppendText("Abnormal run completion\r\n"); mikeScenarioToChange.ScenarioStatus = ScenarioStatusType.Error.ToString(); } if (m21fmLog.CompletionTxt == "Normal run completion") { richTextBoxStatus.AppendText("Normal run completion\r\n"); mikeScenarioToChange.ScenarioStatus = ScenarioStatusType.Completed.ToString(); } mikeScenarioToChange.ScenarioStartExecutionDateAndTime = m21fmLog.StartExecutionDate; mikeScenarioToChange.ScenarioExecutionTimeInMinutes = m21fmLog.TotalElapseTimeInSeconds / 60; try { richTextBoxStatus.AppendText("Updating mikeScenario ScenarioStatus to [" + mikeScenarioToChange.ScenarioStatus + "] ... \r\n"); vpse.SaveChanges(SaveOptions.AcceptAllChangesAfterSave); richTextBoxStatus.AppendText("Updated mikeScenario ScenarioStatus to [" + mikeScenarioToChange.ScenarioStatus + "] ... \r\n"); } catch (Exception ex) { richTextBoxStatus.AppendText("Error while updating mikeScenario ScenarioStatus to [" + mikeScenarioToChange.ScenarioStatus + "] ... \r\n"); richTextBoxStatus.AppendText("Error message [" + ex.Message + "] ... \r\n"); lblStatusWorking.Text = "Error ..."; lblStatusUpdate.Text = ex.Message; return; } lblStatusWorking.Text = "Done ... "; lblStatusUpdate.Text = " "; FileInfo fi = new FileInfo(CurrentFile); string AutoRunMikeLogFileName = string.Format("[{0}] AutoRunMike.log", mikeScenarioToChange.MikeScenarioID); string FilePath = fi.DirectoryName + "\\"; CSSPFile csspFileExist = (from cf in vpse.CSSPFiles from msf in vpse.MikeScenarioFiles where cf.CSSPFileID == msf.CSSPFile.CSSPFileID && cf.FileType == ".log" && cf.FileOriginalPath == fi.DirectoryName + "\\" && cf.FileName == AutoRunMikeLogFileName && cf.Purpose == "Other" select cf).FirstOrDefault <CSSPFile>(); if (csspFileExist == null) { CSSPFile csspFile = new CSSPFile(); csspFile.CSSPGuid = Guid.NewGuid(); csspFile.FileName = AutoRunMikeLogFileName; csspFile.FileOriginalPath = FilePath; csspFile.FileSize = richTextBoxStatus.Text.Length; csspFile.FileDescription = ""; csspFile.FileCreatedDate = DateTime.Now; csspFile.FileType = ".log"; csspFile.FileContent = Encoding.ASCII.GetBytes(richTextBoxStatus.Text); csspFile.Purpose = PurposeType.Other.ToString(); try { richTextBoxStatus.AppendText("Adding log file [" + AutoRunMikeLogFileName + "] of AutoRunMike to [" + mikeScenarioToChange.MikeScenarioID + "] ... \r\n"); vpse.AddToCSSPFiles(csspFile); vpse.SaveChanges(SaveOptions.AcceptAllChangesAfterSave); richTextBoxStatus.AppendText("Added log file ... \r\n"); } catch (Exception ex) { richTextBoxStatus.AppendText("Error while adding log file ... \r\n"); richTextBoxStatus.AppendText("Error message [" + ex.Message + "] ... \r\n"); lblStatusWorking.Text = "Error ..."; lblStatusUpdate.Text = ex.Message; return; } // linking the file to the scenario MikeScenarioFile mikeScenarioFile = new MikeScenarioFile(); mikeScenarioFile.MikeScenario = mikeScenarioToChange; mikeScenarioFile.CSSPFile = csspFile; mikeScenarioFile.CSSPParentFile = csspFile; try { richTextBoxStatus.AppendText("Linking log file [" + AutoRunMikeLogFileName + "] of AutoRunMike to [" + mikeScenarioToChange.MikeScenarioID + "] ... \r\n"); vpse.AddToMikeScenarioFiles(mikeScenarioFile); vpse.SaveChanges(SaveOptions.AcceptAllChangesAfterSave); richTextBoxStatus.AppendText("Linked log file ... \r\n"); } catch (Exception ex) { richTextBoxStatus.AppendText("Error while linking file to scenario ... \r\n"); richTextBoxStatus.AppendText("Error message [" + ex.Message + "] ... \r\n"); lblStatusWorking.Text = "Error ..."; lblStatusUpdate.Text = ex.Message; return; } } else { richTextBoxStatus.AppendText("Adding log file [" + AutoRunMikeLogFileName + "] of AutoRunMike to [" + mikeScenarioToChange.MikeScenarioID + "] ... \r\n"); csspFileExist.FileSize = richTextBoxStatus.Text.Length; csspFileExist.FileCreatedDate = DateTime.Now; csspFileExist.FileContent = Encoding.ASCII.GetBytes(richTextBoxStatus.Text); try { vpse.SaveChanges(); richTextBoxStatus.AppendText("Added log file ... \r\n"); // this will not be shown in the log file if successful } catch (Exception ex) { richTextBoxStatus.AppendText("Error while adding log file ... \r\n"); richTextBoxStatus.AppendText("Error message [" + ex.Message + "] ... \r\n"); lblStatusWorking.Text = "Error ..."; lblStatusUpdate.Text = ex.Message; return; } } richTextBoxStatus.Clear(); timerAutoRunMike.Enabled = true; CheckForMoreReadyToRun(); }
private bool RunScenario(MikeScenario mikeScenario) { lblStatusUpdate.Text = "Downloading ... " + mikeScenario.ScenarioName; if (!DownloadInputFiles(mikeScenario)) { return(false); } richTextBoxStatus.AppendText("Preparing processMIKE to be run ...\r\n"); ProcessStartInfo pInfo = new ProcessStartInfo(); pInfo.Arguments = " \"" + CurrentFile + "\" " + "-x"; if (radioButtonRunMzLaunchHidden.Checked) { pInfo.WindowStyle = ProcessWindowStyle.Hidden; } else if (radioButtonRunMzLaunchNormal.Checked) { pInfo.WindowStyle = ProcessWindowStyle.Normal; } else // default to Minimized { pInfo.WindowStyle = ProcessWindowStyle.Minimized; } pInfo.UseShellExecute = true; processMike.StartInfo = pInfo; bool ProcessWorking = false; richTextBoxStatus.AppendText("processMIKE will run with [" + CurrentFile + "] ...\r\n"); try { pInfo.FileName = @"C:\Program Files (x86)\DHI\2011\bin\MzLaunch.exe"; richTextBoxStatus.AppendText("Trying to run file [" + pInfo.FileName + "] ...\r\n"); processMike.Start(); ProcessWorking = true; richTextBoxStatus.AppendText("Process running ...\r\n"); } catch (Exception ex) { richTextBoxStatus.AppendText("Process could not run. File not found ...\r\n"); richTextBoxStatus.AppendText("Error message [" + ex.Message + "] ...\r\n"); // don't return here we need to try another file name } if (!ProcessWorking) { try { pInfo.FileName = @"C:\Program Files\DHI\2011\bin\MzLaunch.exe"; richTextBoxStatus.AppendText("Trying to run file [" + pInfo.FileName + "] ...\r\n"); processMike.Start(); ProcessWorking = true; richTextBoxStatus.AppendText("Process running ...\r\n"); } catch (Exception ex) { richTextBoxStatus.AppendText("Process could not run. File not found ...\r\n"); richTextBoxStatus.AppendText("Error message [" + ex.Message + "] ...\r\n"); lblStatusWorking.Text = "Error ... "; lblStatusUpdate.Text = "See details below ... "; return(false); } } processMike.WaitForInputIdle(2000); lblStatusWorking.Text = "Working ... "; lblStatusUpdate.Text = "Doing ... " + CurrentFile; richTextBoxStatus.AppendText(string.Format("processMIKE started at [{0:yyyy-MM-dd HH:mm:ss tt}] ...\r\n", DateTime.Now)); // MegaDoEvents(); // MegaDoEvents(); // MegaDoEvents(); // IntPtr hWndDesktop = APIFunc.GetDesktopWindow(); // DesktopChildrenWindowsList.Clear(); // FillDesktopWindowsChildrenList(true); // string ShortFileName = CurrentFile.Substring(CurrentFile.LastIndexOf("\\") + 1); // WndHandleAndTitle wht = DesktopChildrenWindowsList.Where(u => u.Title == "MzLaunch - [" + ShortFileName + "]").FirstOrDefault(); // while (wht != null) // { // IntPtr hWndParentOfTimeRemaining = af.APIGetWindow( //af.APIGetWindow( //af.APIGetWindow(wht.Handle, GW_CHILD), //GW_CHILD), //GW_CHILD); // DesktopChildrenWindowsList.Clear(); // List<WndHandleAndTitle> whtList = af.GetChildrenWindowsHandleAndTitle(hWndParentOfTimeRemaining); //} return(true); }
/// <summary> /// Validate function for all MikeScenarioService commands /// </summary> /// <param name="validationContext">System.ComponentModel.DataAnnotations.ValidationContext (Describes the context in which a validation check is performed.)</param> /// <param name="actionDBType">[ActionDBTypeEnum] (CSSPEnums.ActionDBTypeEnum.html) action type to validate</param> /// <returns>IEnumerable of ValidationResult (Where ValidationResult is a container for the results of a validation request.)</returns> private IEnumerable <ValidationResult> Validate(ValidationContext validationContext, ActionDBTypeEnum actionDBType) { string retStr = ""; Enums enums = new Enums(LanguageRequest); MikeScenario mikeScenario = validationContext.ObjectInstance as MikeScenario; mikeScenario.HasErrors = false; if (actionDBType == ActionDBTypeEnum.Update || actionDBType == ActionDBTypeEnum.Delete) { if (mikeScenario.MikeScenarioID == 0) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "MikeScenarioID"), new[] { "MikeScenarioID" })); } if (!(from c in db.MikeScenarios select c).Where(c => c.MikeScenarioID == mikeScenario.MikeScenarioID).Any()) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "MikeScenario", "MikeScenarioID", mikeScenario.MikeScenarioID.ToString()), new[] { "MikeScenarioID" })); } } TVItem TVItemMikeScenarioTVItemID = (from c in db.TVItems where c.TVItemID == mikeScenario.MikeScenarioTVItemID select c).FirstOrDefault(); if (TVItemMikeScenarioTVItemID == null) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "MikeScenarioTVItemID", mikeScenario.MikeScenarioTVItemID.ToString()), new[] { "MikeScenarioTVItemID" })); } else { List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>() { TVTypeEnum.MikeScenario, }; if (!AllowableTVTypes.Contains(TVItemMikeScenarioTVItemID.TVType)) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsNotOfType_, "MikeScenarioTVItemID", "MikeScenario"), new[] { "MikeScenarioTVItemID" })); } } if (mikeScenario.ParentMikeScenarioID != null) { TVItem TVItemParentMikeScenarioID = (from c in db.TVItems where c.TVItemID == mikeScenario.ParentMikeScenarioID select c).FirstOrDefault(); if (TVItemParentMikeScenarioID == null) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "ParentMikeScenarioID", (mikeScenario.ParentMikeScenarioID == null ? "" : mikeScenario.ParentMikeScenarioID.ToString())), new[] { "ParentMikeScenarioID" })); } else { List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>() { TVTypeEnum.MikeScenario, }; if (!AllowableTVTypes.Contains(TVItemParentMikeScenarioID.TVType)) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsNotOfType_, "ParentMikeScenarioID", "MikeScenario"), new[] { "ParentMikeScenarioID" })); } } } retStr = enums.EnumTypeOK(typeof(ScenarioStatusEnum), (int?)mikeScenario.ScenarioStatus); if (!string.IsNullOrWhiteSpace(retStr)) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "ScenarioStatus"), new[] { "ScenarioStatus" })); } //ErrorInfo has no StringLength Attribute if (mikeScenario.MikeScenarioStartDateTime_Local.Year == 1) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "MikeScenarioStartDateTime_Local"), new[] { "MikeScenarioStartDateTime_Local" })); } else { if (mikeScenario.MikeScenarioStartDateTime_Local.Year < 1980) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "MikeScenarioStartDateTime_Local", "1980"), new[] { "MikeScenarioStartDateTime_Local" })); } } if (mikeScenario.MikeScenarioEndDateTime_Local.Year == 1) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "MikeScenarioEndDateTime_Local"), new[] { "MikeScenarioEndDateTime_Local" })); } else { if (mikeScenario.MikeScenarioEndDateTime_Local.Year < 1980) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "MikeScenarioEndDateTime_Local", "1980"), new[] { "MikeScenarioEndDateTime_Local" })); } } if (mikeScenario.MikeScenarioStartExecutionDateTime_Local != null && ((DateTime)mikeScenario.MikeScenarioStartExecutionDateTime_Local).Year < 1980) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "MikeScenarioStartExecutionDateTime_Local", "1980"), new[] { "MikeScenarioStartExecutionDateTime_Local" })); } if (mikeScenario.MikeScenarioExecutionTime_min != null) { if (mikeScenario.MikeScenarioExecutionTime_min < 1 || mikeScenario.MikeScenarioExecutionTime_min > 100000) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "MikeScenarioExecutionTime_min", "1", "100000"), new[] { "MikeScenarioExecutionTime_min" })); } } if (mikeScenario.WindSpeed_km_h < 0 || mikeScenario.WindSpeed_km_h > 100) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "WindSpeed_km_h", "0", "100"), new[] { "WindSpeed_km_h" })); } if (mikeScenario.WindDirection_deg < 0 || mikeScenario.WindDirection_deg > 360) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "WindDirection_deg", "0", "360"), new[] { "WindDirection_deg" })); } if (mikeScenario.DecayFactor_per_day < 0 || mikeScenario.DecayFactor_per_day > 100) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "DecayFactor_per_day", "0", "100"), new[] { "DecayFactor_per_day" })); } if (mikeScenario.DecayFactorAmplitude < 0 || mikeScenario.DecayFactorAmplitude > 100) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "DecayFactorAmplitude", "0", "100"), new[] { "DecayFactorAmplitude" })); } if (mikeScenario.ResultFrequency_min < 0 || mikeScenario.ResultFrequency_min > 100) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "ResultFrequency_min", "0", "100"), new[] { "ResultFrequency_min" })); } if (mikeScenario.AmbientTemperature_C < -10 || mikeScenario.AmbientTemperature_C > 40) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "AmbientTemperature_C", "-10", "40"), new[] { "AmbientTemperature_C" })); } if (mikeScenario.AmbientSalinity_PSU < 0 || mikeScenario.AmbientSalinity_PSU > 40) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "AmbientSalinity_PSU", "0", "40"), new[] { "AmbientSalinity_PSU" })); } if (mikeScenario.UseSalinityAndTemperatureInitialConditionFromTVFileTVItemID != null) { TVItem TVItemUseSalinityAndTemperatureInitialConditionFromTVFileTVItemID = (from c in db.TVItems where c.TVItemID == mikeScenario.UseSalinityAndTemperatureInitialConditionFromTVFileTVItemID select c).FirstOrDefault(); if (TVItemUseSalinityAndTemperatureInitialConditionFromTVFileTVItemID == null) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "UseSalinityAndTemperatureInitialConditionFromTVFileTVItemID", (mikeScenario.UseSalinityAndTemperatureInitialConditionFromTVFileTVItemID == null ? "" : mikeScenario.UseSalinityAndTemperatureInitialConditionFromTVFileTVItemID.ToString())), new[] { "UseSalinityAndTemperatureInitialConditionFromTVFileTVItemID" })); } else { List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>() { TVTypeEnum.File, }; if (!AllowableTVTypes.Contains(TVItemUseSalinityAndTemperatureInitialConditionFromTVFileTVItemID.TVType)) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsNotOfType_, "UseSalinityAndTemperatureInitialConditionFromTVFileTVItemID", "File"), new[] { "UseSalinityAndTemperatureInitialConditionFromTVFileTVItemID" })); } } } if (mikeScenario.ForSimulatingMWQMRunTVItemID != null) { TVItem TVItemForSimulatingMWQMRunTVItemID = (from c in db.TVItems where c.TVItemID == mikeScenario.ForSimulatingMWQMRunTVItemID select c).FirstOrDefault(); if (TVItemForSimulatingMWQMRunTVItemID == null) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "ForSimulatingMWQMRunTVItemID", (mikeScenario.ForSimulatingMWQMRunTVItemID == null ? "" : mikeScenario.ForSimulatingMWQMRunTVItemID.ToString())), new[] { "ForSimulatingMWQMRunTVItemID" })); } else { List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>() { TVTypeEnum.MWQMRun, }; if (!AllowableTVTypes.Contains(TVItemForSimulatingMWQMRunTVItemID.TVType)) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsNotOfType_, "ForSimulatingMWQMRunTVItemID", "MWQMRun"), new[] { "ForSimulatingMWQMRunTVItemID" })); } } } if (mikeScenario.ManningNumber < 0 || mikeScenario.ManningNumber > 100) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "ManningNumber", "0", "100"), new[] { "ManningNumber" })); } if (mikeScenario.NumberOfElements != null) { if (mikeScenario.NumberOfElements < 1 || mikeScenario.NumberOfElements > 1000000) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "NumberOfElements", "1", "1000000"), new[] { "NumberOfElements" })); } } if (mikeScenario.NumberOfTimeSteps != null) { if (mikeScenario.NumberOfTimeSteps < 1 || mikeScenario.NumberOfTimeSteps > 1000000) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "NumberOfTimeSteps", "1", "1000000"), new[] { "NumberOfTimeSteps" })); } } if (mikeScenario.NumberOfSigmaLayers != null) { if (mikeScenario.NumberOfSigmaLayers < 0 || mikeScenario.NumberOfSigmaLayers > 100) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "NumberOfSigmaLayers", "0", "100"), new[] { "NumberOfSigmaLayers" })); } } if (mikeScenario.NumberOfZLayers != null) { if (mikeScenario.NumberOfZLayers < 0 || mikeScenario.NumberOfZLayers > 100) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "NumberOfZLayers", "0", "100"), new[] { "NumberOfZLayers" })); } } if (mikeScenario.NumberOfHydroOutputParameters != null) { if (mikeScenario.NumberOfHydroOutputParameters < 0 || mikeScenario.NumberOfHydroOutputParameters > 100) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "NumberOfHydroOutputParameters", "0", "100"), new[] { "NumberOfHydroOutputParameters" })); } } if (mikeScenario.NumberOfTransOutputParameters != null) { if (mikeScenario.NumberOfTransOutputParameters < 0 || mikeScenario.NumberOfTransOutputParameters > 100) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "NumberOfTransOutputParameters", "0", "100"), new[] { "NumberOfTransOutputParameters" })); } } if (mikeScenario.EstimatedHydroFileSize != null) { if (mikeScenario.EstimatedHydroFileSize < 0 || mikeScenario.EstimatedHydroFileSize > 100000000) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "EstimatedHydroFileSize", "0", "100000000"), new[] { "EstimatedHydroFileSize" })); } } if (mikeScenario.EstimatedTransFileSize != null) { if (mikeScenario.EstimatedTransFileSize < 0 || mikeScenario.EstimatedTransFileSize > 100000000) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._ValueShouldBeBetween_And_, "EstimatedTransFileSize", "0", "100000000"), new[] { "EstimatedTransFileSize" })); } } if (mikeScenario.LastUpdateDate_UTC.Year == 1) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsRequired, "LastUpdateDate_UTC"), new[] { "LastUpdateDate_UTC" })); } else { if (mikeScenario.LastUpdateDate_UTC.Year < 1980) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._YearShouldBeBiggerThan_, "LastUpdateDate_UTC", "1980"), new[] { "LastUpdateDate_UTC" })); } } TVItem TVItemLastUpdateContactTVItemID = (from c in db.TVItems where c.TVItemID == mikeScenario.LastUpdateContactTVItemID select c).FirstOrDefault(); if (TVItemLastUpdateContactTVItemID == null) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes.CouldNotFind_With_Equal_, "TVItem", "LastUpdateContactTVItemID", mikeScenario.LastUpdateContactTVItemID.ToString()), new[] { "LastUpdateContactTVItemID" })); } else { List <TVTypeEnum> AllowableTVTypes = new List <TVTypeEnum>() { TVTypeEnum.Contact, }; if (!AllowableTVTypes.Contains(TVItemLastUpdateContactTVItemID.TVType)) { mikeScenario.HasErrors = true; yield return(new ValidationResult(string.Format(CSSPServicesRes._IsNotOfType_, "LastUpdateContactTVItemID", "Contact"), new[] { "LastUpdateContactTVItemID" })); } } retStr = ""; // added to stop compiling CSSPError if (retStr != "") // will never be true { mikeScenario.HasErrors = true; yield return(new ValidationResult("AAA", new[] { "AAA" })); } }
public void MikeScenario_Controller_GetMikeScenarioList_Test() { foreach (LanguageEnum LanguageRequest in AllowableLanguages) { foreach (int ContactID in new List <int>() { AdminContactID }) //, TestEmailValidatedContactID, TestEmailNotValidatedContactID }) { MikeScenarioController mikeScenarioController = new MikeScenarioController(DatabaseTypeEnum.SqlServerTestDB); Assert.IsNotNull(mikeScenarioController); Assert.AreEqual(DatabaseTypeEnum.SqlServerTestDB, mikeScenarioController.DatabaseType); MikeScenario mikeScenarioFirst = new MikeScenario(); int count = -1; Query query = new Query(); using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB)) { MikeScenarioService mikeScenarioService = new MikeScenarioService(query, db, ContactID); mikeScenarioFirst = (from c in db.MikeScenarios select c).FirstOrDefault(); count = (from c in db.MikeScenarios select c).Count(); count = (query.Take > count ? count : query.Take); } // ok with MikeScenario info IHttpActionResult jsonRet = mikeScenarioController.GetMikeScenarioList(); Assert.IsNotNull(jsonRet); OkNegotiatedContentResult <List <MikeScenario> > ret = jsonRet as OkNegotiatedContentResult <List <MikeScenario> >; Assert.AreEqual(mikeScenarioFirst.MikeScenarioID, ret.Content[0].MikeScenarioID); Assert.AreEqual((count > query.Take ? query.Take : count), ret.Content.Count); List <MikeScenario> mikeScenarioList = new List <MikeScenario>(); count = -1; query = new Query(); using (CSSPDBContext db = new CSSPDBContext(DatabaseTypeEnum.SqlServerTestDB)) { MikeScenarioService mikeScenarioService = new MikeScenarioService(query, db, ContactID); mikeScenarioList = (from c in db.MikeScenarios select c).OrderBy(c => c.MikeScenarioID).Skip(0).Take(2).ToList(); count = (from c in db.MikeScenarios select c).Count(); } if (count > 0) { query.Skip = 0; query.Take = 5; count = (query.Take > count ? query.Take : count); // ok with MikeScenario info jsonRet = mikeScenarioController.GetMikeScenarioList(query.Language.ToString(), query.Skip, query.Take); Assert.IsNotNull(jsonRet); ret = jsonRet as OkNegotiatedContentResult <List <MikeScenario> >; Assert.AreEqual(mikeScenarioList[0].MikeScenarioID, ret.Content[0].MikeScenarioID); Assert.AreEqual((count > query.Take ? query.Take : count), ret.Content.Count); if (count > 1) { query.Skip = 1; query.Take = 5; count = (query.Take > count ? query.Take : count); // ok with MikeScenario info IHttpActionResult jsonRet2 = mikeScenarioController.GetMikeScenarioList(query.Language.ToString(), query.Skip, query.Take); Assert.IsNotNull(jsonRet2); OkNegotiatedContentResult <List <MikeScenario> > ret2 = jsonRet2 as OkNegotiatedContentResult <List <MikeScenario> >; Assert.AreEqual(mikeScenarioList[1].MikeScenarioID, ret2.Content[0].MikeScenarioID); Assert.AreEqual((count > query.Take ? query.Take : count), ret2.Content.Count); } } } } }
private bool AddNewScenarioResultAndLogFiles(string FileName, MikeScenario CurrentMikeScenario) { richTextBoxStatus.AppendText("\r\n\r\nFile [" + FileName + "]\r\n"); FileInfo fi = new FileInfo(FileName); FileStream fs = fi.OpenRead(); string FilePath = FileName.Substring(0, FileName.LastIndexOf("\\") + 1); string ShortFileName = FileName.Substring(FileName.LastIndexOf("\\") + 1); Application.DoEvents(); //Read all file bytes into an array from the specified file. int nBytes = (int)fi.Length; Byte[] ByteArray = new byte[nBytes]; int nBytesRead = fs.Read(ByteArray, 0, nBytes); fs.Close(); richTextBoxStatus.AppendText("Checking if file already in DB ...\r\n"); Application.DoEvents(); //string TheFileName = fi.FullName.Substring(fi.FullName.LastIndexOf("\\") + 1); CSSPFile csspFileExist = (from f in vpse.CSSPFiles where f.FileName == ShortFileName && f.FileOriginalPath == FilePath && f.FileType == fi.Extension select f).FirstOrDefault <CSSPFile>(); if (csspFileExist != null) { // just replace the content of the file richTextBoxStatus.AppendText("File already exist in DB ...\r\n"); richTextBoxStatus.AppendText("Updating the fileContent in DB ...\r\n"); csspFileExist.FileContent = ByteArray; try { vpse.SaveChanges(SaveOptions.AcceptAllChangesAfterSave); richTextBoxStatus.AppendText("fileContent updated ...\r\n"); return(true); } catch (Exception ex) { richTextBoxStatus.AppendText("Error while updating fileContent ...\r\n"); richTextBoxStatus.AppendText("Error message [" + ex.Message + "] ...\r\n"); lblStatusWorking.Text = "Error ... "; lblStatusUpdate.Text = "See details below ... "; return(false); } } richTextBoxStatus.AppendText("File does not exist in DB ...\r\n"); richTextBoxStatus.AppendText("Saving file in DB ...\r\n"); Application.DoEvents(); CSSPFile csspFile = new CSSPFile(); csspFile.CSSPGuid = Guid.NewGuid(); csspFile.FileName = ShortFileName; csspFile.FileOriginalPath = FilePath; csspFile.FileSize = fi.Length; csspFile.FileDescription = ""; csspFile.FileCreatedDate = fi.CreationTime; csspFile.FileType = fi.Extension; csspFile.FileContent = ByteArray; if (fi.Extension.ToLower() == ".dfsu") { csspFile.Purpose = PurposeType.MikeResult.ToString(); MemoryStream ms = new MemoryStream(ByteArray); Dfs dfs = new Dfs(Dfs.DFSType.DFSU, true); dfs.StreamToDfs(ms); csspFile.DataStartDate = dfs.DataStartDate; csspFile.DataEndDate = dfs.DataStartDate.AddSeconds(dfs.TimeSteps * dfs.XValueList.Count); csspFile.TimeStepsInSecond = dfs.TimeSteps; string ParamNameTxt = ""; string ParamUnitTxt = ""; foreach (Dfs.Parameter p in dfs.ParameterList) { ParamUnitTxt += string.Format("[{0}]-", p.UnitCode.ToString()); ParamNameTxt += string.Format("[{0}]-", p.Description); } csspFile.ParameterNames = ParamNameTxt.Substring(0, ParamNameTxt.Length - 1); csspFile.ParameterUnits = ParamUnitTxt.Substring(0, ParamUnitTxt.Length - 1); } else if (fi.Extension.ToLower() == ".log") { csspFile.Purpose = PurposeType.MikeResult.ToString(); } else { richTextBoxStatus.AppendText("File extension should only be .dfsu and .log. It is [" + fi.Extension + "] ...\r\n"); return(false); } try { vpse.SaveChanges(SaveOptions.AcceptAllChangesAfterSave); richTextBoxStatus.AppendText("CSSPFile saved in DB ...\r\n"); Application.DoEvents(); } catch (Exception ex) { MessageBox.Show("Could not store file [" + FileName + "] in DB\r\n" + ex.Message + "\r\n"); richTextBoxStatus.AppendText("Could not store file [" + FileName + "] in DB\r\n" + ex.Message + "\r\n"); Application.DoEvents(); lblStatusWorking.Text = "Error ... "; lblStatusUpdate.Text = "See details below ... "; return(false); } int msID = CurrentMikeScenario.MikeScenarioID; CurrentMikeScenario = (from ms in vpse.MikeScenarios where ms.MikeScenarioID == msID select ms).FirstOrDefault <MikeScenario>(); if (CurrentMikeScenario == null) { richTextBoxStatus.AppendText("Could not find MikeScenario with MikeScenarioID = [" + msID + "] ...\r\n"); lblStatusWorking.Text = "Error ... "; lblStatusUpdate.Text = "See details below ... "; return(false); } MikeScenarioFile NewMikeScenarioFile = new MikeScenarioFile(); NewMikeScenarioFile.MikeScenario = CurrentMikeScenario; NewMikeScenarioFile.CSSPFile = csspFile; NewMikeScenarioFile.CSSPParentFile = csspFile; try { richTextBoxStatus.AppendText("Linking MikeScenario to CSSPFile using MikeScenarioFile ...\r\n"); Application.DoEvents(); vpse.SaveChanges(SaveOptions.AcceptAllChangesAfterSave); richTextBoxStatus.AppendText("Linked MikeScenario to CSSPFile using MikeScenarioFile ...\r\n"); } catch (Exception ex) { MessageBox.Show("Could not link MikeScenario to CSSPFile\r\n" + ex.Message + "\r\n"); richTextBoxStatus.AppendText("Could not link MikeScenario to CSSPFile\r\n" + ex.Message + "\r\n"); Application.DoEvents(); lblStatusWorking.Text = "Error ... "; lblStatusUpdate.Text = "See details below ... "; return(false); } return(true); }