mirror of
https://github.com/ckaczor/WorkIndicator.git
synced 2026-01-14 01:25:45 -05:00
48 lines
1.1 KiB
C#
48 lines
1.1 KiB
C#
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.ObjectModel;
|
|
using WorkIndicator.Properties;
|
|
|
|
namespace WorkIndicator
|
|
{
|
|
public class WindowPatterns : ObservableCollection<WindowPattern>
|
|
{
|
|
public static event EventHandler Changed;
|
|
|
|
public static WindowPatterns Load()
|
|
{
|
|
var windowPatterns = Load(Settings.Default.WindowPatterns);
|
|
|
|
return windowPatterns;
|
|
}
|
|
|
|
private static WindowPatterns Load(string serializedData)
|
|
{
|
|
var windowPatterns = JsonConvert.DeserializeObject<WindowPatterns>(serializedData) ?? new WindowPatterns();
|
|
|
|
return windowPatterns;
|
|
}
|
|
|
|
public void Save()
|
|
{
|
|
Settings.Default.WindowPatterns = Serialize();
|
|
|
|
Settings.Default.Save();
|
|
|
|
Changed?.Invoke(this, null);
|
|
}
|
|
|
|
private string Serialize()
|
|
{
|
|
return JsonConvert.SerializeObject(this);
|
|
}
|
|
|
|
public WindowPatterns Clone()
|
|
{
|
|
var data = Serialize();
|
|
|
|
return Load(data);
|
|
}
|
|
}
|
|
}
|