The representation of how to use MVVM architecture the right way!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.4 KiB

using Microsoft.Win32;
using SignalsMVVM.HelperClasses;
using SignalsMVVM.Interfaces;
using System;
using System.Collections.Generic;
using System.IO;
using System.Windows;
namespace SignalsMVVM.Models
{
public class SignalController : ISignalLoader, ISignalSaver
{
public IList<BaseSignal> LoadSignals()
{
OpenFileDialog dialog = new OpenFileDialog();
IList<BaseSignal> signalList = new List<BaseSignal>();
if (dialog.ShowDialog() == true)
try
{
var byteArray = File.ReadAllBytes(dialog.FileName);
signalList = BinaryFormatterSerialization.DeserializeBinaryFormatter<IList<BaseSignal>>(byteArray);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return signalList;
}
public void SaveSignals(IList<BaseSignal> signals)
{
SaveFileDialog dialog = new SaveFileDialog();
if (dialog.ShowDialog() != true) return;
try
{
File.WriteAllBytes(dialog.FileName,
BinaryFormatterSerialization.SerializeBinaryFormatter(signals));
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}