private static void MinuteSecondSort( GraphData data, GraphConfiguration configuration, ValGroup sortGroup, string name, Series series ) { int i = 0; int point = 0; double?value = null; for (DateTime date = data.FromDate; date <= data.ToDate; date = sortGroup == ValGroup.Minute ? date.AddMinutes(1) : date.AddSeconds(1)) { value = data.GetValueForNameAndDate(name, date, data.Configuration.ItemsConfiguration.Unit, sortGroup); if (value != null && value >= 1.0d) { point = series.Points.AddXY(i, value.Value); series.Points[point].AxisLabel = date.ToString("HH:mm" + (sortGroup == ValGroup.Minute ? "" : ":ss") + " dd.MM.yy"); } else if (value != null && value < 1.0d) { } else if (configuration.GraphType.Value == GraphTypeEnum.NameDateStackedColumn) { point = series.Points.AddXY(i, 0.0d); series.Points[point].AxisLabel = date.ToString("HH:mm" + (sortGroup == ValGroup.Minute ? "" : ":ss") + " dd.MM.yy"); } i++; } }
private static void MonthWeekDaySort( GraphData data, GraphConfiguration configuration, string name, Series series, ValGroup sort ) { int i = 0; int point = 0; double?value = null; for (DateTime date = data.FromDate.Date; date <= data.ToDate.Date; date = date.Date.AddDays(1)) { DateTime labelDate = date; if (sort == ValGroup.Week) { labelDate = labelDate.PreviousMonday(); } value = data.GetValueForNameAndDate(name, date, data.Configuration.ItemsConfiguration.Unit, sort); if (value != null && value >= 1.0d) { point = 0; switch (sort) { case ValGroup.Month: point = series.Points.AddXY(i, value.Value); series.Points[point].AxisLabel = date.Date.ToString("MM.yyyy"); break; case ValGroup.Day: point = series.Points.AddXY(date, value.Value); series.Points[point].AxisLabel = date.Date.ToString("dd.MM.yyyy"); break; case ValGroup.Week: point = series.Points.AddXY(labelDate, value.Value); series.Points[point].AxisLabel = labelDate.Date.ToString("dd.MM.yyyy"); break; } } else if (value != null && value < 1.0d) { } else if (configuration.GraphType.Value == GraphTypeEnum.NameDateStackedColumn) { switch (sort) { case ValGroup.Month: int t = series.Points.AddXY(i, 0.0d); series.Points[t].AxisLabel = date.Date.ToString("MM.yyyy"); while (date.AddDays(1).Day != 1) { date = date.AddDays(1); } break; case ValGroup.Day: t = series.Points.AddXY(date, 0.0d); series.Points[t].AxisLabel = date.Date.ToString("dd.MM.yyyy"); break; case ValGroup.Week: if (date.DayOfWeek == DayOfWeek.Monday) { t = series.Points.AddXY(labelDate, 0.0d); series.Points[t].AxisLabel = labelDate.Date.ToString("dd.MM.yyyy"); } break; } } i++; } }
private static void MinuteSecondSort( GraphData data, GraphConfiguration configuration, ValGroup sortGroup, string name, Series series ) { int i = 0; int point = 0; double? value = null; for (DateTime date = data.FromDate; date <= data.ToDate; date = sortGroup == ValGroup.Minute ? date.AddMinutes(1) : date.AddSeconds(1)) { value = data.GetValueForNameAndDate(name, date, data.Configuration.ItemsConfiguration.Unit, sortGroup); if (value != null && value >= 1.0d) { point = series.Points.AddXY(i, value.Value); series.Points[point].AxisLabel = date.ToString("HH:mm" + (sortGroup == ValGroup.Minute ? "" : ":ss") + " dd.MM.yy"); } else if (value != null && value < 1.0d) { } else if (configuration.GraphType.Value == GraphTypeEnum.NameDateStackedColumn) { point = series.Points.AddXY(i, 0.0d); series.Points[point].AxisLabel = date.ToString("HH:mm" + (sortGroup == ValGroup.Minute ? "" : ":ss") + " dd.MM.yy"); } i++; } }
private static void MonthWeekDaySort( GraphData data, GraphConfiguration configuration, string name, Series series, ValGroup sort ) { int i = 0; int point = 0; double? value = null; for (DateTime date = data.FromDate.Date; date <= data.ToDate.Date; date = date.Date.AddDays(1)) { DateTime labelDate = date; if (sort == ValGroup.Week) { labelDate = labelDate.PreviousMonday(); } value = data.GetValueForNameAndDate(name, date, data.Configuration.ItemsConfiguration.Unit, sort); if (value != null && value >= 1.0d) { point = 0; switch (sort) { case ValGroup.Month: point = series.Points.AddXY(i, value.Value); series.Points[point].AxisLabel = date.Date.ToString("MM.yyyy"); break; case ValGroup.Day: point = series.Points.AddXY(date, value.Value); series.Points[point].AxisLabel = date.Date.ToString("dd.MM.yyyy"); break; case ValGroup.Week: point = series.Points.AddXY(labelDate, value.Value); series.Points[point].AxisLabel = labelDate.Date.ToString("dd.MM.yyyy"); break; } } else if (value != null && value < 1.0d) { } else if (configuration.GraphType.Value == GraphTypeEnum.NameDateStackedColumn) { switch (sort) { case ValGroup.Month: int t = series.Points.AddXY(i, 0.0d); series.Points[t].AxisLabel = date.Date.ToString("MM.yyyy"); while (date.AddDays(1).Day != 1) { date = date.AddDays(1); } break; case ValGroup.Day: t = series.Points.AddXY(date, 0.0d); series.Points[t].AxisLabel = date.Date.ToString("dd.MM.yyyy"); break; case ValGroup.Week: if (date.DayOfWeek == DayOfWeek.Monday) { t = series.Points.AddXY(labelDate, 0.0d); series.Points[t].AxisLabel = labelDate.Date.ToString("dd.MM.yyyy"); } break; } } i++; } }
public double?GetValueForNameAndDate(string name, DateTime date, UnitEnum unit, ValGroup sort) { var dateDict = this._internalDictionary[name]; var IsDateInKeys = dateDict.ContainsKey(date); foreach (var item in dateDict) { if (sort == ValGroup.Day || sort == ValGroup.Month || sort == ValGroup.Week ) { IsDateInKeys = item.Key.Date == date.Date; } if (IsDateInKeys) { break; } } DateTime existDate = DateTime.MinValue; foreach (var i in dateDict.Keys) { existDate = i; switch (sort) { case ValGroup.Month: if (existDate.Date.ToString("yyyy.MM") == date.Date.ToString("yyyy.MM")) { if (IsDateInKeys) { return(FormatNumericValue(unit, dateDict[existDate])); } else { return(-1.0); } } break; case ValGroup.Day: if (existDate.Date.ToString("yyyy.MM.dd") == date.Date.ToString("yyyy.MM.dd")) { if (IsDateInKeys) { return(FormatNumericValue(unit, dateDict[existDate])); } } break; case ValGroup.Week: if (CheckOfWeek(date, existDate)) { if (IsDateInKeys) { return(FormatNumericValue(unit, dateDict[existDate])); } else { return(-1.0); } } break; case ValGroup.Hour: if (existDate.ToString("yyyy.MM.dd HH") == date.ToString("yyyy.MM.dd HH")) { return(FormatNumericValue(unit, dateDict[existDate])); } break; case ValGroup.Minute: if (existDate.ToString("yyyy.MM.dd HH:mm") == date.ToString("yyyy.MM.dd HH:mm")) { return(FormatNumericValue(unit, dateDict[existDate])); } break; case ValGroup.Second: if (existDate.ToString("yyyy.MM.dd HH:mm:ss") == date.ToString("yyyy.MM.dd HH:mm:ss")) { return(FormatNumericValue(unit, dateDict[existDate])); } break; } } return(null); }