public XDocument Serialize()
 {
     return(new XDocument(new XElement(EspdNames.Qarp + nameof(QualificationApplicationResponse),
                                       new XAttribute(XNamespace.Xmlns + "cbc", UblNames.Cbc),
                                       new XAttribute(XNamespace.Xmlns + "cac", UblNames.Cac),
                                       UBLVersionID.Serialize(nameof(UBLVersionID)),
                                       CustomizationID.Serialize(nameof(CustomizationID)),
                                       ProfileID.Serialize(nameof(ProfileID)),
                                       ID?.Serialize(nameof(ID)),
                                       CopyIndicator.Serialize(nameof(CopyIndicator)),
                                       UUID.Serialize(nameof(UUID)),
                                       ContractFolderID.Serialize(nameof(ContractFolderID)),
                                       IssueDate.Serialize(nameof(IssueDate)),
                                       IssueTime.Serialize(nameof(IssueTime)),
                                       EconomicOperatorGroupName.Serialize(nameof(EconomicOperatorGroupName)),
                                       VersionID.Serialize(nameof(VersionID)),
                                       PreviousVersionID.Serialize(nameof(PreviousVersionID)),
                                       ProcedureCode.Serialize(nameof(ProcedureCode)),
                                       QualificationApplicationTypeCode.Serialize(nameof(QualificationApplicationTypeCode)),
                                       WeightScoringMethodologyNote.Serialize(nameof(WeightScoringMethodologyNote)),
                                       WeightingTypeCode.Serialize(nameof(WeightingTypeCode)),
                                       ContractingParty?.Serialize(),
                                       EconomicOperatorParty?.Serialize(nameof(EconomicOperatorParty)),
                                       ProcurementProject?.Serialize(),
                                       ProcurementProjectLots?.Select(lot => lot.Serialize()),
                                       TenderingCriteria?.Select(c => c.Serialize()),
                                       TenderingCriterionResponses?.Select(r => r.Serialize()),
                                       AdditionalDocumentReferences?.Select(d => d.Serialize()),
                                       Evidences?.Select(e => e.Serialize())
                                       )));
 }
        public static EconomicOperatorParty ParseEconomicOperatorParty(this XElement party)
        {
            if (party == null)
            {
                return(null);
            }

            var eoParty = new EconomicOperatorParty()
            {
                Party = party.Cac("Party").ParseParty(),
                EconomicOperatorRole = party.Cac("EconomicOperatorRole").ParseEconomicOperatorRole(),
                QualifyingParty      = party.Cac("QualifyingParty").ParseQualifyingParty()
            };

            return(eoParty);
        }
Пример #3
0
        public QualificationApplicationResponse CreateEspd2_1_1ExtendedResponse(QualificationApplicationRequest request, EconomicOperatorParty economicOperator, IdentifierType identifier, Guid uuid, string espdReferenceUrl)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }
            if (identifier == null)
            {
                throw new ArgumentNullException(nameof(identifier));
            }

            var documentReferences = request.AdditionalDocumentReferences?.ToArray() ?? new AdditionalDocumentReference[0];
            var response           = new QualificationApplicationResponse()
            {
                ID   = identifier,
                UUID = new EuComGrowId(uuid),
                QualificationApplicationTypeCode = request.QualificationApplicationTypeCode,
                ContractFolderID             = request.ContractFolderID,
                IssueDate                    = DateTime.UtcNow.Date,
                IssueTime                    = DateTime.UtcNow,
                ContractingParty             = request.ContractingParty,
                EconomicOperatorParty        = economicOperator,
                ProcurementProject           = request.ProcurementProject,
                ProcurementProjectLots       = request.ProcurementProjectLots,
                WeightingTypeCode            = request.WeightingTypeCode,
                WeightScoringMethodologyNote = request.WeightScoringMethodologyNote,
                ProcedureCode                = request.ProcedureCode,
                AdditionalDocumentReferences = documentReferences.Union(new [] { MapReferenceToEspdRequest(request, espdReferenceUrl) }).ToArray(),
                PreviousVersionID            = request.PreviousVersionID,
                EconomicOperatorGroupName    = new CodeType(),
                CopyIndicator                = false,
                UBLVersionID                 = request.UBLVersionID,
                VersionID                    = request.VersionID,
                Evidences                    = new Evidence[0],
                TenderingCriteria            = request.TenderingCriteria,
                TenderingCriterionResponses  = new TenderingCriterionResponse[] {},
            };

            var procurementHasLots = request.IsProcurementDividedIntoLots;

            if (!procurementHasLots)
            {
                PrePopulateNoLotResponses(response);
            }

            return(response);
        }