|
@@ -17,6 +17,7 @@ using Microsoft.Extensions.DependencyInjection;
|
|
|
using Microsoft.Extensions.Logging;
|
|
|
using System.Diagnostics;
|
|
|
using EVCB_OCPP.Domain.Models.Database;
|
|
|
+using Azure.Core;
|
|
|
|
|
|
namespace EVCB_OCPP.WEBAPI.Controllers.Version1
|
|
|
{
|
|
@@ -177,68 +178,64 @@ namespace EVCB_OCPP.WEBAPI.Controllers.Version1
|
|
|
|
|
|
ChargePointService _CPService = serviceProvider.GetRequiredService<ChargePointService>();
|
|
|
|
|
|
- if (!string.IsNullOrEmpty(request.ChargeBoxId) &&
|
|
|
- request.ChargeBoxId.Length <= 25 &&
|
|
|
- (!request.ConnectorId.HasValue ||
|
|
|
- (_CPService.GetNumberofConnectors(request.ChargeBoxId) >= request.ConnectorId && request.ConnectorId > 0)) &&
|
|
|
- !string.IsNullOrEmpty(request.Token) &&
|
|
|
- request.Token.Length <= 20)
|
|
|
+ if (string.IsNullOrEmpty(request.ChargeBoxId) ||
|
|
|
+ request.ChargeBoxId.Length > 25 ||
|
|
|
+ request.ConnectorId.HasValue &&
|
|
|
+ (!(_CPService.GetNumberofConnectors(request.ChargeBoxId) >= request.ConnectorId) || !(request.ConnectorId > 0)) ||
|
|
|
+ string.IsNullOrEmpty(request.Token) ||
|
|
|
+ request.Token.Length > 20)
|
|
|
{
|
|
|
- InternalHttpClient _client = serviceProvider.GetRequiredService<InternalHttpClient>();
|
|
|
- ICustomerService _customer = serviceProvider.GetRequiredService<ICustomerService>();
|
|
|
-
|
|
|
- //trigger to charge
|
|
|
- var _request = new Models.WebAPI.StartTransactionRequest()
|
|
|
- {
|
|
|
- ConnectorId = request.ConnectorId,
|
|
|
- IdTag = request.Token
|
|
|
- };
|
|
|
+ // 參數不符合定義
|
|
|
+ result.StatusMessage = CPO_StatusMessage.ERROR_MSG_PARAMETER_OUTOFRANGE_INCORRECT;
|
|
|
+ result.StatusCode = (int)CPO_StatusCode.PARAMETER_OUTOFRANGE_INCORRECT;
|
|
|
+ result.Data = JsonConvert.SerializeObject(_innerData, EVCBConfiguration.JSONSERIALIZER_FORMAT);
|
|
|
+ //statusCode = HttpStatusCode.BadRequest;
|
|
|
+ statusCode = StatusCodes.Status400BadRequest;
|
|
|
|
|
|
- string urlformat = "{0}://{1}";
|
|
|
+ return StatusCode(statusCode, result);
|
|
|
+ }
|
|
|
|
|
|
- var _innerResult = await _client.Post(
|
|
|
- string.Format(urlformat, Request.Scheme, Request.Host.ToUriComponent())
|
|
|
- , $"/api/v1/ocpp16/transaction?ChargeBoxId={request.ChargeBoxId}"
|
|
|
- , new Dictionary<string, string>()
|
|
|
- {
|
|
|
- { "PartnerId",_CustomerId}
|
|
|
- }, _request, _customer.GetAPIKey(new Guid(_CustomerId)));
|
|
|
+ InternalHttpClient _client = serviceProvider.GetRequiredService<InternalHttpClient>();
|
|
|
+ ICustomerService _customer = serviceProvider.GetRequiredService<ICustomerService>();
|
|
|
|
|
|
- _innerData = new { Result = string.IsNullOrEmpty(_innerResult.SerialNo) ? CommandResponseType.Rejected.ToString() : CommandResponseType.Accepted.ToString(), Timeout = 60 };
|
|
|
- result = GetErrorDescription(_innerResult);
|
|
|
- result.Data = JsonConvert.SerializeObject(_innerData, EVCBConfiguration.JSONSERIALIZER_FORMAT);
|
|
|
+ //trigger to charge
|
|
|
+ var _request = new Models.WebAPI.StartTransactionRequest()
|
|
|
+ {
|
|
|
+ ConnectorId = request.ConnectorId,
|
|
|
+ IdTag = request.Token
|
|
|
+ };
|
|
|
|
|
|
- if (_innerResult.Status == HttpStatusCode.InternalServerError)
|
|
|
- {
|
|
|
+ string urlformat = "{0}://{1}";
|
|
|
|
|
|
- result.StatusCode = _innerResult.ErrorCode;
|
|
|
- result.StatusMessage = CPO_StatusMessage.ERROR_MSG_INNERSERVICE_ERROR;
|
|
|
- //statusCode = HttpStatusCode.InternalServerError;
|
|
|
- statusCode = StatusCodes.Status500InternalServerError;
|
|
|
- }
|
|
|
- else
|
|
|
+ var _innerResult = await _client.Post(
|
|
|
+ string.Format(urlformat, Request.Scheme, Request.Host.ToUriComponent())
|
|
|
+ , $"/api/v1/ocpp16/transaction?ChargeBoxId={request.ChargeBoxId}"
|
|
|
+ , new Dictionary<string, string>()
|
|
|
{
|
|
|
- result.SerialNo = _innerResult.SerialNo;
|
|
|
- result.StatusCode = _innerResult.ErrorCode;
|
|
|
- result.StatusMessage = _innerResult.Message;
|
|
|
- //statusCode = HttpStatusCode.OK;
|
|
|
- statusCode = StatusCodes.Status200OK;
|
|
|
- }
|
|
|
+ { "PartnerId",_CustomerId}
|
|
|
+ }, _request, _customer.GetAPIKey(new Guid(_CustomerId)));
|
|
|
|
|
|
+ _innerData = new { Result = string.IsNullOrEmpty(_innerResult.SerialNo) ? CommandResponseType.Rejected.ToString() : CommandResponseType.Accepted.ToString(), Timeout = 60 };
|
|
|
+ result = GetErrorDescription(_innerResult);
|
|
|
+ result.Data = JsonConvert.SerializeObject(_innerData, EVCBConfiguration.JSONSERIALIZER_FORMAT);
|
|
|
|
|
|
+ if (_innerResult.Status == HttpStatusCode.InternalServerError)
|
|
|
+ {
|
|
|
|
|
|
+ result.StatusCode = _innerResult.ErrorCode;
|
|
|
+ result.StatusMessage = CPO_StatusMessage.ERROR_MSG_INNERSERVICE_ERROR;
|
|
|
+ //statusCode = HttpStatusCode.InternalServerError;
|
|
|
+ statusCode = StatusCodes.Status500InternalServerError;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- // 參數不符合定義
|
|
|
- result.StatusMessage = CPO_StatusMessage.ERROR_MSG_PARAMETER_OUTOFRANGE_INCORRECT;
|
|
|
- result.StatusCode = (int)CPO_StatusCode.PARAMETER_OUTOFRANGE_INCORRECT;
|
|
|
- result.Data = JsonConvert.SerializeObject(_innerData, EVCBConfiguration.JSONSERIALIZER_FORMAT);
|
|
|
- //statusCode = HttpStatusCode.BadRequest;
|
|
|
- statusCode = StatusCodes.Status400BadRequest;
|
|
|
+ result.SerialNo = _innerResult.SerialNo;
|
|
|
+ result.StatusCode = _innerResult.ErrorCode;
|
|
|
+ result.StatusMessage = _innerResult.Message;
|
|
|
+ //statusCode = HttpStatusCode.OK;
|
|
|
+ statusCode = StatusCodes.Status200OK;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
//return Request.CreateResponse(statusCode, result);
|
|
|
return StatusCode(statusCode, result);
|
|
|
}
|
|
@@ -267,6 +264,7 @@ namespace EVCB_OCPP.WEBAPI.Controllers.Version1
|
|
|
try
|
|
|
{
|
|
|
string _CustomerId = GetCustomerId();
|
|
|
+ logger.LogTrace($"{nameof(StopSession)} {ChargeBoxId} {_CustomerId}");
|
|
|
|
|
|
if (!await ContainsChargePointAsync(ChargeBoxId, _CustomerId))
|
|
|
{
|