public static AlgorithmType Create( AlgorithmTypeValue algorithmValue, int index) { string minFormulaFormat = ParsingManager.TransformRawFormulaToFormulaFormat( algorithmValue.MinFormula ); string averageFormulaFormat = ParsingManager.TransformRawFormulaToFormulaFormat( algorithmValue.AverageFormula ); string maxFormulaFormat = ParsingManager.TransformRawFormulaToFormulaFormat( algorithmValue.MaxFormula ); return(new AlgorithmType( description: algorithmValue.Description, value: index, minFormulaFormat: minFormulaFormat, averageFormulaFormat: averageFormulaFormat, maxFormulaFormat: maxFormulaFormat, analysisProgramName: algorithmValue.AnalysisProgramName, outputFilenamePattern: algorithmValue.OutputFilenamePattern )); }
public void ParseModbusPacket() { // SP003169<MENT(95,151,17,251,25,3,7,24,48,24,0,0,0,20,0,3,0,0,0,0,0,0,0,0,0,20,0,3,0,0,0,0,0,0,178,93)> // SP003199<MENT(95,156,6,32,25,3,3,0,0,20,19,10,0,0,1,98,254,153,0,0,0,0,0,0,0,0,11,74,11,4,49,170)> /* * Raw : SP002911<MENT(95,156,17,74,25,3,3,0,0,20,20,242,0,235,0,234,0,0,0,0,0,0,0,0,0,0,0,0,11,114,227,233)> Page3 * Data: 53.62,23.5,23.4,0,0,0,0,0,0,29.3 * SP900019[MECM(95,192,125,175,1,4,5,0,0,66,0,251,0,16,133,36,0,0,33,135,0,15,252,125,0,0,170,46,0,0,23,152,0,16,143,19,0,11,67,100,0,5,99,71,0,9,129,106,0,7,37,65,0,16,166,157,0,0,0,14,0,16,166,156,0,0,0,15,0,16,166,151,0,0,0,20,0,0] * SP003230[MENT(95,189,32,28,25,3,12,27,36,80,56,39,87,80,21,24,4,238,10,240,11,184,0,38,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76,168] * SP002968[MEMT(95,189,32,28,25,3,3,2,178,90,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,228,61] */ var message = CreateModbusPacket("SP900019", "MECM", new byte[] { 95, 192, 125, 175, 1, 4, 5, 0, 0, 66, 0, 251, 0, 16, 133, 36, 0, 0, 33, 135, 0, 15, 252, 125, 0, 0, 170, 46, 0, 0, 23, 152, 0, 16, 143, 19, 0, 11, 67, 100, 0, 5, 99, 71, 0, 9, 129, 106, 0, 7, 37, 65, 0, 16, 166, 157, 0, 0, 0, 14, 0, 16, 166, 156, 0, 0, 0, 15, 0, 16, 166, 151, 0, 0, 0, 20, 0, 0 }); //var message = "SP002411<SGRC(ID(00,30/10/2020,14:23:19)X(28.0,24.2,-65,0)H(14,45,32264261,10478812,32264298,32236195,32216922,32217082)L(99,900.35,43106,21828503,43109,71240,90465,90265)A(00101111))>"; var packet = ParsingManager.FirstLevelParser(message); var protocl = ProtocolList.Instance.Find(packet.ProtocolHeader); if (protocl.ProtocolType == Core.Enumerations.ProtocolType.Monitoring) { var pkt = Parser.ParsingManager.SecondLevelParser(packet); var str = JsonConvert.SerializeObject(pkt, Formatting.Indented); } else { var pkt = string.Format("{0}<{1}({2})>\r", packet.TerminalId, packet.ProtocolHeader, packet.Data); } }
public static HtmlDocument Load(string html) { ParsingManager parsingManger = new ParsingManager(); var document = parsingManger.Parse(html); return(document); }
public static AlgorithmTypeValue Create( AlgorithmType algorithmValue) { string rawMinFormula = ParsingManager.TransformFormulaFormatToRawFormula( algorithmValue.MinFormulaFormat ); string rawAverageFormula = ParsingManager.TransformFormulaFormatToRawFormula( algorithmValue.AverageFormulaFormat ); string rawMaxFormula = ParsingManager.TransformFormulaFormatToRawFormula( algorithmValue.MaxFormulaFormat ); return(new AlgorithmTypeValue { Description = algorithmValue.Description, MinFormula = rawMinFormula, AverageFormula = rawAverageFormula, MaxFormula = rawMaxFormula, AnalysisProgramName = algorithmValue.AnalysisProgramName, OutputFilenamePattern = algorithmValue.OutputFilenamePattern }); }
public async Task <IActionResult> Upload(ICollection <IFormFile> files) { foreach (var file in files.Where(f => f.Length > 0)) { if (ModelState.IsValid) { ParsingManager.Parse(file); } } return(View("Index", await _context.Game.ToListAsync())); }
public void JsonParserSelectionUnitTest() { var incomingJson = GenerateJsonData(parserName: typeof(CocaColaParser).ToString()); var parsingManager = new ParsingManager(); var userdto = parsingManager.ParseData(incomingJson); Assert.AreEqual(userdto.Email, _email); Assert.AreEqual(userdto.FirstName, _firstname); Assert.AreEqual(userdto.LastName, _lastname); Assert.AreEqual(userdto.Age, _age); }
public void ParseModbusGetParsing() { string raw = "SP003254<CMOD(GET[MNAR,38,4,4095,51,0])>"; var packet = ParsingManager.FirstLevelParser(raw); var str = packet.Data.Replace("GET[", "").TrimEnd(']'); var strArray = str.Split(','); GTGetModbusDevice device = new GTGetModbusDevice(packet.TerminalId); device.Parse(strArray); device.DeviceName = "MDPC"; var s = device.ToString(); }
static void Main(string[] args) { var parsingManager = new ParsingManager(new BookParser(), new JsonFileReader(), new CsvFileSaver(new CsvExport <Book>(), "outputCsv.csv"), new List <IParsingRule>() { new PriceRule() }, new List <IDeleteRule>() { new SabathDeleteRule(), new AuthorNameDeleteRule() }); parsingManager.ParsedBookData("books.json"); Console.WriteLine("Hello World!"); }
public void SecondLevelParsing() { //SP900018[MECM(95,211,185,189,1,4,9,0,0,64,0,3,14,169,244,125,230,174,0,1,116,236,190,125,218,223,0,1,255,175,160,43,2,28,0,41,2,43,138,2,39,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] Parser.ReceivedPacket packet = new ReceivedPacket { Data = "95,211,185,189,1,4,9,0,0,64,0,3,14,169,244,125,230,174,0,1,116,236,190,125,218,223,0,1,255,175,160,43,2,28,0,41,2,43,138,2,39,38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0", ProtocolHeader = "MECM", ReceivedOn = DateTime.UtcNow, TerminalId = "SP111111" }; var pkt = ParsingManager.SecondLevelParser(packet); var str = JsonConvert.SerializeObject(pkt, Formatting.Indented); }
public void FirsLevelParsing() { //CGRC00 cgrc00 = new CGRC00(); //CGRC01 cgrc01 = new CGRC01(); //CGRC02 cgrc02 = new CGRC02(); string raw = "SP333444<CGRC(ID(00,17/01/2021,07:51:07)N(+923333451191,+923468220229,+923333404763,,,,,,,,SR117R00BL01R00,13-Jan-16,16:27:21,+923,internet,,,+923,internet,,,333444,+923333451191,67.23.248.114,30004,SPMX00DT,SPMX01DT,,,,,,,1,15,2,4,30,9600,15,2)L(1000101101000000000001000000000000))\r>"; var packet = ParsingManager.FirstLevelParser(raw); var list = GTCommandFactory.GetConfiguration(packet); //cgrc00.Parse(packet.Data); //cgrc01.Parse(packet.Data); //cgrc02.Parse(packet.Data); }
private void SendToListener(ReceivedPacket receivedPacket) { try { if (Context != null) { Context.TransferText(receivedPacket.ToString()); } ParsingManager.SecondLevelParser(receivedPacket); } catch (Exception ex) { LoggingManager.Log(ex); } }
void TerminalDataReceived(object Sender, DataReceivedEventArgs e) { try { //byte[] dataBytes1 = Encoding.Default.GetBytes(e.ReceivedText); var result = ParsingManager.FirstLevelParser(e.ReceivedText); UpdateGTStatus(e.ClientSocket, result.ToString()); SendToListener(result); TransferText(result.ToString()); } catch (Exception ex) { LoggingManager.Log(ex); } }
public async Task <IHttpActionResult> PostFormData() { if (!Request.Content.IsMimeMultipartContent()) { throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType); } var root = HttpContext.Current.Server.MapPath("~//Templates"); var provider = new MultipartFormDataStreamProvider(root); await Request.Content.ReadAsMultipartAsync(provider); var parser = new ParsingManager(); var buffer = File.ReadAllBytes(provider.FileData.SingleOrDefault()?.LocalFileName); var contacts = parser.RetrieveContactsFromFile(buffer); var success = await appManager.AddMultipleContacts(contacts); if (success == false || contacts.TrueForAll(x => x == null)) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "File or data is corrupt"))); } return(ResponseMessage(Request.CreateResponse(HttpStatusCode.OK, $"Added: {contacts.Count(x => x != null)}, Failed: {contacts.Count(x => x == null)}"))); }
public static ReonParsedPacket SecondLevelParsing(ReceivedPacket packet) { return(ParsingManager.SecondLevelParser(packet)); }
protected override void ChannelRead0(IChannelHandlerContext context, string message) { string methodName = nameof(ChannelRead0); Log?.Verbose(className, methodName, string.Format("{0}: [{1}]", context.Channel, message)); try { var info = ChannelManager.Instance.FindChannelInfo(context); if (info != null) { string filter = string.Empty; int filterLenght = 3; if (!string.IsNullOrEmpty(message)) { if (message.Length > filterLenght) { filter = message.Substring(message.Length - filterLenght, filterLenght); if (!filter.Contains(">")) { Log?.Warning(className, methodName, string.Format("Partial Packet Received {0}: [{1}]", context.Channel, message)); info.MessageBuffer.Append(message); info.PartialPacket = true; return; } else { info.MessageBuffer.Append(message); message = info.MessageBuffer.ToString(); info.MessageBuffer.Clear(); if (info.PartialPacket) { Log?.Warning(className, methodName, string.Format("Merging Partial Packets {0}: [{1}]", context.Channel, message)); } info.PartialPacket = false; } } else { info.MessageBuffer.Append(message); info.PartialPacket = false; message = info.MessageBuffer.ToString(); info.MessageBuffer.Clear(); Log?.Warning(className, methodName, string.Format("Merging Partial Packets {0}: [{1}]", context.Channel, message)); } } } string key = string.Empty; var result = ParsingManager.FirstLevelParser(message); if (result != null) { if (!result.Data.Equals(TerminalHelper.PONG)) { int logLevel = (int)WebApiServerConfigurationManager.Instance.Configurations.LogLevel; if (logLevel >= (int)Component.Logging.Models.LogLevel.Debug) { ReceivedPacketEntity entity = new ReceivedPacketEntity { ReceivedOn = result.ReceivedOn, Data = result.Data, ProtocolHeader = result.ProtocolHeader, TerminalId = result.TerminalId }; //ReceivedPacketRepository.Save(entity); Logging.Logger.Instance.Log.Write(JsonConvert.SerializeObject(entity)); } var protocol = ProtocolList.Instance.Find(result.ProtocolHeader); if (protocol != null) { if (protocol.ProtocolType == ProtocolType.Monitoring) { var packet = ParsingManager.SecondLevelParser(result); if (packet != null) { var json = JsonConvert.SerializeObject(packet, Formatting.None); ChannelManager.Instance.UpdateChannelInfo(context, result.TerminalId); Console.WriteLine(json); if (!string.IsNullOrEmpty(json)) { PushToServer(packet); } } } else if (protocol.ProtocolType == ProtocolType.Control) { if (protocol.DeviceType == DeviceType.Saltec) { ChannelHandler.TerminalCommandReceived(new TerminalCommandReceivedEventArgs { ChannelKey = result.TerminalId, Message = message }); } else if (protocol.DeviceType == DeviceType.Modbus) { //string.Format("{0}<{1}({2})>\r", packet.TerminalId, packet.ProtocolHeader, packet.Data); ChannelHandler.TerminalCommandReceived(new TerminalCommandReceivedEventArgs { ChannelKey = result.TerminalId, Message = string.Format("{0}<{1}({2})>\r", result.TerminalId, result.ProtocolHeader, result.Data) }); } } } } } } catch (Exception ex) { Log?.Error(className, methodName, ex.ToString()); } }
public static TerminalCommandResponse SendGTCommandRequest(TerminalCommandRequest commandRequest, GTCommandType commandType) { var config = WebApiServerConfigurationManager.Instance.Configurations; TerminalCommandResponse response = new TerminalCommandResponse(); try { var connected = WebServer.server.ChannelKeys.Contains(commandRequest.TerminalId); if (!connected) { return(new TerminalCommandResponse { RequestId = commandRequest.RequestId, Data = null,//commandRequest.Data, RequestType = commandRequest.RequestType, ResponseStatus = ResponseStatus.Failed, Message = "Site not connected." }); } var cmd = TerminalCommandHandler.Instance.Find(commandRequest.TerminalId); if (cmd != null) { return(new TerminalCommandResponse { RequestId = commandRequest.RequestId, Data = commandRequest.Data, RequestType = commandRequest.RequestType, ResponseStatus = ResponseStatus.Failed, Message = "Another configuration already in process. Please try again later" }); } TerminalCommandHandler.Instance.Add(new TerminalCommand { RequestData = commandRequest.Data, TerminalId = commandRequest.TerminalId, RequestReceivedOn = DateTimeHelper.CurrentUniversalTime, Status = CommandStatus.RequestReceived }); WebServer.server.Notify(commandRequest); int retries = config.TerminalCommandRetries; while (retries > 0) { retries--; try { var command = TerminalCommandHandler.Instance.Find(commandRequest.TerminalId); if (command.Status == CommandStatus.ResponseReceived) { TerminalCommandHandler.Instance.Remove(commandRequest.TerminalId); var data = command.ResponseData; ICGRC gtConfig = null; if (!string.IsNullOrEmpty(data)) { var packet = ParsingManager.FirstLevelParser(data); gtConfig = GTCommandFactory.GetConfiguration(packet, commandType); } return(new TerminalCommandResponse { RequestId = commandRequest.RequestId, Data = gtConfig, RequestType = commandRequest.RequestType, ResponseStatus = ResponseStatus.Success, Message = "Response Received", TerminalId = command.TerminalId }); } } catch (Exception ex) { return(new TerminalCommandResponse { RequestId = commandRequest.RequestId, Data = null, RequestType = commandRequest.RequestType, ResponseStatus = ResponseStatus.Failed, Message = ex.Message }); } Thread.Sleep(config.TerminalCommandRetryIntervalInSeconds * 1000); } TerminalCommandHandler.Instance.Remove(commandRequest.TerminalId); return(new TerminalCommandResponse { RequestId = commandRequest.RequestId, Data = null, RequestType = commandRequest.RequestType, ResponseStatus = ResponseStatus.Failed, Message = "Request Timed Out", TerminalId = commandRequest.TerminalId }); } catch (Exception ex) { return(new TerminalCommandResponse { RequestId = commandRequest.RequestId, Data = null, RequestType = commandRequest.RequestType, ResponseStatus = ResponseStatus.Failed, Message = ex.Message }); } }