Files
qController/qController.Standard/Classes/Settings/QStorage.cs
T
jwetzell 9899a6d33e BIG TCP Overhaul and passcode start
- Switch to Serilog for console logging
- TCPSender is now persistent (let's hope) so can be used with passcode protected workspaces
- UDP connection works with passcodes just can't timeout
- Passcode prompt is automatic for workspaces that are password protected
2020-06-05 23:53:16 -05:00

70 lines
2.0 KiB
C#

using Serilog;
using System.Collections.ObjectModel;
using Acr.Settings;
namespace qController
{
public class QStorage
{
public static ObservableCollection<QInstance> qInstances;
static QStorage(){
qInstances = (ObservableCollection<QInstance>)CrossSettings.Current.GetValue(new ObservableCollection<QInstance>().GetType(), "qInstances", null);
if (qInstances == null)
{
Log.Debug("QSTORAGE - No qInstance exists creating one");
qInstances = new ObservableCollection<QInstance>();
updateStorage();
}
}
public static bool AddInstance(string name, string address){
return AddInstance(new QInstance(name, address));
}
public static bool AddInstance(QInstance q){
if(!Contains(q.name, q.address)){
qInstances.Add(q);
updateStorage();
return true;
}else{
return false;
}
}
public static void RemoveInstance(string name, string address){
foreach (var item in qInstances)
{
if(item.address == address && item.name == name){
RemoveInstance(item);
return;
}
}
}
public static void RemoveInstance(QInstance q){
qInstances.Remove(q);
updateStorage();
}
private static void updateStorage(){
CrossSettings.Current.SetValue("qInstances", qInstances);
}
public static bool Contains(string name, string address){
foreach (var item in qInstances)
{
//Log.Debug("Item name: " + item.name + " Found Name: " + name);
if (item.address == address)
{
return true;
}
}
return false;
}
public bool IsEmpty(){
return qInstances.Count == 0;
}
}
}