33 lines
1.3 KiB
C#
33 lines
1.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace BlubbFish.Utils.IoT.Connector {
|
|
public abstract class AUserBackend {
|
|
protected Dictionary<String, String> settings;
|
|
|
|
public abstract event TelegramMessage MessageIncomming;
|
|
public abstract event TelegramMessage MessageSending;
|
|
public delegate void TelegramMessage(Object sender, UserMessageEventArgs e);
|
|
|
|
public AUserBackend(Dictionary<String, String> settings) {
|
|
this.settings = settings;
|
|
}
|
|
|
|
public static AUserBackend GetInstance(Dictionary<String, String> settings) {
|
|
String object_sensor = "BlubbFish.Utils.IoT.Connector.User." + Char.ToUpper(settings["type"][0]) + settings["type"].Substring(1).ToLower()+", "+ "ConnectorUser" + Char.ToUpper(settings["type"][0]) + settings["type"].Substring(1).ToLower();
|
|
Type t = null;
|
|
try {
|
|
t = Type.GetType(object_sensor, true);
|
|
} catch (TypeLoadException) {
|
|
throw new ArgumentException("settings.ini: " + settings["type"] + " is not a UserBackend");
|
|
}
|
|
return (AUserBackend)t.GetConstructor(new Type[] { typeof(Dictionary<String, String>) }).Invoke(new Object[] { settings });
|
|
}
|
|
|
|
public abstract void Send(String message);
|
|
public abstract void Send(String message, String[] buttons);
|
|
|
|
public abstract void Dispose();
|
|
}
|
|
}
|