Ejemplo n.º 1
0
        public void TestAllFieldsOneMember()
        {
            string xml = XML_START + XML_ALL_FIELDS_DEFINED + XML_END;

            Stream s = GenerateStreamFromString(xml);
            ConventusAddressWrapper caw    = new ConventusAddressWrapper();
            List <ConventusMedlem>  result = null;

            try
            {
                result = caw.getMembersFromXml(s);
            }
            catch (Exception e)
            {
                throw new AssertFailedException("Exception should not occur", e);
            }

            CollectionAssert.AllItemsAreNotNull(result);
            CollectionAssert.AllItemsAreUnique(result);
            Assert.IsTrue(result.Count == 1, "Only one result expected");

            ConventusMedlem m = result[0];

            Assert.AreEqual("Gammelgang 10", m.Adresse1);
            Assert.AreEqual("Testhus", m.Adresse2);
            Assert.AreEqual(137, m.AltID);
            Assert.AreEqual("*****@*****.**", m.Email, "Email is wrong");
            Assert.AreEqual(new DateTime(1974, 2, 14), m.Foedselsdato);
            Assert.AreEqual(1002282, m.Id);
            Assert.AreEqual(ConventusMedlem.KoenTypes.Mand, m.Koen);
            Assert.AreEqual("22720203", m.Mobilnummer);
            Assert.AreEqual("Svend Frydenlund", m.Navn);
            Assert.IsTrue(m.OffentligAdresse, "offentlig adresse");
            Assert.IsTrue(m.OffentligEmail, "Offentlig email");
            Assert.IsTrue(m.OffentligTelefon, "Offentlig telefon");
            Assert.IsTrue(m.OfffentligNavn, "Offentlig navn");
            Assert.AreEqual("2300", m.Postnummer);
            Assert.AreEqual("København S", m.PostnummerBy);
            Assert.IsFalse(m.Slettet, "Slettet");
            Assert.AreEqual("35373691", m.Telefonnummer);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Create a member object for a single member node in the xml-structure
        /// </summary>
        /// <param name="member">An Xml node representing a single member</param>
        /// <returns>An object with the parameters set. Empty or undefinded values are set to null for integers and to empty string for strings, booleans are set to <code>false</code>.</returns>
        private ConventusMedlem createMember(XmlNode member)
        {
            // TODO 2: Robustness: Catch and log exceptions on parsing of single members

            // Create new ConventusMedlem object
            ConventusMedlem cm = new ConventusMedlem();

            // Conventus is expected to return an int value (non null) for all members
            cm.Id = int.Parse(member[ID].InnerText);


            // Adresse1 is not mandatory but logged as a warning if not present
            if (member[ADRESSE1] != null)
            {
                cm.Adresse1 = setValueOrEmpty(member[ADRESSE1].InnerText);
            }
            else
            {
                logger.Warn("MemberID " + cm.Id + " has no Adresse1 defined");
            }


            if (member[ADRESSE2] != null)
            {
                cm.Adresse2 = setValueOrEmpty(member[ADRESSE2].InnerText);
            }

            if (member[ALT_ID] != null)
            {
                cm.AltID = setValueOrNull(member[ALT_ID].InnerText);
            }

            // Email is not mandatory but logged as a warning if not present
            if (member[EMAIL] != null)
            {
                cm.Email = setValueOrEmptyWith0AsEmpty(member[EMAIL].InnerText);
            }
            else
            {
                logger.Warn("MemberID " + cm.Id + " has no email defined");
            }

            if (member[BIRTH] != null)
            {
                cm.Foedselsdato = setDateValueOrNull(member[BIRTH].InnerText);
            }
            else
            {
                cm.Foedselsdato = null;
                logger.Warn("MemberID " + cm.Id + " has no birth defined");
            }


            // Set the sex of the member
            if (member[KOEN] != null)
            {
                string sexString = member[KOEN].InnerText;
                switch (sexString)
                {
                case "kvinde":
                    cm.Koen = ConventusMedlem.KoenTypes.Kvinde;
                    break;

                case "mand":
                    cm.Koen = ConventusMedlem.KoenTypes.Mand;
                    break;

                default:
                    cm.Koen = ConventusMedlem.KoenTypes.Ukendt;
                    logger.Warn("MemberID " + cm.Id + " has no sex defined. It has been set to Unknown");
                    break;
                }
            }
            else
            {
                cm.Koen = ConventusMedlem.KoenTypes.Ukendt;
                logger.Warn("MemberID " + cm.Id + " has no sex defined. It has been set to Unknown");
            }

            // Mobil is not mandatory but a warning is logged later on if no phone number is present for the member.
            if (member[MOBIL] != null)
            {
                cm.Mobilnummer = setValueOrEmptyWith0AsEmpty(member[MOBIL].InnerText);
            }


            if (member[NAVN] != null)
            {
                cm.Navn = setValueOrEmpty(member[NAVN].InnerText);
            }
            else
            {
                logger.Warn("MemberID " + cm.Id + " has no name defined. It has been set to empty");
            }

            cm.OffentligAdresse = isPublicAdresss(member);

            if (member[OFF_EMAIL] != null)
            {
                cm.OffentligEmail = setValueOrFalse(member[OFF_EMAIL].InnerText);
            }
            else
            {
                cm.OffentligEmail = false;
            }

            if (member[OFF_MOBIL] != null)
            {
                cm.OffentligMobil = setValueOrFalse(member[OFF_MOBIL].InnerText);
            }
            else
            {
                cm.OffentligMobil = false;
            }


            if (member[OFF_NAVN] != null)
            {
                cm.OfffentligNavn = setValueOrFalse(member[OFF_NAVN].InnerText);
            }
            else
            {
                cm.OffentligMobil = false;
            }

            if (member[OFF_TLF] != null)
            {
                cm.OffentligTelefon = setValueOrFalse(member[OFF_TLF].InnerText);
            }
            else
            {
                cm.OffentligTelefon = false;
            }

            if (member[POSTNR] != null)
            {
                cm.Postnummer = setEmptyIfzero(member[POSTNR].InnerText);
            }
            else
            {
                cm.Postnummer = string.Empty;
            }

            if (member[POSTNRBY] != null)
            {
                cm.PostnummerBy = setValueOrEmpty(member[POSTNRBY].InnerText);
            }
            else
            {
                cm.PostnummerBy = string.Empty;
            }

            if (member[SLETTET] != null)
            {
                cm.Slettet = setValueOrFalse(member[SLETTET].InnerText);
            }
            else
            {
                cm.Slettet = false;
                logger.Error("MemberID " + cm.Id + " has no Slettet defined. It has been set to not slettet");
            }

            if (member[TLF] != null)
            {
                cm.Telefonnummer = setValueOrEmptyWith0AsEmpty(member[TLF].InnerText);
            }

            // We should have at least one phone number for the member. If not log a warning
            if (string.IsNullOrEmpty(cm.Telefonnummer) && string.IsNullOrEmpty(cm.Mobilnummer))
            {
                logger.Warn("MemberID " + cm.Id + " has neither phone or mobile defined.");
            }

            return(cm);
        }