67 lines
2.0 KiB
C#
67 lines
2.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
using Speak.Core;
|
|
|
|
namespace Speak.Sites
|
|
{
|
|
class SitesManager
|
|
{
|
|
public static Dictionary<string, ISite> Sites;
|
|
public static Dictionary<IntPtr, ISite> SitesInfo;
|
|
|
|
static SitesManager()
|
|
{
|
|
Sites = new Dictionary<string, ISite>();
|
|
SitesInfo = new Dictionary<IntPtr, ISite>();
|
|
|
|
ISite juick = new JuickSite();
|
|
Sites.Add(juick.Name, juick);
|
|
ISite bnw = new BNWSite();
|
|
Sites.Add(bnw.Name, bnw);
|
|
ISite psto = new PstoSite();
|
|
Sites.Add(psto.Name, psto);
|
|
}
|
|
|
|
public static ISite CreateDefaultSiteInstance()
|
|
{
|
|
ISite site = new PstoSite();
|
|
site.AdditionalContacts = new string[0];
|
|
return site;
|
|
}
|
|
|
|
public static ISite GetContactSite(IntPtr hContact)
|
|
{
|
|
if (SitesInfo.ContainsKey(hContact))
|
|
return SitesInfo[hContact];
|
|
|
|
return null;
|
|
}
|
|
|
|
public static ISite GetContactSite(string UID, bool searchInAdditional)
|
|
{
|
|
for (int i = 0, iCount = Settings.Instance.Sites.Length; i < iCount; i++)
|
|
{
|
|
if (UID.Equals(Settings.Instance.Sites[i].MainContact, StringComparison.InvariantCultureIgnoreCase))
|
|
{
|
|
return Settings.Instance.Sites[i];
|
|
}
|
|
|
|
if (!searchInAdditional)
|
|
continue;
|
|
|
|
|
|
for (int j = 0, jCount = Settings.Instance.Sites[i].AdditionalContacts.Length; j < jCount; j++)
|
|
{
|
|
if (UID.Equals(Settings.Instance.Sites[i].AdditionalContacts[j], StringComparison.InvariantCultureIgnoreCase))
|
|
{
|
|
return Settings.Instance.Sites[i];
|
|
}
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
}
|
|
}
|