public static async Task <DateTime> getValNextDate(string iess, DateTime dateStart, DateTime dateEnd, string func, double limitVal) { TabularRequest req = new TabularRequest(); req.period = new TimePeriod() { from = new Timestamp() { second = EDSClass.toTS(dateStart) }, till = new Timestamp() { second = EDSClass.toTS(dateEnd) } }; req.step = new TimeDuration() { seconds = (long)(dateEnd - dateStart).TotalSeconds }; List <TabularRequestItem> list = new List <TabularRequestItem>(); list.Add(new TabularRequestItem() { function = func, pointId = new PointId() { iess = iess }, @params = new double[] { limitVal } }); req.items = list.ToArray(); uint id = 0; try { id = EDSClass.Client.requestTabular(EDSClass.AuthStr, req); } catch (Exception e) { Logger.Info(e.ToString()); } TabularRow[] rows; bool ok = await EDSClass.ProcessQueryAsync(id); PointId[] points = EDSClass.Client.getTabular(EDSClass.AuthStr, id, out rows); if (rows.Length > 0) { TabularRow row = rows[0]; double ts = getVal(row.values[0].value); return(EDSClass.fromTS((long)ts)); } else { return(dateEnd); } }
public void CreateTest() { var row = TabularRow.Create(key, name, unit); Assert.AreEqual(key, row.Key); Assert.AreEqual(name, row.Name); Assert.AreEqual(unit, row.Unit); }
public void GetLatex_TabularRowWithSingleElement_CorrectGenerateLatexCode() { var row = new TabularRow <ILatexElement>(); row.AddElement(new SimpleText("New element")); AssertExtensions.CompareLatex(row.GetLatex(), @"New element \\"); }
public void CreateTest1() { var desc = new PropertyDescription(key, name, unit); var row = TabularRow.Create(desc); Assert.AreEqual(key, row.Key); Assert.AreEqual(name, row.Name); Assert.AreEqual(unit, row.Unit); }
public void AddElement_DefaultConfiguration_ThrowIncompatibleNumberOfColumns() { var tabular = new Tabular(); var row = new TabularRow <ILatexElement>(); var emptyRow = new TabularRow <ILatexElement>(); row.AddElement(new SimpleText("New element")); tabular.AddElement(row); Assert.Throws <IncompatibleNumberOfColumnsException>(() => tabular.AddElement(emptyRow)); }
public void AddTest() { // add succeeded var row = TabularRow.Create(key, name, unit); var value = "dummy"; Assert.AreEqual(0, row.Values.Count); row.Add(value); Assert.AreEqual(1, row.Values.Count); Assert.AreEqual(value, row.Values[0]); }
public void AddElement_CustomConfiguration_ThrowIncompatibleNumberOfColumns() { var configuration = new List <Alligment>() { Alligment.Left, Alligment.Right }; var tabular = new Tabular(configuration); var row = new TabularRow <ILatexElement>(); row.AddElement(new SimpleText("New element")); Assert.Throws <IncompatibleNumberOfColumnsException>(() => tabular.AddElement(row)); }
public void GetLatex_TabularWithSingleRow_CorrectGenerateLatexCode() { var tabular = new Tabular(); var row = new TabularRow <ILatexElement>(); row.AddElement(new SimpleText("New element")); tabular.AddElement(row); AssertExtensions.CompareLatex(tabular.GetLatex(), @"\begin{tabular}{|c|} \hline New element \\ \hline \end{tabular}"); }
public static async Task <double> getValFromServer(string iess, DateTime date) { TabularRequest req = new TabularRequest(); req.period = new TimePeriod() { from = new Timestamp() { second = EDSClass.toTS(date) }, till = new Timestamp() { second = EDSClass.toTS(date) + 1 } }; req.step = new TimeDuration() { seconds = 1 }; List <TabularRequestItem> list = new List <TabularRequestItem>(); list.Add(new TabularRequestItem() { function = "VALUE", pointId = new PointId() { iess = iess }, shadePriority = ShadePriority.REGULAROVERSHADE }); req.items = list.ToArray(); uint id = EDSClass.Client.requestTabular(EDSClass.AuthStr, req); TabularRow[] rows; bool ok = await EDSClass.ProcessQueryAsync(id); PointId[] points = EDSClass.Client.getTabular(EDSClass.AuthStr, id, out rows); double val = Double.MinValue; TabularRow row = rows[0]; { val = getVal(row.values[0].value); } return(val); }
public void GetLatex_TabularWithMultipleColumn_DefaultConfiguration() { var tabular = new Tabular(); var row = new TabularRow <ILatexElement>(); row.AddElement(new SimpleText("New element v1")); row.AddElement(new SimpleText("New element v2")); tabular.AddElement(row); tabular.AddElement(row); AssertExtensions.CompareLatex(tabular.GetLatex(), @"\begin{tabular}{|c|c|} \hline New element v1 & New element v2 \\ \hline New element v1 & New element v2 \\ \hline \end{tabular}"); }
public static string ToLatex <T>(this IEnumerable <T> collection) { var latexTable = new Table(); var latexTabular = new Tabular(); foreach (var element in collection) { var latexRow = new TabularRow <ILatexElement>(); foreach (var property in typeof(T).GetProperties()) { var latexElement = new SimpleText(property.GetValue(element).ToString()); latexRow.AddElement(latexElement); } latexTabular.AddElement(latexRow); } latexTable.AddElement(latexTabular); return(latexTable.GetLatex()); }
public void GetLatex_TabularWithMultipleColumn_CustomConfiguration() { var configuration = new List <Alligment>() { Alligment.Left, Alligment.Right }; var tabular = new Tabular(configuration); var row = new TabularRow <ILatexElement>(); row.AddElement(new SimpleText("New element v1")); row.AddElement(new SimpleText("New element v2")); tabular.AddElement(row); tabular.AddElement(row); AssertExtensions.CompareLatex(tabular.GetLatex(), @"\begin{tabular}{|l|r|} \hline New element v1 & New element v2 \\ \hline New element v1 & New element v2 \\ \hline \end{tabular}"); }
public async Task <bool> ReadData() { ResultData = new Dictionary <DateTime, Dictionary <string, double> >(); DateTime date = DateStart.AddHours(0); while (date < DateEnd) { DateTime de = date.AddHours(0); switch (Period) { case EDSReportPeriod.sec: de = date.AddSeconds(1); break; case EDSReportPeriod.minute: de = date.AddMinutes(1); break; case EDSReportPeriod.hour: de = date.AddHours(1); break; case EDSReportPeriod.day: de = date.AddDays(1); break; case EDSReportPeriod.month: de = date.AddMonths(1); break; } ResultData.Add(date, new Dictionary <string, double>()); foreach (string id in RequestData.Keys) { ResultData[date].Add(id, 0); } date = de.AddHours(0); } List <TabularRequestItem> list = new List <TabularRequestItem>(); foreach (EDSReportRequestRecord rec in RequestData.Values) { list.Add(new TabularRequestItem() { function = EDSClass.getReportFunctionName(rec.Function), pointId = new PointId() { iess = rec.Point.IESS }, shadePriority = rec.Point.IsShade ? ShadePriority.SHADEOVERREGULAR : ShadePriority.REGULAROVERSHADE }); } if (!EDSClass.Connected) { EDSClass.Connect(); } if (EDSClass.Connected) { if (Period != EDSReportPeriod.month) { List <DateTime> dates = ResultData.Keys.ToList(); DateTime ds = DateStart.AddHours(0); DateTime de = DateStart.AddHours(1); while (ds < DateEnd) { if (Period == EDSReportPeriod.minute || Period == EDSReportPeriod.sec) { int i0 = dates.IndexOf(ds); int i1 = i0 + 1000; de = i1 < dates.Count ? dates[i1] : DateEnd; } else { de = de.AddDays(5); try { de = dates.First(d => d >= de); } catch { de = DateEnd; } } EDSClass.Single.GlobalInfo = String.Format("{0}-{1}", ds.ToString("dd.MM.yyyy HH:mm:ss"), de.ToString("dd.MM.yyyy HH:mm:ss")); TabularRequest req = new TabularRequest(); req.period = new TimePeriod() { from = new Timestamp() { second = EDSClass.toTS(ds) }, till = new Timestamp() { second = EDSClass.toTS(de) } }; req.step = new TimeDuration() { seconds = EDSClass.getPeriodSeconds(Period) }; req.items = list.ToArray(); uint id = EDSClass.Client.requestTabular(EDSClass.AuthStr, req); TabularRow[] rows; bool ok = await EDSClass.ProcessQueryAsync(id); if (!ok) { break; } PointId[] points = EDSClass.Client.getTabular(EDSClass.AuthStr, id, out rows); List <string> keys = RequestData.Keys.ToList(); foreach (TabularRow row in rows) { DateTime dt = EDSClass.fromTS(row.ts.second); for (int i = 0; i < row.values.Count(); i++) { double val = EDSClass.getVal(row.values[i].value); PointId point = points[i]; string resId = keys[i]; EDSReportRequestRecord request = RequestData[resId]; if (request.Function == EDSReportFunction.vyrab && Period == EDSReportPeriod.day) { val *= 24; } ResultData[dt][resId] = val; } } ds = de.AddHours(0); } } else { DateTime ds = DateStart.AddHours(0); while (ds < DateEnd) { EDSClass.Single.GlobalInfo = String.Format("{0}-{1}", ds.ToString("dd.MM.yyyy"), ds.AddMonths(1).ToString("dd.MM.yyyy")); DateTime de = ds.AddMonths(1); TabularRequest req = new TabularRequest(); req.period = new TimePeriod() { from = new Timestamp() { second = EDSClass.toTS(ds) }, till = new Timestamp() { second = EDSClass.toTS(de) } }; int seconds = (int)(EDSClass.toTS(de) - EDSClass.toTS(ds)); req.step = new TimeDuration() { seconds = seconds }; req.items = list.ToArray(); uint id = EDSClass.Client.requestTabular(EDSClass.AuthStr, req); TabularRow[] rows; bool ok = await EDSClass.ProcessQueryAsync(id); if (!ok) { break; } PointId[] points = EDSClass.Client.getTabular(EDSClass.AuthStr, id, out rows); List <string> keys = RequestData.Keys.ToList(); TabularRow row = rows.First(); DateTime dt = EDSClass.fromTS(row.ts.second); for (int i = 0; i < row.values.Count(); i++) { double val = EDSClass.getVal(row.values[i].value); PointId point = points[i]; string resId = keys[i]; EDSReportRequestRecord request = RequestData[resId]; if (request.Function == EDSReportFunction.vyrab) { val *= seconds / 3600.0; } ResultData[dt][resId] = val; } ds = de.AddHours(0); } } } return(true); }