コード例 #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
 public bool PutSubscription(PersonIdentifier personIdentifier)
 {
     if (IPartPerCallDataProviderHelper.CanCallOnline(personIdentifier.CprNumber))
     {
         IndividualRequestType  request  = new IndividualRequestType(true, DataType.NoData, decimal.Parse(personIdentifier.CprNumber));
         IndividualResponseType response = this.GetResponse(request);
         return(true);
     }
     else
     {
         return(false);
     }
 }
コード例 #3
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);
        }
コード例 #4
0
        public RegistreringType1 Read(CprBroker.Schemas.PersonIdentifier uuid, LaesInputType input, Func <string, Guid> cpr2uuidFunc, out QualityLevel?ql)
        {
            ql = QualityLevel.Cpr;
            IndividualResponseType response = null;

            response = ExtractManager.GetPerson(uuid.CprNumber);

            if (response != null)
            {
                UuidCache cache = new UuidCache();
                cache.FillCache(response.RelatedPnrs);

                return(response.ToRegistreringType1(cache.GetUuid));
            }
            return(null);
        }
コード例 #5
0
        public RegistreringType1 Read(CprBroker.Schemas.PersonIdentifier uuid, LaesInputType input, Func <string, Guid> cpr2uuidFunc, out QualityLevel?ql)
        {
            ql = QualityLevel.Cpr;

            if (IPartPerCallDataProviderHelper.CanCallOnline(uuid.CprNumber))
            {
                IndividualRequestType  request  = new IndividualRequestType(true, DataType.DefinedByTask, decimal.Parse(uuid.CprNumber));
                IndividualResponseType response = this.GetResponse(request);

                UuidCache cache = new UuidCache();
                cache.FillCache(response.RelatedPnrs);

                return(response.ToRegistreringType1(cpr2uuidFunc));
            }
            else
            {
                return(null);
            }
        }
コード例 #6
0
        public IndividualResponseType GetResponse(IndividualRequestType request)
        {
            string response;
            string error;

            if (Send(request.PNR, request.Contents, out response, out error))
            {
                var ret = new IndividualResponseType()
                {
                    Contents = response
                };
                ret.FillFromFixedLengthString(ret.Data, Constants.DataObjectMap);
                ret.SourceObject = ret.Data;
                return(ret);
            }
            else
            {
                throw new Exception(error);
            }
        }