/// <summary> /// Connect with the SAP Service. Used for CRUD operation with SAP Service if using with the datatable /// </summary> /// <param name="input">Input List of string paramaters</param> /// <param name="SAPService">Sap service RFC name</param> /// <returns>Datatable</returns> public object ConnectSAPService(List <string> input, string SAPService) { long TimeTookticks = DateTime.Now.Ticks; XmlNode xmlExceptionLocStat = null; SAPService _SAPCon = null; XmlElement xDocTableLocStat = null; XmlDocument xDocLocStat = null; DataTable _datatable = new DataTable(); try { Log4net.LogWriter("SAPService", "Service", "ConnectSAPService || Started : " + Tools.TicksToTime(DateTime.Now.Ticks), Entities.LogType.LogMode.Debug); _SAPCon = new SAPService(AppSettingConfig.GetConfigAppSetting("SAPWebServiceURL")); xDocLocStat = XMLSerializer.Serialize(input, XMLSerializer.InputType.List); switch (SAPService) { case "GetTableData": xDocTableLocStat = (XmlElement)_SAPCon.GetTableData(xDocLocStat, out xmlExceptionLocStat); break; case "R3EmpCreation": xDocTableLocStat = (XmlElement)_SAPCon.R3EmpCreation(xDocLocStat, out xmlExceptionLocStat); break; } xDocTableLocStat = (XmlElement)_SAPCon.GetTableData(xDocLocStat, out xmlExceptionLocStat); List <string> SAPErrorLocStat = (List <string>)XMLSerializer.Deserialize(xmlExceptionLocStat.OuterXml, XMLSerializer.OutputType.List); if (SAPErrorLocStat != null && SAPErrorLocStat.Count > 0 && SAPErrorLocStat[0] != null && SAPErrorLocStat[0].ToString() == "1000") { _datatable = (DataTable)XMLSerializer.Deserialize(xDocTableLocStat.OuterXml, XMLSerializer.OutputType.DataTable); } Log4net.LogWriter("SAPService", "Service", "ConnectSAPService || Resultset Datatable : " + Newtonsoft.Json.JsonConvert.SerializeObject(_datatable), Entities.LogType.LogMode.Debug); Log4net.LogWriter("SAPService", "Service", "ConnectSAPService || Resultset Datatable End: --------------------------------" + Environment.NewLine + "" + Environment.NewLine, Entities.LogType.LogMode.Debug); Log4net.LogWriter("SAPService", "Service", "ConnectSAPService || Service Ended : " + Tools.TicksToTime(TimeTookticks), Entities.LogType.LogMode.Debug); Log4net.LogWriter("SAPService", "Service", "ConnectSAPService || Service Ended: --------------------------------" + Environment.NewLine + "" + Environment.NewLine, Entities.LogType.LogMode.Debug); return(_datatable); } catch (Exception ex) { Log4net.LogWriter("SAPService", "Service", "ConnectSAPService || Error : " + ex.Message, Entities.LogType.LogMode.Error); } finally { _datatable = null; _SAPCon = null; xDocLocStat = null; xDocTableLocStat = null; xmlExceptionLocStat = null; } return(null); }
public Task StartAsync(CancellationToken cancellationToken) { _logger.LogInformation($"AES67Discovery Server started at: { DateTime.Now }"); _logger.LogInformation($"SapSettings: { JsonSerializer.Serialize(this._settings) }"); _sap = new SAPLib.SAPService() { Interval = TimeSpan.FromMilliseconds(_settings.Interval) }; _sap.OnMessageSend += delegate(Object o, MessageSendEventArgs args) { _logger.LogInformation("Send SAP/SDP packet (0x{0:X02})", args.Packet.MessageIdentifierHash); }; if (!String.IsNullOrEmpty(_settings.NetInterface)) { _logger.LogInformation($"Setting multicast send interface to: { _settings.NetInterface }"); _sap.SetSendInterface(IPAddress.Parse(_settings.NetInterface)); } foreach (string item in this._settings.SDPFiles) { try { SapPacket program = new SapPacket(); program.OriginatingSource = String.IsNullOrEmpty(_settings.NetInterface) ? SAPService.GetLocalIPAddress() : IPAddress.Parse(_settings.NetInterface);; program.AttachSDP(item); _sap.Program.Add(item, program); } catch (FileNotFoundException e) { _logger.LogError(e.Message); } catch (Exception e) { _logger.LogError(e.Message); } } _sap.Start(); return(Task.CompletedTask); }
public DraftDeliveryController(IOptions <AppSettings> options) { _appSettings = options.Value; _sapService = new SAPService(_appSettings); _sapService.Connect(); }