Innovenergy_trunk/csharp/App/Backend/Database/Create.cs

174 lines
5.1 KiB
C#
Raw Normal View History

2023-03-15 13:38:06 +00:00
using InnovEnergy.App.Backend.DataTypes;
using InnovEnergy.App.Backend.Relations;
namespace InnovEnergy.App.Backend.Database;
public static partial class Db
2023-03-15 13:38:06 +00:00
{
private static int _backupCounter = 0;
private static Boolean Insert(Object obj)
{
var success = Connection.Insert(obj) > 0;
if (success)
{
_backupCounter++;
if (_backupCounter > 100)
{
_backupCounter = 0;
BackupDatabase();
}
}
return success;
}
2023-03-15 13:38:06 +00:00
public static Boolean Create(Installation installation)
{
installation.S3BucketId = Installations.Where(inst => inst.Product == installation.Product).Max(inst => (int?)inst.S3BucketId)+1 ?? 0;
2023-03-15 13:38:06 +00:00
// SQLite wrapper is smart and *modifies* t's Id to the one generated (autoincrement) by the insertion
return Insert(installation);
2023-03-15 13:38:06 +00:00
}
public static Boolean Create(Error error)
{
return Insert(error);
}
2023-11-20 16:29:45 +00:00
public static Boolean Create(Warning warning)
{
return Insert(warning);
}
2023-03-15 13:38:06 +00:00
public static Boolean Create(Folder folder)
{
return Insert(folder);
2023-03-15 13:38:06 +00:00
}
public static Boolean Create(User user)
{
return Insert(user);
2023-03-15 13:38:06 +00:00
}
public static Boolean Create(Session session)
{
return Insert(session);
2023-03-15 13:38:06 +00:00
}
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);
}
2024-06-11 12:31:08 +00:00
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
{
2024-06-18 14:19:40 +00:00
Console.WriteLine("---------------Added the new Action to the database-----------------");
2024-06-11 12:31:08 +00:00
Create(newAction);
}
}
2024-07-18 07:37:40 +00:00
public static void UpdateAction(UserAction updatedAction)
{
var existingAction = UserActions.FirstOrDefault(action => action.Id == updatedAction.Id);
2024-07-18 07:37:40 +00:00
if (existingAction != null)
{
//existingAction.Description = updatedAction.Description;
//existingAction.Timestamp = updatedAction.Timestamp;
//existingAction.TestingMode = updatedAction.TestingMode;
Update(updatedAction);
2024-07-18 07:37:40 +00:00
Console.WriteLine("---------------Updated the Action in the database-----------------");
}
}
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)
2023-11-22 08:35:29 +00:00
.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);
}
}
2023-11-20 16:29:45 +00:00
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)
2023-11-22 08:35:29 +00:00
.OrderBy(warning => warning.Date)
2023-11-20 16:29:45 +00:00
.FirstOrDefault();
//Remove the old error
Delete(oldestWarning);
//Add the new error
Create(newWarning);
}
else
{
Console.WriteLine("---------------Added the new Warning to the database-----------------");
2023-11-20 16:29:45 +00:00
Create(newWarning);
}
}
2023-03-15 13:38:06 +00:00
}