private void InitColumnMetas(DateTime selectedDate, int tablePeriod) { columnMetas1 = new List <ColumnMeta>(); columnMetas2 = new List <ColumnMeta>(); allColumnMetas = new List <ColumnMeta>(); if (tablePeriod <= 0) { tablePeriod = TableOptions.DefaultPeriod; } DateTime utcSelectedDate = userContext.ConvertTimeToUtc(selectedDate); DateTime utcPrevDate = userContext.ConvertTimeToUtc(selectedDate.AddDays(-1)); DateTime utcNextDate = userContext.ConvertTimeToUtc(selectedDate.AddDays(1)); void AddColumnMetas(List <ColumnMeta> columnMetas, DateTime utcStartDate, DateTime utcEndDate) { DateTime curDT = utcStartDate; while (curDT < utcEndDate) { DateTime dt = userContext.ConvertTimeFromUtc(curDT); columnMetas.Add(new ColumnMeta { UtcTime = curDT.ToString(WebUtils.JsDateTimeFormat), ShortDate = dt.ToString("m", Locale.Culture), ShortTime = dt.ToString("t", Locale.Culture), }); curDT = curDT.AddMinutes(tablePeriod); } } AddColumnMetas(columnMetas1, utcPrevDate, utcSelectedDate); AddColumnMetas(columnMetas2, utcSelectedDate, utcNextDate); allColumnMetas.AddRange(columnMetas1); allColumnMetas.AddRange(columnMetas2); }
/// <summary> /// Converts the specified timestamp to UTC depending on its kind. /// </summary> private DateTime ConvertTimeToUtc(DateTime timestamp) { return(timestamp.Kind == DateTimeKind.Utc ? timestamp : userContext.ConvertTimeToUtc(timestamp)); }