public static IEnumerable <TenderingCriterionResponse> CreateResponses(QualificationApplicationResponse response) { foreach (var property in response.TenderingCriteria.SelectMany(c => c.DescendantProperties().Where(p => p.TypeCode.Equals(CriterionElementType.Question)))) { var isPeriod = property.ValueDataTypeCode.Equals(ResponseDataTypeCode.Period); var isEvidence = property.ValueDataTypeCode.Equals(ResponseDataTypeCode.EvidenceIdentifier); var isResponseValue = !(isPeriod || isEvidence); yield return(new TenderingCriterionResponse() { ID = EuComGrowId.Random(), ValidatedCriterionPropertyID = property.ID, EvidenceSupplied = isEvidence ? new EvidenceSupplied() { ID = response.Evidences[0].ID } : null, ApplicablePeriod = isPeriod ? new Period() { StartDate = new DateTime(2020, 1, 1), EndDate = new DateTime(2020, 12, 31) } : null, ResponseValue = isResponseValue ? new[] { CreateResponseValue(property) } : new ResponseValue[0] }); } }
public static QualificationApplicationResponse ParseQualificationApplicationResponse(this XElement root) { var response = new QualificationApplicationResponse() { UBLVersionID = root.Cbc("UBLVersionID").ParseIdentifier(), CustomizationID = root.Cbc("CustomizationID").ParseIdentifier(), ProfileID = root.Cbc("ProfileID").ParseIdentifier(), ID = root.Cbc("ID").ParseIdentifier(), CopyIndicator = root.Cbc("CopyIndicator").ParseBool(), UUID = root.Cbc("UUID").ParseIdentifier(), ContractFolderID = root.Cbc("ContractFolderID").ParseIdentifier(), IssueDate = root.Cbc("IssueDate").ParseDate(), IssueTime = root.Cbc("IssueTime").ParseTime(), ProcedureCode = root.Cbc("ProcedureCode").ParseCode(), QualificationApplicationTypeCode = root.Cbc("QualificationApplicationTypeCode").ParseCode(), EconomicOperatorGroupName = root.Cbc("EconomicOperatorGroupName").ParseCode(), VersionID = root.Cbc("VersionID").ParseIdentifier(), ContractingParty = root.Cac("ContractingParty").ParseContractingParty(), EconomicOperatorParty = root.Cac("EconomicOperatorParty").ParseEconomicOperatorParty(), ProcurementProject = root.Cac("ProcurementProject").ParseProcurementProject(), ProcurementProjectLots = root.Cacs("ProcurementProjectLot").Select(ParseProcurementProjectLot).ToArray(), TenderingCriteria = root.Cacs("TenderingCriterion").Select(ParseTenderingCriterion).ToArray(), TenderingCriterionResponses = root.Cacs("TenderingCriterionResponse").Select(ParseTenderingCriterionResponse).ToArray(), Evidences = root.Cacs("Evidence").Select(ParseEvidence).ToArray(), AdditionalDocumentReferences = root.Cacs("AdditionalDocumentReference").Select(ParseAdditionalDocumentReference).ToArray() }; return(response); }