using InnovEnergy.App.Backend.DataTypes; using InnovEnergy.App.Backend.Relations; namespace InnovEnergy.App.Backend.Database; public static partial class Db { private static Boolean Insert(Object obj) { var success = Connection.Insert(obj) > 0; if(success) BackupDatabase(); return success; } public static Boolean Create(Installation installation) { installation.S3BucketId = Installations.Count(f => f.Product == installation.Product)+1; // SQLite wrapper is smart and *modifies* t's Id to the one generated (autoincrement) by the insertion return Insert(installation); } public static Boolean Create(Error error) { return Insert(error); } public static Boolean Create(Warning warning) { return Insert(warning); } public static Boolean Create(Folder folder) { return Insert(folder); } public static Boolean Create(User user) { return Insert(user); } public static Boolean Create(Session session) { return Insert(session); } public static Boolean Create(InstallationAccess installationAccess) { return Insert(installationAccess); } public static Boolean Create(FolderAccess folderAccess) { return Insert(folderAccess); } public static Boolean Create(OrderNumber2Installation o2i) { return Insert(o2i); } public static Boolean Create(UserAction action) { return Insert(action); } public static void HandleAction(UserAction newAction) { //Find the total number of actions for this installation var totalActions = UserActions.Count(action => action.InstallationId == newAction.InstallationId); //If there are 100 actions, remove the one with the oldest timestamp if (totalActions == 100) { var oldestAction = UserActions.Where(action => action.InstallationId == newAction.InstallationId) .OrderBy(action => action.Timestamp) .FirstOrDefault(); //Remove the old action Delete(oldestAction); //Add the new action Create(newAction); } else { Console.WriteLine("---------------Added the new Error to the database-----------------"); Create(newAction); } } public static void HandleError(Error newError,int installationId) { //Find the total number of errors for this installation var totalErrors = Errors.Count(error => error.InstallationId == installationId); //If there are 100 errors, remove the one with the oldest timestamp if (totalErrors == 100) { var oldestError = Errors.Where(error => error.InstallationId == installationId) .OrderBy(error => error.Date) .FirstOrDefault(); //Remove the old error Delete(oldestError); //Add the new error Create(newError); } else { Console.WriteLine("---------------Added the new Error to the database-----------------"); Create(newError); } } public static void HandleWarning(Warning newWarning,int installationId) { //Find the total number of warnings for this installation var totalWarnings = Warnings.Count(warning => warning.InstallationId == installationId); //If there are 100 warnings, remove the one with the oldest timestamp if (totalWarnings == 100) { var oldestWarning = Warnings.Where(warning => warning.InstallationId == installationId) .OrderBy(warning => warning.Date) .FirstOrDefault(); //Remove the old error Delete(oldestWarning); //Add the new error Create(newWarning); } else { Console.WriteLine("---------------Added the new Warning to the database-----------------"); Create(newWarning); } } }