Snippets

OICP 2.1 Push EVSE Data | C#

You are viewing an old version of this snippet. View the current version.
Revised by Gregor Schermuly 7a5f26a
/// <summary>
/// Create a new task pushing a single EVSE data record onto the OICP server.
/// </summary>
/// <param name="EVSEDataRecord">A EVSE data record.</param>
/// <param name="OICPAction">An optional OICP action.</param>
/// <param name="OperatorId">An optional EVSE operator Id to use. Otherwise it will be taken from the EVSE data record.</param>
/// <param name="OperatorName">An optional EVSE operator name.</param>
/// <param name="IncludeEVSEs">An optional delegate for filtering EVSE data records before pushing them to the server.</param>
/// <param name="QueryTimeout">An optional timeout for this query.</param>
public async Task<HTTPResponse<HubjectAcknowledgement>>

    PushEVSEData(EVSEDataRecord                 EVSEDataRecord,
                 ActionType                     OICPAction    = ActionType.insert,
                 EVSEOperator_Id                OperatorId    = null,
                 String                         OperatorName  = null,
                 Func<EVSEDataRecord, Boolean>  IncludeEVSEs  = null,
                 TimeSpan?                      QueryTimeout  = null)

{ ... }

/// <summary>
/// Create a new task pushing EVSE data records onto the OICP server.
/// </summary>
/// <param name="OICPAction">The OICP action.</param>
/// <param name="EVSEDataRecords">An array of EVSE data records.</param>
public async Task<HTTPResponse<HubjectAcknowledgement>>

    PushEVSEData(ActionType               OICPAction,
                 params EVSEDataRecord[]  EVSEDataRecords)

{ ... }

/// <summary>
/// Create a new task pushing EVSE data records onto the OICP server.
/// </summary>
/// <param name="OICPAction">The OICP action.</param>
/// <param name="OperatorId">The EVSE operator Id to use.</param>
/// <param name="EVSEDataRecords">An array of EVSE data records.</param>
public async Task<HTTPResponse<HubjectAcknowledgement>>

    PushEVSEData(ActionType               OICPAction,
                 EVSEOperator_Id          OperatorId,
                 params EVSEDataRecord[]  EVSEDataRecords)

{ ... }

/// <summary>
/// Create a new task pushing EVSE data records onto the OICP server.
/// </summary>
/// <param name="OICPAction">The OICP action.</param>
/// <param name="OperatorId">The EVSE operator Id to use.</param>
/// <param name="OperatorName">The EVSE operator name.</param>
/// <param name="EVSEDataRecords">An array of EVSE data records.</param>
public async Task<HTTPResponse<HubjectAcknowledgement>>

    PushEVSEData(ActionType               OICPAction,
                 EVSEOperator_Id          OperatorId,
                 String                   OperatorName,
                 params EVSEDataRecord[]  EVSEDataRecords)

{ ... }

/// <summary>
/// Create a new task pushing EVSE data records onto the OICP server.
/// </summary>
/// <param name="EVSEDataRecords">An enumeration of EVSE data records.</param>
/// <param name="OICPAction">An optional OICP action.</param>
/// <param name="OperatorId">An optional EVSE operator Id to use. Otherwise it will be taken from the EVSE data records.</param>
/// <param name="OperatorName">An optional EVSE operator name.</param>
/// <param name="IncludeEVSEs">An optional delegate for filtering EVSE data records before pushing them to the server.</param>
/// <param name="QueryTimeout">An optional timeout for this query.</param>
public async Task<HTTPResponse<HubjectAcknowledgement>>

    PushEVSEData(IEnumerable<EVSEDataRecord>    EVSEDataRecords,
                 ActionType                     OICPAction    = ActionType.fullLoad,
                 EVSEOperator_Id                OperatorId    = null,
                 String                         OperatorName  = null,
                 Func<EVSEDataRecord, Boolean>  IncludeEVSEs  = null,
                 TimeSpan?                      QueryTimeout  = null)

{ ... }



///Example

var EVSEDataRecords  = Enumeration.Create(

    new EVSEDataRecord(
        EVSEId:               EVSE_Id.           Parse("DE*GEF*E123456789*1"),
        ChargingStationId:    ChargingStation_Id.Parse("DE*GEF*S123456789"),
        ChargingStationName:  I18NString.        Create(Languages.de, "Testbox 1").
                                                    Add(Languages.en, "Testbox One").,

        Address:              Address.Create(
                                  Country.Germany,
                                  "07749", "Jena",
                                  "Biberweg", "18"
                              ),

        GeoCoordinate:        GeoCoordinate.Create(
                                  Latitude. Parse(49.731102),
                                  Longitude.Parse(10.142530)
                              ),

        Plugs:                Enumeration.Create(
                                  PlugTypes.TypeFSchuko,
                                  PlugTypes.Type2Outlet
                              ),

        AuthenticationModes:  Enumeration.Create(
                                  AuthenticationModes.NFC_RFID_Classic,
                                  AuthenticationModes.NFC_RFID_DESFire,
                                  AuthenticationModes.REMOTE
                              ),

        PaymentOptions:       Enumeration.Create(
                                  PaymentOptions.Contract,
                                  PaymentOptions.Direct
                              ),

        Accessibility:        AccessibilityTypes.Paying_publicly_accessible,

        HotlinePhoneNumber:   "+49 555 12345678",

        IsHubjectCompatible:  true,
        DynamicInfoAvailable: true,
        IsOpen24Hours:        true
    ),

    new EVSEDataRecord(...)

);


var req = new CPOClient("api.playground.hubject.com").

              PushEVSEData(EVSEDataRecords,
                           ActionType.insert,
                           IncludeEVSEs: evse => evse.EVSEId.ToString().
                                                 StartsWith("DE")).

              ContinueWith(task => {

                  var Acknowledgement = task.Result.Content;

                  if (Acknowledgement.Result)
                      Console.WriteLine("success!");

                  else
                  {
                      Console.WriteLine(Acknowledgement.StatusCode.Code);
                      Console.WriteLine(Acknowledgement.StatusCode.Description);
                      Console.WriteLine(Acknowledgement.StatusCode.AdditionalInfo);
                  }

              });

// Wait for the task to complete...
req.Wait();
HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.