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