public LandRegistryResModel BuildResModel(ResponseOCWithSummaryV2_1Type response, string titleNumber = "titleNumber") { var model = new LandRegistryResModel(); if (response.GatewayResponse.Acknowledgement != null) { model.Acknowledgement = GetAcknowledgement(response.GatewayResponse.Acknowledgement.AcknowledgementDetails); model.TitleNumber = titleNumber; } else if (response.GatewayResponse.Rejection != null) { model.Rejection = GetRejection(response.GatewayResponse.Rejection.RejectionResponse); model.TitleNumber = titleNumber; } else { var data = response.GatewayResponse.Results.OCSummaryData; model.Indicators = new List <string>(); try { FillSummaryData(model, data); } catch (Exception ex) { ms_oLog.ErrorFormat("Error parsing lr data for title {0} {1}\n{2}", titleNumber, model.TitleNumber, ex); model.Indicators.Add("Error parsing the data (tell dev)"); } } return(model); }
private void FillSummaryData(LandRegistryResModel model, Q1OCSummaryDataType data) { model.TitleNumber = data.Title.TitleNumber.Value; if (data.Title.CommonholdIndicator != null && data.Title.CommonholdIndicator.Value == false) { model.Indicators.Add(LandRegistryIndicatorText.CommonholdIndicator); } if (data.PricePaidEntry != null && data.PricePaidEntry.EntryDetails != null) { model.PricePaidInfills = GetInfills(data.PricePaidEntry.EntryDetails.Infills); } model.PropertyAddresses = GetAddresses(data.PropertyAddress); model.Proprietorship = new LandRegistryProprietorshipModel { CurrentProprietorshipDate = data.Proprietorship.CurrentProprietorshipDate != null?DateTime.SpecifyKind(data.Proprietorship.CurrentProprietorshipDate.Value, DateTimeKind.Utc) : (DateTime?)null, ProprietorshipParties = new List <ProprietorshipPartyModel>() }; if (data.Proprietorship.Items != null) { for (int i = 0; i < data.Proprietorship.Items.Length; ++i) { model.Proprietorship.ProprietorshipParties.Add(GetProprietorship(data.Proprietorship.Items[i], data.Proprietorship.ItemsElementName[i])); } } model.Restrictions = new List <LandRegistryRestrictionModel>(); if (data.RestrictionDetails != null) { foreach (var restriction in data.RestrictionDetails) { model.Restrictions.Add(GetRestriction(restriction)); } } model.Indicators.AddRange(GetIndicators(data.RegisterEntryIndicators)); model.Charges = new List <LandRegistryChargeModel>(); if (data.Charge != null && data.Charge.Length > 0) { foreach (var charge in data.Charge) { model.Charges.Add(GetCharge(charge)); } } }