Example #1
0
        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;
        }
Example #2
0
 public FRMaria(JToken o, CUni c, string e)
 {
     this.data = o;
     this.objArtSoft = c;
     this.eventName = e;
 }