private string GetBody(Context context, SiteSettings ss, List <DataRow> dataRows) { var sb = new StringBuilder(); var timeGroups = dataRows .GroupBy(dataRow => dataRow.DateTime(Column).Date) .ToList(); timeGroups.ForEach(timeGroup => { var date = timeGroup.First().DateTime(Column).ToLocal(context: context).Date; switch (Column) { case "CompletionTime": date = date.AddDifferenceOfDates( format: ss.GetColumn( context: context, columnName: "CompletionTime")? .EditorFormat, minus: true); break; } sb.Append("{0} ({1})\n".Params( date.ToString( Displays.Get(context: context, id: "YmdaFormat"), context.CultureInfo()), Relative(context: context, time: date))); timeGroup .OrderBy(dataRow => dataRow.Int("Status")) .ForEach(dataRow => { sb.Append( "\t", ReplacedLine( context: context, ss: ss, dataRow: dataRow)); if (NotSendHyperLink != true) { sb.Append( "\n\t", Locations.ItemEditAbsoluteUri( context: context, id: dataRow.Long(Rds.IdColumn(ss.ReferenceType)))); } sb.Append("\n"); }); sb.Append("\n"); }); if (!timeGroups.Any()) { sb.Append(Displays.NoTargetRecord(context: context), "\r\n"); } return(Body.Contains(BodyPlaceholder) ? Body.Replace(BodyPlaceholder, sb.ToString()) : Body + "\n" + sb.ToString()); }
private static void SetMonth( Context context, Dictionary <string, ControlData> hash, DateTime now, DateTime current, bool recordedTime, int diff) { var timePeriod = new Implem.Libraries.Classes.TimePeriod( Implem.Libraries.Classes.TimePeriod.Types.Month, current, diff); if (!recordedTime || timePeriod.From <= now) { hash.Add( Period(timePeriod), new ControlData(current.ToString("y", context.CultureInfo()) + InRange(timePeriod, now))); } }