public ChargingTariffAlreadyExists(ChargingStationOperator ChargingStationOperator,
                                           ChargingTariff_Id ChargingTariffId)

            : base(ChargingStationOperator.RoamingNetwork,
                   "The given charging tariff identification '" + ChargingTariffId + "' already exists within the given '" + ChargingStationOperator.Id + "' charging station operator!")

        {
        }
Esempio n. 2
0
 /// <summary>
 /// Check if the given charging tariff identification is member of this charging tariff group.
 /// </summary>
 /// <param name="ChargingTariffId">The unique identification of the charging tariff.</param>
 public Boolean ContainsId(ChargingTariff_Id ChargingTariffId)
 => _ChargingTariffs.ContainsKey(ChargingTariffId);
Esempio n. 3
0
        /// <summary>
        /// Create and register a new charging tariff having the given
        /// unique charging tariff identification.
        /// </summary>
        /// <param name="Id">The unique identification of the charing tariff.</param>
        /// <param name="Name">The offical (multi-language) name of this charging tariff.</param>
        /// <param name="Description">An optional (multi-language) description of this charging tariff.</param>
        /// <param name="OnSuccess">An optional delegate to configure the new charging tariff after its successful creation.</param>
        /// <param name="OnError">An optional delegate to be called whenever the creation of the charging tariff failed.</param>
        public ChargingTariff CreateChargingTariff(ChargingTariff_Id Id,
                                                   I18NString Name,
                                                   I18NString Description,
                                                   Brand Brand,
                                                   Uri TariffUrl,
                                                   Currency Currency,
                                                   EnergyMix EnergyMix,
                                                   IEnumerable <ChargingTariffElement> TariffElements,

                                                   Action <ChargingTariff> OnSuccess = null,
                                                   Action <ChargingStationOperator, ChargingTariff_Id> OnError = null)

        {
            lock (_ChargingTariffs)
            {
                #region Initial checks

                if (_ChargingTariffs.ContainsKey(Id))
                {
                    //if (OnError != null)
                    //    OnError?.Invoke(this, Id);

                    throw new ArgumentException("Invalid tariff!");
                }

                #endregion

                var _ChargingTariff = new ChargingTariff(Id,
                                                         this,
                                                         Name,
                                                         Description,
                                                         Brand,
                                                         TariffUrl,
                                                         Currency,
                                                         EnergyMix,
                                                         TariffElements);


                if (ChargingTariffAddition.SendVoting(DateTime.UtcNow, this, _ChargingTariff))
                {
                    _ChargingTariffs.Add(_ChargingTariff.Id, _ChargingTariff);

                    //_ChargingTariff.OnEVSEDataChanged                             += UpdateEVSEData;
                    //_ChargingTariff.OnEVSEStatusChanged                           += UpdateEVSEStatus;
                    //_ChargingTariff.OnEVSEAdminStatusChanged                      += UpdateEVSEAdminStatus;

                    //_ChargingTariff.OnChargingStationDataChanged                  += UpdateChargingStationData;
                    //_ChargingTariff.OnChargingStationStatusChanged                += UpdateChargingStationStatus;
                    //_ChargingTariff.OnChargingStationAdminStatusChanged           += UpdateChargingStationAdminStatus;

                    ////_ChargingTariff.OnDataChanged                                 += UpdateChargingTariffData;
                    ////_ChargingTariff.OnAdminStatusChanged                          += UpdateChargingTariffAdminStatus;

                    OnSuccess?.Invoke(_ChargingTariff);

                    ChargingTariffAddition.SendNotification(DateTime.UtcNow,
                                                            this,
                                                            _ChargingTariff);

                    return(_ChargingTariff);
                }

                return(null);
            }
        }