miranda/Speak/Speak/Sites/SitesManager.cs
2013-05-08 21:39:27 +00:00

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;
}
}
}