using System;
using FACSys.AFM;
namespace FACSysAFMSampleCodes
{
/// <summary>
/// The FaxPhonebookContainers collection object contains one or more
FaxPhonebookContainer objects representing sub-containers of the current
FaxPhonebookContainer. Implements IFaxPhonebookContainers from FACSys.AFM,
IDisposable and IEnumerable from .Net Framework SDK. It uses an ArrayList to
host FaxPhonebookContainer objects.
/// </summary>
public class PhonebookContainerSampleCode1 : ISampleCode
{
private FaxSession m_Session;
public PhonebookContainerSampleCode1()
{
m_Session = new FaxSession();
m_Session.NetworkProtocol = 2;
m_Session.Logon("10.8.88.144", "Admin","password");
}
#region ISampleCode Members
public void Run()
{
try
{
//Check if the session exist.
if (m_Session == null)
throw new Exception("Session is null.");
//Get the phonebook collection
IFaxPhonebooks phonebooks = m_Session.Phonebooks;
//Print out user collection's properties
Console.WriteLine("Phonebook Collection Parent: " + phonebooks.Parent.ToString());
Console.WriteLine("Phonebook Collection Count: " + phonebooks.Count.ToString());
Console.WriteLine("Phonebook Collection Class: " + ((FaxMsg_Object)phonebooks.Class).ToString());
if (phonebooks.Count > 0)
{
IFaxPhonebook phonebook = phonebooks[0];
Console.WriteLine("The first phonebook struct...");
Console.WriteLine("\n" + phonebook.Name);
int level = 0;
DisplayContainers(phonebook.Containers, level);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
private void DisplayContainers(IFaxPhonebookContainers containers, int level)
{
foreach (IFaxPhonebookContainer container in containers)
{
Console.WriteLine("".PadLeft(level, '-') + container.Name + "(Container Id: " +
container.ContainerId.ToString() + ")");
Console.WriteLine("".PadLeft(level, ' ') + "Descriptin: " +
container.Description);
Console.WriteLine("".PadLeft(level, ' ') + "Index: " + container.Index.ToString());
DisplayContainers(container.Containers, level + 1);
}
}
private void DisplayPhonebookProperties(IFaxPhonebook phonebook)
{
Console.WriteLine("=======FaxPhonebook=======");
//Display Property FaxPhonebook.Class
Console.WriteLine("FaxPhonebook.Class: " + ((FaxMsg_Object)phonebook.Class).ToString());
//Display Property FaxPhonebook.ConnectionId
Console.WriteLine("FaxPhonebook.ConnectionId: " +
phonebook.ConnectionId.ToString());
//Display Property FaxPhonebook.Created
Console.WriteLine("FaxPhonebook.Created: " + phonebook.Created.ToString());
//Display Property FaxPhonebook.FileName
Console.WriteLine("FaxPhonebook.FileName: " + phonebook.FileName.ToString());
//Display Property FaxPhonebook.Index
Console.WriteLine("FaxPhonebook.Index: " + phonebook.Index.ToString());
//Display Property FaxPhonebook.IsOpen
Console.WriteLine("FaxPhonebook.IsOpen: " + phonebook.IsOpen.ToString());
//Display Property FaxPhonebook.IsPendingDelete
Console.WriteLine("FaxPhonebook.IsPendingDelete: " +
phonebook.IsPendingDelete.ToString());
//Display Property FaxPhonebook.Modified
Console.WriteLine("FaxPhonebook.Modified: " + phonebook.Modified.ToString());
//Display Property FaxPhonebook.Name
Console.WriteLine("FaxPhonebook.Name: " + phonebook.Name.ToString());
//Display Property FaxPhonebook.Parent
Console.WriteLine("FaxPhonebook.Parent: " + phonebook.Parent.ToString());
//Display Property FaxPhonebook.Session
Console.WriteLine("FaxPhonebook.Session: " + phonebook.Session.ToString());
//Display Property FaxPhonebook.Type
Console.WriteLine("FaxPhonebook.Type: " + ((FaxMsg_PhonebookType)phonebook.Type).ToString());
}
#endregion
#region IDisposable Members
public void Dispose()
{
if (m_Session != null)
m_Session.Logoff();
}
#endregion
~PhonebookContainerSampleCode1()
{
Dispose();
}
}
}