private bool PrintDataByParams(ref List<WebResult> results, string registerDataId, string registerModel, JToken itemData, CUni objArtSoft, string eventName, string jsonString) { AFiscalRegister printer = null; switch (registerModel) { case "Мария 301МТМ/Мария-304Т/Мария-304Т1/Мария-304Т2": printer = new FRMaria(itemData, objArtSoft, eventName); break; case "1": break; case "2": break; case "3": break; case "4": break; default: printer = new FRMaria(itemData, objArtSoft, eventName); break; } if (printer != null) { try { KeyValuePair<bool, string> result = printer.PrintData(); results.Add(new WebResult() { isError = !result.Key, lastErrorMessage = result.Value, data = registerDataId }); if (result.Key == false) { AddToLog("Ошибка, ID = " + registerDataId); AddToLog(result.Value); AddToLog("JSON string: " + jsonString); if (printer.IsNeedZReport(result.Value)) { printer = null; string jString = "{\"report_type\": \"zreport\"}"; JToken iData = JToken.Parse(jString); if (this.PrintDataByParams(ref results, "-generated-zreport-", registerModel, iData, objArtSoft, "customReport", jString)) { return this.PrintDataByParams(ref results, registerDataId, registerModel, itemData, objArtSoft, eventName, jsonString); } return false; } else if (printer.IsNeedReconnect(result.Value)) { if (this.DiscconnectFromDevice() && this.ConnectToDevice()) { this.PrintDataByParams(ref results, registerDataId, registerModel, itemData, objArtSoft, eventName, jsonString); } } else { printer = null; return false; } } else { printer = null; AddToLog("Выполнено, ID = " + registerDataId); return true; } } catch (Exception err1) { string errMsg = "Ошибка обработки данных: " + err1.Message; results.Add(new WebResult() { isError = true, lastErrorMessage = errMsg, data = registerDataId }); AddToLog(errMsg); return false; } } return false; }
public FRMaria(JToken o, CUni c, string e) { this.data = o; this.objArtSoft = c; this.eventName = e; }