コード例 #1
0
        /// <summary>
        /// This method is only used by unit tests
        /// </summary>
        /// <param name="batchFileText"></param>
        /// <returns></returns>
        public static IList <IndividualResponseType> ParseBatch(LineWrapper[] dataLines, Dictionary <string, Type> typeMap)
        {
            var startRecord = dataLines.First().ToWrapper(typeMap) as StartRecordType;
            var endRecord   = dataLines.Last().ToWrapper(typeMap) as EndRecordType;

            dataLines = dataLines.Skip(1).Take(dataLines.Length - 2).ToArray();

            var groupedWrapers = dataLines
                                 .GroupBy(w => w.PNR)
                                 .ToList();

            var ret = groupedWrapers
                      .Select(individualWrappersGrouping =>
            {
                var individual      = new IndividualResponseType();
                var individualLines = individualWrappersGrouping
                                      .Select(il => il.ToPersonRecordWrapper(Constants.DataObjectMap, individual) as Wrapper)
                                      .Where(w => w != null)
                                      .ToList();
                individual.FillPropertiesFromWrappers(individualLines, startRecord, endRecord);
                return(individual);
            })
                      .ToList();

            return(ret);
        }
コード例 #2
0
ファイル: Extract.cs プロジェクト: magenta-aps/cprbroker
        public static IndividualResponseType ToIndividualResponseType(Extract extract, IQueryable <ExtractItem> extractItems, Dictionary <string, Type> typeMap)
        {
            var individualResponse = new IndividualResponseType();

            var personWrappers = extractItems
                                 .Select(item => Wrapper.Create(item.DataTypeCode, item.Contents, typeMap))
                                 .ToArray();

            // TODO: (Reverse relation) Add reversible relationship support after finding a good indexing solution
            individualResponse.FillPropertiesFromWrappers(personWrappers, extract.StartWrapper, extract.EndWrapper);
            individualResponse.SourceObject = extract.ExtractId;

            return(individualResponse);
        }