private static void SendWorkspace(Fiskalizator fiskalizator, Settings settings) { try { var parameters = new List <string>(Util.ReadFromFile(settings.InputFile).Split('|')); if (parameters.Count != 17) { WriteToFile(settings, new[] { "FALSE", "Input file parameter count missmatch." }); throw new MyExitException(); } PoslovniProstorType workspace; string[] certificateParams; Util.ParseWorkspaceInput(parameters, out workspace, out certificateParams); if (certificateParams == null || !(certificateParams.Length == 1 || certificateParams.Length == 2)) { WriteToFile(settings, new[] { "FALSE", "Certificate definition error" }); throw new MyExitException(); } XmlDocument reply; try { reply = (certificateParams.Length == 1 ? fiskalizator.SendWorkspace(workspace, certificateParams[0]) : fiskalizator.SendWorkspace(workspace, certificateParams[0], certificateParams[1])); } catch (ServerException sex) { reply = fiskalizator.CisErrorReply; var lines = new List <string> { "FALSE" }; if (fiskalizator.CisExceptionStatus != null) { lines.Add("Server exception: " + fiskalizator.CisExceptionStatus); } try { var error = Fiskalizator.GetErrorCodeAndMessage(reply, MessageType.Workspace_From_CIS); lines.Add("Server error: " + error[0] + ' ' + error[1]); } catch { } lines.Add(String.Format("{0} {1}", sex.Message, (sex.InnerException != null ? sex.InnerException.Message : ""))); WriteToFile(settings, lines.ToArray()); throw new MyExitException(); } WriteToFile(settings, new[] { "TRUE", Fiskalizator.GetMessageTimestamp(reply, MessageType.Workspace_From_CIS) }); } catch (MyExitException) { throw new MyExitException(); } catch (Exception ex) { WriteToFile(settings, new[] { "FALSE", ex.Message, (ex.InnerException != null ? ex.InnerException.Message : "") }); } }
private void SendWorkspace(Fiskalizator fiskalizator, List <string> inputParameters) { try { if (inputParameters.Count != 17) { WriteToFile(new[] { "FALSE", "Input file parameter count missmatch." }); throw new MyExitException(); } PoslovniProstorType workspace; string[] certificateParams; Util.ParseWorkspaceInput(inputParameters, out workspace, out certificateParams); if (certificateParams == null || !(certificateParams.Length == 1 || certificateParams.Length == 2)) { WriteToFile(new[] { "FALSE", "Certificate definition error" }); throw new MyExitException(); } XmlDocument reply; try { reply = (certificateParams.Length == 1 ? fiskalizator.SendWorkspace(workspace, certificateParams[0]) : fiskalizator.SendWorkspace(workspace, certificateParams[0], certificateParams[1])); } catch (ServerException sex) { reply = fiskalizator.CisErrorReply; var lines = new List <string> { "FALSE" }; if (fiskalizator.CisExceptionStatus != null) { lines.Add("Server exception: " + fiskalizator.CisExceptionStatus); } try { var error = Fiskalizator.GetErrorCodeAndMessage(reply, MessageType.Workspace_From_CIS); lines.Add("Server error: " + error[0] + ' ' + error[1]); } catch (Exception ex) { if (_settings.WriteDebugToLog) { WriteToLog(GenerateExceptionMessages(sex, 416)); WriteToLog(GenerateExceptionMessages(ex, 432)); } } lines.Add(String.Format("{0} {1}", sex.Message, (sex.InnerException != null ? sex.InnerException.Message : ""))); WriteToFile(lines.ToArray()); throw new MyExitException(); } WriteToFile(new[] { "TRUE", Fiskalizator.GetMessageTimestamp(reply, MessageType.Workspace_From_CIS), (fiskalizator.LastMessageTimeStamps != null ? String.Format("Komunikacija: {0} - {1} ({2})", fiskalizator.LastMessageTimeStamps[0], fiskalizator.LastMessageTimeStamps[1], fiskalizator.LastMessageTimeStamps[1] - fiskalizator.LastMessageTimeStamps[0]) : "") }); } catch (MyExitException) { throw new MyExitException(); } catch (Exception ex) { WriteToFile(new[] { "FALSE", ex.Message, (ex.InnerException != null ? ex.InnerException.Message : "") }); } }