added product_based configuration in the backend of the monitor
This commit is contained in:
parent
bc142201c0
commit
e4674b41e5
|
|
@ -8,6 +8,7 @@ using InnovEnergy.App.Backend.Relations;
|
|||
using InnovEnergy.App.Backend.Websockets;
|
||||
using InnovEnergy.Lib.Utils;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace InnovEnergy.App.Backend;
|
||||
|
||||
|
|
@ -935,11 +936,19 @@ public class Controller : ControllerBase
|
|||
|
||||
|
||||
[HttpPost(nameof(EditInstallationConfig))]
|
||||
public async Task<ActionResult<IEnumerable<Object>>> EditInstallationConfig([FromBody] Configuration config, Int64 installationId,Token authToken)
|
||||
public async Task<ActionResult<IEnumerable<Object>>> EditInstallationConfig([FromBody] Configuration config, Int64 installationId,int product,Token authToken)
|
||||
{
|
||||
var session = Db.GetSession(authToken);
|
||||
|
||||
Console.WriteLine("CONFIG IS " + config.GetConfigurationString());
|
||||
string configString = product switch
|
||||
{
|
||||
0 => config.GetConfigurationSalimax(), // Salimax
|
||||
3 => config.GetConfigurationSodistoreMax(), // SodiStoreMax
|
||||
2 => config.GetConfigurationSodistoreHome(), // SodiStoreHome
|
||||
_ => config.GetConfigurationString() // fallback
|
||||
};
|
||||
|
||||
Console.WriteLine("CONFIG IS " + configString);
|
||||
|
||||
//Send configuration changes
|
||||
var success = await session.SendInstallationConfig(installationId, config);
|
||||
|
|
@ -947,17 +956,23 @@ public class Controller : ControllerBase
|
|||
// Record configuration change
|
||||
if (success)
|
||||
{
|
||||
// Create a new UserAction object
|
||||
// // Update Configuration colum in Installation table
|
||||
// var installation = Db.GetInstallationById(installationId);
|
||||
//
|
||||
// installation.Configuration = JsonConvert.SerializeObject(config);
|
||||
//
|
||||
// if (!installation.Apply(Db.Update))
|
||||
// return StatusCode(500, "Failed to update installation configuration in database");
|
||||
|
||||
var action = new UserAction
|
||||
{
|
||||
InstallationId = installationId,
|
||||
Timestamp = DateTime.Now,
|
||||
Description = config.GetConfigurationString()
|
||||
Description = configString
|
||||
};
|
||||
Console.WriteLine(action.Description);
|
||||
|
||||
var actionSuccess = await session.InsertUserAction(action);
|
||||
return actionSuccess?Ok():Unauthorized();
|
||||
return actionSuccess ? Ok() : StatusCode(500, "Failed to record Configuration changes in History of Action");
|
||||
}
|
||||
|
||||
return Unauthorized();
|
||||
|
|
|
|||
|
|
@ -2,19 +2,17 @@ namespace InnovEnergy.App.Backend.DataTypes;
|
|||
|
||||
public class Configuration
|
||||
{
|
||||
public Double MinimumSoC { get; set; }
|
||||
public Double GridSetPoint { get; set; }
|
||||
public CalibrationChargeType CalibrationChargeState { get; set; }
|
||||
public DateTime CalibrationChargeDate { get; set; }
|
||||
public CalibrationChargeType CalibrationDischargeState { get; set; }
|
||||
public DateTime CalibrationDischargeDate { get; set; }
|
||||
public double? MinimumSoC { get; set; }
|
||||
public double? GridSetPoint { get; set; }
|
||||
public CalibrationChargeType? CalibrationChargeState { get; set; }
|
||||
public DateTime? CalibrationChargeDate { get; set; }
|
||||
public CalibrationChargeType? CalibrationDischargeState { get; set; }
|
||||
public DateTime? CalibrationDischargeDate { get; set; }
|
||||
|
||||
//For sodistoreHome installations
|
||||
|
||||
public Double MaximumDischargingCurrent { get; set; }
|
||||
public Double MaximumChargingCurrent { get; set; }
|
||||
public Double OperatingPriority { get; set; }
|
||||
public Double BatteriesCount { get; set; }
|
||||
public double? MaximumDischargingCurrent { get; set; }
|
||||
public double? MaximumChargingCurrent { get; set; }
|
||||
public double? OperatingPriority { get; set; }
|
||||
public double? BatteriesCount { get; set; }
|
||||
|
||||
public String GetConfigurationString()
|
||||
{
|
||||
|
|
@ -24,6 +22,25 @@ public class Configuration
|
|||
$"BatteriesCount: {BatteriesCount}";
|
||||
|
||||
}
|
||||
|
||||
public string GetConfigurationSalimax()
|
||||
{
|
||||
return
|
||||
$"MinimumSoC: {MinimumSoC}, GridSetPoint: {GridSetPoint}, CalibrationChargeState: {CalibrationChargeState}, CalibrationChargeDate: {CalibrationChargeDate}";
|
||||
}
|
||||
|
||||
public string GetConfigurationSodistoreMax()
|
||||
{
|
||||
return
|
||||
$"MinimumSoC: {MinimumSoC}, GridSetPoint: {GridSetPoint}, CalibrationChargeState: {CalibrationChargeState}, CalibrationChargeDate: {CalibrationChargeDate}, " +
|
||||
$"CalibrationDischargeState: {CalibrationDischargeState}, CalibrationDischargeDate: {CalibrationDischargeDate}";
|
||||
}
|
||||
|
||||
public string GetConfigurationSodistoreHome()
|
||||
{
|
||||
return $"MinimumSoC: {MinimumSoC}, MaximumDischargingCurrent: {MaximumDischargingCurrent}, MaximumChargingCurrent: {MaximumChargingCurrent}, OperatingPriority: {OperatingPriority}" +
|
||||
$"BatteriesCount: {BatteriesCount}";
|
||||
}
|
||||
}
|
||||
|
||||
public enum CalibrationChargeType
|
||||
|
|
|
|||
|
|
@ -49,4 +49,5 @@ public class Installation : TreeNode
|
|||
[Ignore]
|
||||
public String OrderNumbers { get; set; }
|
||||
public String VrmLink { get; set; } = "";
|
||||
public string Configuration { get; set; } = "";
|
||||
}
|
||||
Loading…
Reference in New Issue