92 lines
2.1 KiB
C#
92 lines
2.1 KiB
C#
using Step.Model.DatabaseModels;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using static Step.Config.ServerConfig;
|
|
|
|
namespace Step.Database.Controllers
|
|
{
|
|
public class ExternalSoftwareController : IDisposable
|
|
{
|
|
private DatabaseContext dbCtx;
|
|
|
|
public ExternalSoftwareController()
|
|
{
|
|
// Initialize database context
|
|
dbCtx = new DatabaseContext();
|
|
}
|
|
|
|
public void Dispose()
|
|
{
|
|
// Clear database context
|
|
dbCtx.Dispose();
|
|
}
|
|
|
|
public ExternalProgramModel FindById(int id)
|
|
{
|
|
return dbCtx
|
|
.ExternalPrograms
|
|
.Where(x => x.Id == id)
|
|
.SingleOrDefault();
|
|
}
|
|
|
|
public List<ExternalProgramModel> GetSoftware()
|
|
{
|
|
return dbCtx
|
|
.ExternalPrograms
|
|
.ToList();
|
|
}
|
|
|
|
public ExternalProgramModel Add(string path)
|
|
{
|
|
// Create database model
|
|
ExternalProgramModel prog = new ExternalProgramModel()
|
|
{
|
|
Path = path,
|
|
InMainMenuBar = false
|
|
};
|
|
// Add into database
|
|
dbCtx.ExternalPrograms.Add(
|
|
prog
|
|
);
|
|
|
|
// Commit changes
|
|
dbCtx.SaveChanges();
|
|
|
|
return prog;
|
|
}
|
|
|
|
public ExternalProgramModel Delete(int id)
|
|
{
|
|
// Create database model
|
|
var software = FindById(id);
|
|
|
|
if (software == null)
|
|
return null;
|
|
|
|
dbCtx.ExternalPrograms.Remove(software);
|
|
|
|
// Commit changes
|
|
dbCtx.SaveChanges();
|
|
|
|
return software;
|
|
}
|
|
|
|
public ExternalProgramModel Move(int id, bool inMainMenuBar)
|
|
{
|
|
// Create database model
|
|
var software = FindById(id);
|
|
|
|
if (software == null)
|
|
return null;
|
|
|
|
software.InMainMenuBar = inMainMenuBar;
|
|
|
|
// Commit changes
|
|
dbCtx.SaveChanges();
|
|
|
|
return software;
|
|
}
|
|
}
|
|
}
|