Files
qController/qController.Standard/Classes/Settings/QStorage.cs
T
jwetzell 31a10d9b16 * IconConstants.cs: Relocate
* QWorkspaceInfo.cs:
* QParser.cs:
* WorkspacePrompt.cs:
* QEventArgs.cs: Remove redundant QWorkspaceInfo class

* QRecentWorkspaceInfo.cs: Add bundle info class for recent workspace
  info

* ControlPage.xaml.cs:
* QBrowserPage.xaml.cs:
* QButton.cs:
* qConnectionPage.xaml.cs:
* QLevelsCell.cs:
* QCueListCell.cs:
* QInstanceCell.cs:
* QControlsBlock.cs:
* ShadowButton.cs:
* QLevelsButton.cs:
* QSelectedCueCell.cs: Move Cells classess under UI

* AppDelegate.cs:
* packages.config:
* MainActivity.cs:
* packages.config:
* qController.iOS.csproj:
* qController.Droid.csproj:
* qController.csproj: Update dependencies

* App.xaml.cs: Add AppAction code for recent workspace

* QStorage.cs: Add recent workspace to persistent storage

* QCueGrid.cs: Start on interactivity with cue list grid

* QCueViewModel.cs: debug for children updated start on reactive
  QCueGrid

* WorkspacePage.xaml.cs: Start handling a "no selected cue" state and
  recent workspace

* QInstance.cs:
* IPHelper.cs: move reachable check to IPHelper - TODO: implement
2020-11-29 14:22:01 -06:00

80 lines
2.5 KiB
C#

using Serilog;
using System.Collections.ObjectModel;
using Acr.Settings;
using qController.QItems;
using QControlKit;
namespace qController
{
public class QStorage
{
public static ObservableCollection<QInstance> qInstances;
public static QRecentWorkspaceInfo recentWorkspaceInfo;
static QStorage(){
qInstances = (ObservableCollection<QInstance>)CrossSettings.Current.GetValue(new ObservableCollection<QInstance>().GetType(), "qInstances", null);
recentWorkspaceInfo = (QRecentWorkspaceInfo)CrossSettings.Current.GetValue(typeof (QRecentWorkspaceInfo),"recentWorkspaceInfo",null);
if (qInstances == null)
{
Log.Debug("QSTORAGE - No qInstance exists creating one");
qInstances = new ObservableCollection<QInstance>();
UpdateStorage();
}
}
public static void UpdateRecentWorkspace(QRecentWorkspaceInfo packagedInfo)
{
recentWorkspaceInfo = packagedInfo;
CrossSettings.Current.SetValue("recentWorkspaceInfo", recentWorkspaceInfo);
}
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;
}
}
}