1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- using EVCB_OCPP.Domain;
- using EVCB_OCPP.Packet.Messages.SubTypes;
- using EVCB_OCPP.WSServer.Helper;
- using Microsoft.Data.SqlClient;
- using Microsoft.EntityFrameworkCore;
- using Microsoft.Extensions.Logging;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace EVCB_OCPP.WSServer.Service;
- public class MeterValueDbService
- {
- private readonly IDbContextFactory<MeterValueDBContext> meterValueDbContextFactory;
- private readonly ILoggerFactory loggerFactory;
-
- public MeterValueDbService(IDbContextFactory<MeterValueDBContext> meterValueDbContextFactory, ILoggerFactory loggerFactory)
- {
- this.meterValueDbContextFactory = meterValueDbContextFactory;
- this.loggerFactory = loggerFactory;
-
- }
- public async Task InsertAsync(string chargeBoxId, byte connectorId, decimal value, DateTime createdOn
- , int contextId, int formatId, int measurandId, int phaseId
- , int locationId, int unitId, int transactionId)
- {
- using var db = await meterValueDbContextFactory.CreateDbContextAsync();
- string sp = "[dbo].[uspInsertMeterValueRecord] @ChargeBoxId, @ConnectorId,@Value,@CreatedOn,@ContextId,@FormatId,@MeasurandId,@PhaseId,@LocationId,@UnitId,@TransactionId";
- var param = new InsertMeterValueParam(chargeBoxId, connectorId, value, createdOn, contextId, formatId, measurandId, phaseId, locationId, unitId, transactionId);
- List<SqlParameter> parameter = new List<SqlParameter>();
- parameter.AddInsertMeterValueRecordSqlParameters(
- chargeBoxId: param.chargeBoxId
- , connectorId: (byte)param.connectorId
- , value: param.value
- , createdOn: param.createdOn
- , contextId: param.contextId
- , formatId: param.formatId
- , measurandId: param.measurandId
- , phaseId: param.phaseId
- , locationId: param.locationId
- , unitId: param.unitId
- , transactionId: param.transactionId);
- await db.Database.ExecuteSqlRawAsync(sp, parameter.ToArray());
-
- }
- }
- public record InsertMeterValueParam(string chargeBoxId, byte connectorId, decimal value, DateTime createdOn
- , int contextId, int formatId, int measurandId, int phaseId
- , int locationId, int unitId, int transactionId);
|