void RefreshContactMethodsModalList(DirectoryContact contact) { TriList.SetString(UIStringJoin.MeetingsOrContactMethodListIcon, "Users"); TriList.SetString(UIStringJoin.MeetingsOrContactMethodListTitleText, "Contact Methods"); ushort i = 0; foreach (var c in contact.ContactMethods) { i++; Parent.MeetingOrContactMethodModalSrl.StringInputSig(i, 1).StringValue = c.Device.ToString(); Parent.MeetingOrContactMethodModalSrl.StringInputSig(i, 2).StringValue = c.CallType.ToString(); Parent.MeetingOrContactMethodModalSrl.StringInputSig(i, 3).StringValue = c.Number; Parent.MeetingOrContactMethodModalSrl.StringInputSig(i, 4).StringValue = ""; Parent.MeetingOrContactMethodModalSrl.StringInputSig(i, 5).StringValue = "Connect"; Parent.MeetingOrContactMethodModalSrl.BoolInputSig(i, 2).BoolValue = true; var cc = c; // to maintian lambda scope Parent.MeetingOrContactMethodModalSrl.GetBoolFeedbackSig(i, 1).SetSigFalseAction(() => { Parent.PopupInterlock.Hide(); var codec = Codec as VideoCodecBase; if (codec != null) { codec.Dial(cc.Number); } }); } Parent.MeetingOrContactMethodModalSrl.Count = i; }
/// <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); }
/// <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); }