Example #1
0
 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);
        }