using System;
using FACSys.AFM;

namespace FACSysAFMSampleCodes
{
/// <summary>
/// The FaxCoverPages collection object contains zero or more FaxCoverPage objects and identifies the available cover pages. Implements IFaxCoverPages from FACSys.AFM, IDisposable and IEnumerable from .Net Framework SDK. It uses an ArrayList to host FaxCoverPage objects.
/// </summary>
public class CoverPageSampleCode1 : ISampleCode
{
private FaxSession m_Session;
public CoverPageSampleCode1()
{
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 cover page collection
IFaxCoverPages pages = m_Session.CoverPages;

//Print out user collection's properties
Console.WriteLine("CoverPage Collection Parent: " + pages.Parent.ToString());
Console.WriteLine("CoverPage Collection Count: " + pages.Count.ToString());
Console.WriteLine("CoverPage Collection Class: " + ((FaxMsg_Object)pages.Class).ToString());

//Print out all users' properties
foreach (IFaxCoverPage page in pages)
{
DisplayPageProperties(page);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
private void DisplayPageProperties(IFaxCoverPage page)
{
Console.WriteLine("=======FaxCoverPage=======");

//Property FaxCoverPage.Class
Console.WriteLine("FaxCoverPage.Class: " + ((FaxMsg_Object)page.Class).ToString());
//Property FaxCoverPage.Created
Console.WriteLine("FaxCoverPage.Created: " + page.Created.ToString());
//Property FaxCoverPage.FileName
Console.WriteLine("FaxCoverPage.FileName: " + page.FileName.ToString());
//Property FaxCoverPage.Index
Console.WriteLine("FaxCoverPage.Index: " + page.Index.ToString());
//Property FaxCoverPage.IsDefault
Console.WriteLine("FaxCoverPage.IsDefault: " + page.IsDefault.ToString());
//Property FaxCoverPage.IsSystemDefault
Console.WriteLine("FaxCoverPage.IsSystemDefault: " + page.IsSystemDefault.ToString());
//Property FaxCoverPage.Modified
Console.WriteLine("FaxCoverPage.Modified: " + page.Modified.ToString());
//Property FaxCoverPage.Shared
Console.WriteLine("FaxCoverPage.Shared: " + page.Shared.ToString());
//Property FaxCoverPage.Title
Console.WriteLine("FaxCoverPage.Title: " + page.Title.ToString());
//Property FaxCoverPage.Parent
Console.WriteLine("FaxCoverPage.Parent: " + page.Parent.ToString());
//Property FaxCoverPage.Session
Console.WriteLine("FaxCoverPage.Session: " + page.Session.ToString());

}
#endregion

#region IDisposable Members

public void Dispose()
{
if (m_Session != null)
m_Session.Logoff();
}

#endregion

~CoverPageSampleCode1()
{
Dispose();
}
}
}