Esempio n. 1
0
        /// <summary>
        /// Extracts the folders with no ParentFolder and returns them sorted alphabetically
        /// </summary>
        /// <param name="result"></param>
        /// <returns></returns>
        public static List <DirectoryItem> GetRootFoldersFromSearchResult(PhonebookSearchResult result)
        {
            var rootFolders = new List <DirectoryItem>();

            if (result.Folder.Count == 0)
            {
                return(null);
            }
            else if (result.Folder.Count > 0)
            {
                if (Debug.Level > 0)
                {
                    Debug.Console(1, "Phonebook Folders:\n");
                }

                foreach (Folder f in result.Folder)
                {
                    var folder = new DirectoryFolder();

                    folder.Name     = f.Name.Value;
                    folder.FolderId = f.FolderId.Value;

                    if (f.ParentFolderId == null)
                    {
                        rootFolders.Add(folder);
                    }

                    if (Debug.Level > 0)
                    {
                        Debug.Console(1, "+ {0}", folder.Name);
                    }
                }
            }

            rootFolders.OrderBy(f => f.Name);

            return(rootFolders);
        }
Esempio n. 2
0
        /// <summary>
        /// Converts data returned from a cisco codec to the generic Directory format.
        /// </summary>
        /// <param name="result"></param>
        /// <param name="resultFolder"></param>
        /// <returns></returns>
        public static CodecDirectory ConvertCiscoPhonebookToGeneric(PhonebookSearchResult result)
        {
            var directory = new Codec.CodecDirectory();

            var folders = new List <Codec.DirectoryItem>();

            var contacts = new List <Codec.DirectoryItem>();

            try
            {
                if (result.Folder.Count > 0)
                {
                    foreach (Folder f in result.Folder)
                    {
                        var folder = new DirectoryFolder();

                        folder.Name     = f.Name.Value;
                        folder.FolderId = f.FolderId.Value;

                        if (f.ParentFolderId != null)
                        {
                            folder.ParentFolderId = f.ParentFolderId.Value;
                        }

                        folders.Add(folder);
                    }

                    folders.OrderBy(f => f.Name);

                    directory.AddFoldersToDirectory(folders);
                }

                if (result.Contact.Count > 0)
                {
                    foreach (Contact c in result.Contact)
                    {
                        var contact = new DirectoryContact();

                        contact.Name      = c.Name.Value;
                        contact.ContactId = c.ContactId.Value;
                        if (!string.IsNullOrEmpty(c.Title.Value))
                        {
                            contact.Title = c.Title.Value;
                        }

                        if (c.FolderId != null)
                        {
                            contact.FolderId = c.FolderId.Value;
                        }

                        foreach (ContactMethod m in c.ContactMethod)
                        {
                            eContactMethodCallType callType = eContactMethodCallType.Unknown;
                            if (!string.IsNullOrEmpty(m.CallType.Value))
                            {
                                if (m.CallType.Value.ToLower() == "audio")
                                {
                                    callType = eContactMethodCallType.Audio;
                                }
                                else if (m.CallType.Value.ToLower() == "video")
                                {
                                    callType = eContactMethodCallType.Video;
                                }
                            }

                            eContactMethodDevice device = eContactMethodDevice.Unknown;

                            if (!string.IsNullOrEmpty(m.Device.Value))
                            {
                                if (m.Device.Value.ToLower() == "mobile")
                                {
                                    device = eContactMethodDevice.Mobile;
                                }
                                else if (m.Device.Value.ToLower() == "telephone")
                                {
                                    device = eContactMethodDevice.Telephone;
                                }
                                else if (m.Device.Value.ToLower() == "video")
                                {
                                    device = eContactMethodDevice.Video;
                                }
                                else if (m.Device.Value.ToLower() == "other")
                                {
                                    device = eContactMethodDevice.Other;
                                }
                            }

                            contact.ContactMethods.Add(new PepperDash.Essentials.Devices.Common.Codec.ContactMethod()
                            {
                                Number          = m.Number.Value,
                                ContactMethodId = m.ContactMethodId.Value,
                                CallType        = callType,
                                Device          = device
                            });
                        }
                        contacts.Add(contact);
                    }

                    contacts.OrderBy(c => c.Name);

                    directory.AddContactsToDirectory(contacts);
                }
            }
            catch (Exception e)
            {
                Debug.Console(1, "Error converting Cisco Phonebook results to generic: {0}", e);
            }

            return(directory);
        }
Esempio n. 3
0
        /// <summary>
        /// Extracts the contacts with no FolderId and returns them sorted alphabetically
        /// </summary>
        /// <param name="result"></param>
        /// <returns></returns>
        public static List <DirectoryItem> GetRootContactsFromSearchResult(PhonebookSearchResult result)
        {
            var rootContacts = new List <DirectoryItem>();

            if (result.Contact.Count == 0)
            {
                return(null);
            }
            else if (result.Contact.Count > 0)
            {
                if (Debug.Level > 0)
                {
                    Debug.Console(1, "Root Contacts:\n");
                }

                foreach (Contact c in result.Contact)
                {
                    var contact = new DirectoryContact();

                    if (string.IsNullOrEmpty(c.FolderId.Value))
                    {
                        contact.Name      = c.Name.Value;
                        contact.ContactId = c.ContactId.Value;

                        if (!string.IsNullOrEmpty(c.Title.Value))
                        {
                            contact.Title = c.Title.Value;
                        }

                        if (Debug.Level > 0)
                        {
                            Debug.Console(1, "{0}\nContact Methods:", contact.Name);
                        }

                        foreach (ContactMethod m in c.ContactMethod)
                        {
                            var tempContactMethod = new PepperDash.Essentials.Devices.Common.Codec.ContactMethod();

                            eContactMethodCallType callType = eContactMethodCallType.Unknown;
                            if (!string.IsNullOrEmpty(m.CallType.Value))
                            {
                                if (!string.IsNullOrEmpty(m.CallType.Value))
                                {
                                    if (m.CallType.Value.ToLower() == "audio")
                                    {
                                        callType = eContactMethodCallType.Audio;
                                    }
                                    else if (m.CallType.Value.ToLower() == "video")
                                    {
                                        callType = eContactMethodCallType.Video;
                                    }

                                    tempContactMethod.CallType = callType;
                                }
                            }

                            eContactMethodDevice device = eContactMethodDevice.Unknown;
                            if (!string.IsNullOrEmpty(m.Device.Value))
                            {
                                if (m.Device.Value.ToLower() == "mobile")
                                {
                                    device = eContactMethodDevice.Mobile;
                                }
                                else if (m.Device.Value.ToLower() == "telephone")
                                {
                                    device = eContactMethodDevice.Telephone;
                                }
                                else if (m.Device.Value.ToLower() == "video")
                                {
                                    device = eContactMethodDevice.Video;
                                }
                                else if (m.Device.Value.ToLower() == "other")
                                {
                                    device = eContactMethodDevice.Other;
                                }

                                tempContactMethod.Device = device;
                            }

                            if (Debug.Level > 0)
                            {
                                Debug.Console(1, "Number: {0}", m.Number.Value);
                            }

                            tempContactMethod.Number          = m.Number.Value;
                            tempContactMethod.ContactMethodId = m.ContactMethodId.Value;

                            contact.ContactMethods.Add(tempContactMethod);
                        }
                        rootContacts.Add(contact);
                    }
                }
            }

            rootContacts.OrderBy(f => f.Name);

            return(rootContacts);
        }