private IEnumerable <XElement> JointProcurement(ProcurementProjectContract project)
        {
            if (project == null)
            {
                yield break;
            }

            var elements = new List <XElement>();

            if (project.JointProcurement)
            {
                if (project.CoPurchasers == null)
                {
                    throw new HilmaMalformedRequestException(
                              "project.CoPurchasers array must be provided when project.JointProcurement is set to true");
                }

                foreach (var coPurchaser in project.CoPurchasers)
                {
                    yield return(TedHelpers.ADDRS1("ADDRESS_CONTRACTING_BODY_ADDITIONAL",
                                                   new OrganisationContract
                    {
                        Information = coPurchaser
                    },
                                                   new ContactPerson
                    {
                        Email = coPurchaser.Email,
                        Phone = coPurchaser.TelephoneNumber,
                        Name = coPurchaser.ContactPerson
                    }
                                                   ));
                }
            }
        }
        /// <summary>
        /// Section I: Contracting authority
        /// </summary>
        /// <param name="project"></param>
        /// <param name="contactPerson">The contact person</param>
        /// <param name="communicationInformation">I.3 Communication</param>
        /// <returns>CONTRACTING_BODY XElement</returns>
        private XElement ContractingBody(
            ProcurementProjectContract project,
            ContactPerson contactPerson,
            CommunicationInformation communicationInformation
            )
        {
            var organisation = project?.Organisation;

            if (organisation == null)
            {
                return(null);
            }

            return(TedHelpers.Element("CONTRACTING_BODY",
                                      TedHelpers.ADDRS1("ADDRESS_CONTRACTING_BODY", organisation, contactPerson),
                                      JointProcurement(project)
                                      ));
        }
 /// <summary>
 /// Section I: Contracting authority
 /// </summary>
 /// <param name="organisation">The organisation</param>
 /// <param name="contactPerson">The contact person</param>
 /// <param name="communicationInformation">I.3 Communication</param>
 /// <returns>CONTRACTING_BODY XElement</returns>
 private XElement ContractingBody(OrganisationContract organisation, ContactPerson contactPerson, CommunicationInformation communicationInformation)
 {
     return(TedHelpers.Element("CONTRACTING_BODY",
                               TedHelpers.ADDRS1("ADDRESS_CONTRACTING_BODY", organisation, contactPerson)
                               ));
 }