예제 #1
0
        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)));
            }
        }