using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Data;
using System.IO;
using System.Text;
using System.Windows.Media.Imaging;
namespace Server_Dashboard {
///
/// View Model for the modules
///
internal class DashboardModuleViewModel : BaseViewModel {
//List with all Modules inside
public ObservableCollection Modules { get; set; }
//Creates Default Modules, remove before release and when implementing the actual data comming from the socket
public DashboardModuleViewModel(DataTable userdata) {
GetModules(userdata);
}
public void GetModules(DataTable userdata) {
Modules = new ObservableCollection();
foreach (DataRow row in userdata.Rows) {
BitmapImage moduleIcon = null;
if (row[5] != DBNull.Value) {
using MemoryStream ms = new MemoryStream((byte[])row[5]);
moduleIcon = new BitmapImage();
moduleIcon.BeginInit();
moduleIcon.StreamSource = ms;
moduleIcon.CreateOptions = BitmapCreateOptions.PreservePixelFormat;
moduleIcon.CacheOption = BitmapCacheOption.OnLoad;
moduleIcon.EndInit();
moduleIcon.Freeze();
}
Modules.Add(new DashboardModule(true) {
ModuleName = (string)row[4],
Creator = (string)row[1],
ModuleIcon = moduleIcon,
CreationDate = DateTime.Now.ToString(),
ServerInfo = new ServerInformation() {
GpuUsage = "20",
CpuUsage = "20",
CpuTemp = "88.88",
DeployDate = DateTime.Now.ToString(),
GpuTemp = "69.69",
ServerName = "Ubuntu",
OSUserName = "crylia ",
PrivateIpAdress = "192.168.1.1",
PublicIpAdress = "85.69.102.58",
Uptime = DateTime.Now.ToString()
}
});
}
}
}
}