private ModelData[] createDtosForMap(WorkflowObject workflowObject, ClarifyGenericMapEntry genericMap, IEnumerable <ClarifyDataRow> records)
        {
            var rows = new List <ModelData>();

            foreach (var record in records)
            {
                var row = new ModelData {
                    Name = genericMap.Model.ModelName, Entity = genericMap.Entity
                };

                populateDTOForGenericRecord(genericMap, record, row);

                genericMap.Tags.Each(_ => row.AddTag(_));

                var cancellationPolicies = genericMap
                                           .Transforms
                                           .OfType <ConfiguredCancellationPolicy>()
                                           .ToList();

                var shouldAdd = !cancellationPolicies.Any() ||
                                (cancellationPolicies.Any() && cancellationPolicies.All(_ => !(bool)_.Execute(row, _services)));

                if (shouldAdd)
                {
                    var actCode = row.Get <int>("type");
                    row["activityName"] = _listCache.GetLocalizedTitleByRank("Activity Name", actCode);
                    row["isChild"]      = workflowObject.IsChild;
                    row["entity"]       = workflowObject.Type;
                    rows.Add(row);
                }
            }

            return(rows.ToArray());
        }
        private string formatMessage(string message, ModelData data)
        {
            var log = new StringBuilder();

            var from   = data.Get <string>("sender");
            var to     = data.Get <string>("recipient");
            var cclist = "";

            if (data.Has("ccList"))
            {
                cclist = data.Get <string>("ccList");
                if (cclist != null)
                {
                    cclist = cclist.Trim();
                }
            }

            var subject = data.Get <string>("subject") ?? "";
            var isoDate = data.Get <DateTime>("timestamp").ToString("s", CultureInfo.InvariantCulture);

            log.Append(HistoryParsers.BEGIN_EMAIL_LOG_HEADER);

            log.AppendLine("{0}: {1}{2}".ToFormat(HistoryBuilderTokens.LOG_EMAIL_DATE, HistoryParsers.BEGIN_ISODATE_HEADER, isoDate));
            const string headerFormat = "{0}: {1}";

            log.AppendLine(headerFormat.ToFormat(HistoryBuilderTokens.LOG_EMAIL_FROM, from));
            log.AppendLine(headerFormat.ToFormat(HistoryBuilderTokens.LOG_EMAIL_TO, to));
            if (cclist.IsNotEmpty())
            {
                log.AppendLine(headerFormat.ToFormat(HistoryBuilderTokens.LOG_EMAIL_CC, cclist));
            }
            if (subject.IsNotEmpty())
            {
                log.AppendLine(headerFormat.ToFormat(HistoryBuilderTokens.LOG_EMAIL_SUBJECT, subject));
            }

            log.Append(HistoryParsers.END_EMAIL_LOG_HEADER);

            log.AppendLine(message);

            return(log.ToString());
        }
        public override object Execute(ModelData data, IServiceLocator services)
        {
            var actCode = data.Get <int>("type");

            return(actCode == _actCode && (bool)base.Execute(data, services));
        }