protected override SynchronizationEntry MapFromEManager(DataRow row)
        {
            var release       = (string)row[0];
            var applicationId = (string)row[1];
            var id            = (string)row[2];
            var title         = (string)row[3];
            var unid          = (string)row[4];
            var status        = (string)row[5];
            var priority      = ParseNumber((string)row[6]);
            var severity      = (string)row[7];
            var timeStamp     = ParseDominoTimeStamp((string)row[8]);
            var type          = GetProblemReportType((string)row[9]);
            var person        = (string)row[10];

            if ((ApplicationIdFilter != null && !ApplicationIdFilter.Contains(applicationId)) || (ReleaseFilter != null && !ReleaseFilter.Contains(release)))
            {
                return(null);
            }

            if (string.IsNullOrEmpty(id) || id == "0")
            {
                return(null);
            }

            id = type.Substring(0, 1).ToUpperInvariant() + id;

            var properties =
                new Dictionary <string, string>
            {
                { "name", id },
                { "unid", unid },
                { "title", title },
                { "applicationid", applicationId },
                { "release", release },
                { "severity", severity },
                { "priority", !priority.HasValue ? "undefined" : priority.ToString() },
                { "type", type },
            };

            if (!string.IsNullOrEmpty(person))
            {
                properties.Add("CurrentPerson", person);
            }

            var ordinal = !priority.HasValue ? -1 : -priority;

            return(new SynchronizationEntry(id, status, properties)
            {
                Ordinal = ordinal, TimeStamp = timeStamp
            });
        }
        protected override SynchronizationEntry MapFromEManager(DataRow dataRow)
        {
            var release    = (string)dataRow[0];
            var leanStatus = (string)dataRow[1];
            var team       = (string)dataRow[2];
            var id         = (string)dataRow[3];
            var title      = (string)dataRow[4];
            var project    = (string)dataRow[5];
            var unid       = (string)dataRow[6];
            var status     = (string)dataRow[7];
            var ordinal    = ParseNumber((string)dataRow[8]);
            var person     = (string)dataRow[9];
            var timeStamp  = ParseDominoTimeStamp((string)dataRow[10]);

            if ((TeamFilter != null && !TeamFilter.Contains(team)) || (ReleaseFilter != null && !ReleaseFilter.Contains(release)))
            {
                return(null);
            }

            if (string.IsNullOrEmpty(id) || id == "0")
            {
                return(null);
            }

            var properties =
                new Dictionary <string, string>
            {
                { "name", id },
                { "unid", unid },
                { "title", title },
                { "team", team },
                { "release", release },
                { "project", project },
                { "leanstatus", leanStatus },
                { "priority", !ordinal.HasValue ? "undefined" : ordinal.ToString() },
            };

            if (!string.IsNullOrEmpty(person))
            {
                properties.Add("CurrentPerson", person);
            }

            if (!ordinal.HasValue)
            {
                ordinal = _maxOrdinal;
            }

            return(new SynchronizationEntry(id, status, properties)
            {
                Ordinal = ordinal, TimeStamp = timeStamp
            });
        }