private void WriteWorkbook(IWorkbook workbook, int cursorLeft) { if (!File.Exists(_Config.AODLoadSheetFilePath)) { ConsolePrintHelpers.PrintRedText("\n\n ERROR Missing AOD Loadsheet: "); ConsolePrintHelpers.PrintWhiteText(_Config.AODLoadSheetFilePath); ConsolePrintHelpers.PressAnyKeyToExit(); } try { using (FileStream fsWrite = new FileStream(_Config.AODLoadSheetFilePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite)) { workbook.Write(fsWrite); fsWrite.Close(); } workbook.Close(); Console.CursorLeft = cursorLeft; ConsolePrintHelpers.PrintYellowText("Updated"); } catch (Exception) { Console.WriteLine("\n\n"); ConsolePrintHelpers.PrintRedText(" ERROR: Unable To Update AOD Loadsheet Already Open In Excel\n\n\n"); ConsolePrintHelpers.PrintRedText(" This Software Will Continue Once The Open Loadsheet Is Closed : "); ConsolePrintHelpers.PrintWhiteText(_Config.AODLoadSheetFilePath); Console.WriteLine("\n\n"); bool updateSuccessful = false; while (!updateSuccessful) { try { using (FileStream fsWrite = new FileStream(_Config.AODLoadSheetFilePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite)) { workbook.Write(fsWrite); fsWrite.Close(); } workbook.Close(); Console.CursorTop -= 9; Console.CursorLeft = cursorLeft; ConsolePrintHelpers.PrintYellowText("Updated"); Console.CursorTop += 9; updateSuccessful = true; } catch (Exception) { ConsolePrintHelpers.Retry(); } } } IncrementalLoadSheetBackup(); }