Files
activestep/Step.Database/Controllers/ExternalSoftwareController.cs
2020-09-12 16:11:43 +02:00

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;
}
}
}