/// <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); }
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); } }
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); }
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); }
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); } }
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); } }