public string ReadDataEntries(string mtu_id, DateTime start, DateTime end, EventLogList eventLogList) { String path = CreateEventFileIfNotExist(mtu_id); XDocument doc = XDocument.Load(path); XElement transfer = doc.Root.Element("Transfer"); XElement events = new XElement("Events"); AddAtrribute(events, "FilterMode", "Match"); AddAtrribute(events, "FilterValue", "MeterRead"); AddAtrribute(events, "RangeStart", start.ToString("yyyy-MM-dd HH:mm:ss")); AddAtrribute(events, "RangeStop", end.ToString("yyyy-MM-dd HH:mm:ss")); foreach (EventLog eventLog in eventLogList.Entries) { PrepareLog_ReadDataEntries(events, eventLog); } transfer.Add(events); doc.Save(path); return(path); }
public void DataReadFile( EventLogList eventLogList, Mtu mtu) { /* * <?xml version="1.0" encoding="utf-8"?> * <Log> * <Transfer> * <MtuId>000000063004810</MtuId> * <LocalTimeStamp>2019-06-10 13:36:45</LocalTimeStamp> * <MtuTimeStamp>2019-06-10 11:26:39</MtuTimeStamp> * <Events FilterMode="Match" FilterValue="MeterRead" RangeStart="2019-05-09 00:00:00" RangeStop="2019-06-10 23:59:59"> * <MeterReadEvent FormatVersion="0"> * <TimeStamp>2019-05-10 04:00:01</TimeStamp> * <MeterRead>999994</MeterRead> * <ErrorStatus>0</ErrorStatus> * <ReadInterval>PT720M</ReadInterval> * <PortNumber>PORT1</PortNumber> * <IsDailyRead>False</IsDailyRead> * <IsTopOfHourRead>True</IsTopOfHourRead> * <ReadReason>Scheduled</ReadReason> * <IsSynchronized>True</IsSynchronized> * </MeterReadEvent> * ... * </Events> * </Transfer> * </Log> */ String uri = CreateFileIfNotExist(BasicFileType.DATA_READ, false, mtu.Id + "-" + DateTime.Now.ToString("MMddyyyyHH") + "DataLog.xml"); XDocument doc = XDocument.Load(uri); XElement transfer = doc.Root.Element("Transfer"); transfer.Add(new XElement("MtuId", mtu.Id)); XElement events = doc.Root.Element("Events"); events.Add(new XAttribute("FilterMode", eventLogList.FilterMode)); events.Add(new XAttribute("FilterValue", eventLogList.EntryType)); events.Add(new XAttribute("RangeStart", eventLogList.DateStart)); events.Add(new XAttribute("RangeStop", eventLogList.DateEnd)); foreach (EventLog log in eventLogList.Entries) { XElement parent = new XElement("MeterReadEvent"); parent.Add(new XAttribute("FormatVersion", log.FormatVersion)); parent.Add(new XElement("TimeStamp", log.TimeStamp)); parent.Add(new XElement("MeterRead", log.MeterRead)); parent.Add(new XElement("ErrorStatus", log.ErrorStatus)); parent.Add(new XElement("ReadInterval", log.ReadInterval)); parent.Add(new XElement("PortNumber", "PORT" + log.PortNumber)); parent.Add(new XElement("IsDailyRead", log.IsDailyRead)); parent.Add(new XElement("IsTopOfHourRead", log.IsTopOfHourRead)); parent.Add(new XElement("ReadReason", log.ReasonForRead)); parent.Add(new XElement("IsSynchronized", log.IsSynchronized)); events.Add(parent); } // Update file with new data doc.Save(uri); }
private ActionResult ReadMTUData(DateTime start, DateTime end, EventLogList eventLogList, MTUBasicInfo mtuInfo, Mtu mtu) { /* * ActionResult result = new ActionResult(); * * string log_path = logger.ReadDataEntries(mtuInfo.Id.ToString("d15"), start, end, Entries); * * InterfaceParameters[] parameters = configuration.getAllInterfaceFields(mtu, ActionType.ReadData ); * foreach (InterfaceParameters parameter in parameters) * { * if (parameter.Name.Equals("Port")) * { * for (int i = 0; i < mtu.Ports.Count; i++) * { * foreach (InterfaceParameters port_parameter in parameter.Parameters) * { * if (port_parameter.Source != null && port_parameter.Source.StartsWith("ActionParams")) * { * Parameter sel_parameter = GetParameterByTag(port_parameter.Name, i + 1); * if (sel_parameter != null) * { * result.AddParameter(new Parameter(port_parameter.Name, port_parameter.Display, sel_parameter.Value)); * } * } * * } * * * } * } * else * { * try * { * * if (parameter.Source != null && parameter.Source.StartsWith("ActionParams")) * { * Parameter sel_parameter = GetParameterByTag(parameter.Name); * if (sel_parameter != null) * { * result.AddParameter(new Parameter(parameter.Name, parameter.Display, sel_parameter.Value)); * } * } * } * catch (Exception e) * { * Utils.Print(e.Message + "\r\n" + e.StackTrace); * } * } * * } * * result.AddParameter(new Parameter("ReadRequest", "Number Read Request Days", "")); * result.AddParameter(new Parameter("ReadResult", "Read Result", "Number of Reads " + Entries.Count.ToString() + " for Selected Period From " + start.ToString("dd/MM/yyyy") + " 0:00:00 Till " + end.ToString("dd/MM/yyyy") + " 23:59:59")); * result.AddParameter(new Parameter("ReadResultFile", "Read Result File", log_path)); * * return result; */ return(null); }