trakker/Services/MainCtrl.cs

79 lines
2.3 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using trakker.Models;
using trakker.Interfaces;
using trakker.Data;
namespace trakker.Services
{
internal class MainCtrl
{
private readonly string _connectionString;
private readonly IMainForm _view;
public MainCtrl(IMainForm view, string? connectionString)
{
_view = view ?? throw new ArgumentNullException(nameof(view));
_connectionString = connectionString ?? throw new ArgumentNullException(nameof(connectionString));
LoadClients();
_view.InitDataGridViewProjectTasks();
_view.InitDataGridViewProjects();
_view.InitTreeViewTasks();
LoadProjects();
}
public BindingSource GetLOV(string source)
{
var dbo = new Data.LOVData(_connectionString);
return new BindingSource { DataSource = dbo.Get(source) };
}
public BindingList<Client> GetClients()
{
var dbo = new Data.ClientData(_connectionString);
return dbo.Get();
}
internal void LoadClients()
{
var clients = GetClients();
_view.InitDataGridViewClients(clients);
}
public BindingList<Project> GetProjects()
{
var dbo = new Data.ProjectData(_connectionString);
return dbo.Get();
}
internal void LoadProjects()
{
var projects = GetProjects();
foreach (var project in projects)
{
var x = project.Status;
}
_view.FillDataGridViewProjects(new BindingSource { DataSource = projects });
LoadTasks();
}
internal void LoadTasks()
{
var dbo = new TaskData(_connectionString);
_view.FillTreeViewTasks(dbo.GetFS());
}
internal void LoadTasksRecursive(string id, PTask.RecursiveRoot root)
{
var dbo = new TaskData(_connectionString);
BindingList<PTask> tasks = dbo.GetRecursive(id, root);
_view.FillDataGridViewProjectTasks(new BindingSource { DataSource = tasks });
}
}
}