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.App.Backend.Websockets;
|
||||||
using InnovEnergy.Lib.Utils;
|
using InnovEnergy.Lib.Utils;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace InnovEnergy.App.Backend;
|
namespace InnovEnergy.App.Backend;
|
||||||
|
|
||||||
|
|
@ -935,11 +936,19 @@ public class Controller : ControllerBase
|
||||||
|
|
||||||
|
|
||||||
[HttpPost(nameof(EditInstallationConfig))]
|
[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);
|
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
|
//Send configuration changes
|
||||||
var success = await session.SendInstallationConfig(installationId, config);
|
var success = await session.SendInstallationConfig(installationId, config);
|
||||||
|
|
@ -947,17 +956,23 @@ public class Controller : ControllerBase
|
||||||
// Record configuration change
|
// Record configuration change
|
||||||
if (success)
|
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
|
var action = new UserAction
|
||||||
{
|
{
|
||||||
InstallationId = installationId,
|
InstallationId = installationId,
|
||||||
Timestamp = DateTime.Now,
|
Timestamp = DateTime.Now,
|
||||||
Description = config.GetConfigurationString()
|
Description = configString
|
||||||
};
|
};
|
||||||
Console.WriteLine(action.Description);
|
|
||||||
|
|
||||||
var actionSuccess = await session.InsertUserAction(action);
|
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();
|
return Unauthorized();
|
||||||
|
|
|
||||||
|
|
@ -2,19 +2,17 @@ namespace InnovEnergy.App.Backend.DataTypes;
|
||||||
|
|
||||||
public class Configuration
|
public class Configuration
|
||||||
{
|
{
|
||||||
public Double MinimumSoC { get; set; }
|
public double? MinimumSoC { get; set; }
|
||||||
public Double GridSetPoint { get; set; }
|
public double? GridSetPoint { get; set; }
|
||||||
public CalibrationChargeType CalibrationChargeState { get; set; }
|
public CalibrationChargeType? CalibrationChargeState { get; set; }
|
||||||
public DateTime CalibrationChargeDate { get; set; }
|
public DateTime? CalibrationChargeDate { get; set; }
|
||||||
public CalibrationChargeType CalibrationDischargeState { get; set; }
|
public CalibrationChargeType? CalibrationDischargeState { get; set; }
|
||||||
public DateTime CalibrationDischargeDate { get; set; }
|
public DateTime? CalibrationDischargeDate { get; set; }
|
||||||
|
|
||||||
//For sodistoreHome installations
|
public double? MaximumDischargingCurrent { get; set; }
|
||||||
|
public double? MaximumChargingCurrent { get; set; }
|
||||||
public Double MaximumDischargingCurrent { get; set; }
|
public double? OperatingPriority { get; set; }
|
||||||
public Double MaximumChargingCurrent { get; set; }
|
public double? BatteriesCount { get; set; }
|
||||||
public Double OperatingPriority { get; set; }
|
|
||||||
public Double BatteriesCount { get; set; }
|
|
||||||
|
|
||||||
public String GetConfigurationString()
|
public String GetConfigurationString()
|
||||||
{
|
{
|
||||||
|
|
@ -24,6 +22,25 @@ public class Configuration
|
||||||
$"BatteriesCount: {BatteriesCount}";
|
$"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
|
public enum CalibrationChargeType
|
||||||
|
|
|
||||||
|
|
@ -49,4 +49,5 @@ public class Installation : TreeNode
|
||||||
[Ignore]
|
[Ignore]
|
||||||
public String OrderNumbers { get; set; }
|
public String OrderNumbers { get; set; }
|
||||||
public String VrmLink { get; set; } = "";
|
public String VrmLink { get; set; } = "";
|
||||||
|
public string Configuration { get; set; } = "";
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue