public void SendTransactionComplete() { LoyaltyService.TransactionCompleteResult res = new LoyaltyService.TransactionCompleteResult(); var myBinding = new BasicHttpBinding(); myBinding.Security.Mode = BasicHttpSecurityMode.None; var myEndpointAddress = new EndpointAddress(conf.MSRService); LoyaltyService.LoyaltyServiceClient s = new LoyaltyService.LoyaltyServiceClient(myBinding, myEndpointAddress); try { res = s.TransactionComplete(msr.lastReference, lastamount, lastvol, msr.ProductCode, DateTime.Now); } catch (Exception ex) { myLog.Log("Cannot report transaction - server down."); } }
public void Worker() { string c = ""; while (true) { try { Thread.Sleep(5); if (FoundCard) { myLog.Log("Invoked found card"); FoundCard = false; int ep = Card.IndexOf('='); if (ep != -1) { c = Card.Substring(0, Card.IndexOf('=')); } else { c = Card; } stat.carddata = c; myLog.Log("Valid card, update GUI: " + c); stat.msg = MsgLogType.MSRRead; m_sender.BeginInvoke(m_senderDelegate, stat); Thread.Sleep(50); stat.msg = MsgLogType.MSRRequestAuth; m_sender.BeginInvoke(m_senderDelegate, stat); Thread.Sleep(1000); myLog.Log("Going to request auth: " + c); //get auth var myBinding = new BasicHttpBinding(); // DisableDecompression(myBinding); myBinding.Security.Mode = BasicHttpSecurityMode.None; var myEndpointAddress = new EndpointAddress(conf.MSRService); LoyaltyService.LoyaltyServiceClient s = new LoyaltyService.LoyaltyServiceClient(myBinding, myEndpointAddress); myBinding.MessageEncoding = WSMessageEncoding.Text; LoyaltyService.AuthResult res = new LoyaltyService.AuthResult(); try { res = s.GetAuth(c, GetStationCode()); } catch (Exception ex) { myLog.Log("Error GetAuth - server down."); stat.msg = MsgLogType.MSRCommError; m_sender.BeginInvoke(m_senderDelegate, stat); continue; } //MessageBox.Show(res.DriverName + " " + res.Limit.ToString() + " " + res.ProductsCode[0].ToString()); myLog.Log("Got auth replay: " + res.Allowed.ToString() + ":" + res.DriverName + ":" + res.ErrorDesc); stat.ErrorDesc = res.ErrorDesc; stat.carddata = c; try { stat.Reference = res.Reference; stat.CPassRequired = res.cPassRequired; stat.PINRequired = res.PINRequired; stat.PIN = res.PinCode; if (res.DriverName != null) { stat.DriverName = res.DriverName; } } catch (Exception ex) { //ignor } if (res.Allowed) { //copy product locally stat.ProductsList = new List <MyProductItem>(); foreach (ForeFuelSimulator.LoyaltyService.ProductItem item in res.ProductsList) { stat.ProductsList.Add(new MyProductItem(item.Code, item.Discount, item.DiscountType)); } //check correct product bool found = false; foreach (MyProductItem item in stat.ProductsList) { if (item.Code == ProductCode) { found = true; break; } } if (!found && ProductCode != 0) { stat.msg = MsgLogType.MSRWrongProduct; } else { stat.msg = MsgLogType.MSRAuth; lastReference = res.Reference; } stat.Limit = res.Limit; stat.LimitType = res.LimitType; } else { stat.msg = MsgLogType.MSRReject; } m_sender.BeginInvoke(m_senderDelegate, stat); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } }