Exemplo n.º 1
0
        public List <NovellGroupWiseContact> GetContacts(String bookId)
        {
            String cont;
            String email;
            String name;
            String str;
            String uuid;

            WebReference.AddressBookItem       item;
            WebReference.Contact               contact;
            WebReference.createCursorRequest   creq = new WebReference.createCursorRequest();
            WebReference.createCursorResponse  cresp;
            WebReference.destroyCursorRequest  dreq = new WebReference.destroyCursorRequest();
            WebReference.destroyCursorResponse dres;
            WebReference.readCursorRequest     rreq = new WebReference.readCursorRequest();
            WebReference.readCursorResponse    rresp;
            cont = bookId;
            List <NovellGroupWiseContact> contacts = new List <NovellGroupWiseContact>();

            creq.container = cont;
            cresp          = ws.createCursorRequest(creq);
            if (0 != cresp.status.code)
            {
                throw new NovellGroupWiseException("Cannot connect to Novell Group Wise AddressBookCollection");
            }
            for (;;)
            {
                rreq.container = cont;
                rreq.count     = 100;
                rreq.cursor    = cresp.cursor;
                try
                {
                    rresp = ws.readCursorRequest(rreq);
                }
                catch (InvalidOperationException ex)
                {
                    System.Console.WriteLine(ex);
                    continue;
                }
                if (0 != rresp.status.code)
                {
                    break;
                }
                for (int i = 0; null != rresp.items && null != rresp.items.item && i < rresp.items.item.Length; i++)
                {
                    NovellGroupWiseContact novellContact = new NovellGroupWiseContact();
                    item = (WebReference.AddressBookItem)rresp.items.item[i];
                    name = item.name;
                    novellContact.Name = item.name;
                    email = null;
                    uuid  = item.uuid;
                    novellContact.UUId = item.uuid;
                    if (item is WebReference.Contact)
                    {
                        contact            = (WebReference.Contact)item;
                        str                = "C";
                        novellContact.TYpe = "Contact";
                        if (null != contact.emailList && null != contact.emailList.primary)
                        {
                            novellContact.Email = contact.emailList.primary;
                        }
                        if (null == name || 0 == name.Length)
                        {
                            if (null != contact.fullName.firstName)
                            {
                                novellContact.FirstName = contact.fullName.firstName;
                                novellContact.Name      = contact.fullName.firstName;

                                if (null != contact.fullName.lastName)
                                {
                                    novellContact.Name    += " ";
                                    novellContact.Name    += contact.fullName.lastName;
                                    novellContact.LastNAme = contact.fullName.lastName;
                                }
                            }
                            else if (null != contact.fullName.lastName)
                            {
                                novellContact.Name     = contact.fullName.lastName;
                                novellContact.LastNAme = contact.fullName.lastName;
                            }
                            else
                            {
                                novellContact.Name     = contact.fullName.displayName;
                                novellContact.LastNAme = contact.fullName.displayName;
                            }
                        }
                    }
                    else if (item is WebReference.Resource)
                    {
                        novellContact.TYpe  = "Resource";
                        novellContact.Email = ((WebReference.Resource)item).email;
                    }
                    else if (item is WebReference.Group)
                    {
                        novellContact.TYpe = "Group";
                    }
                    else if (item is WebReference.Organization)
                    {
                        novellContact.TYpe  = "Organization";
                        novellContact.Email = ((WebReference.Organization)item).website;
                    }
                    else
                    {
                        str = "U";
                        novellContact.TYpe = "Unknown";
                    }
                    contacts.Add(novellContact);
                }
                if (null == rresp.items || null == rresp.items.item || 100 != rresp.items.item.Length)
                {
                    break;
                }
            }
            dreq.container = cont;
            dreq.cursor    = cresp.cursor;
            dres           = ws.destroyCursorRequest(dreq);
            return(contacts);
        }