Giter Site home page Giter Site logo

hochfrequenz / bo4e-dotnet Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 4.0 6.01 MB

C# / .NET Core implementation of Business Objects for Energy (BO4E). Full Docs: https://hochfrequenz.github.io/bo4e-livedocs/api/BO4E.BO.html

Home Page: https://hochfrequenz.de

License: MIT License

C# 99.43% Shell 0.27% PowerShell 0.29%
bo4e dotnet energiewirtschaft

bo4e-dotnet's People

Contributors

dependabot[bot] avatar hamidd30 avatar hamidhajiparvaneh avatar hf-aschloegl avatar hf-fvesely avatar hf-kklein avatar hf-lkosareva avatar hf-mrdachner avatar joschametze avatar levtoji avatar rmorlock avatar tobiasnaethlynqtech avatar umsch avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

bo4e-dotnet's Issues

Check Serialisation of BO Objects (Vertrag - Vertragskondition)

Especially in the Vertrag Object (Vertragskonditionen) we stubled upon an issue, that using Newtonsoft JsonConvert the serialized-deserialized-serialized Json does not equal the serialized Json.

Todo: Write corresponding UnitTest in BO4E project and check.

Port Bilanzierung to BO4E-python

  • Port our own (Hochfrequenz) Business Object Bilanzierung to Python.
  • Add tests (to the python implementation) as usual
  • Put focus on a well documented data model (docstrings) Ask for help if necessary.
  • If the CI passes let someone from the Hochfrequenz team review it
  • Do not merge it to bo4e/BO4E-Python yet! We want to use th BO Bilanzierung to establish a git based workflow to enhance the official BO4E standard (meaning: someone from another company with functional knowledge should review it)

fyi @hf-krechan

Port BO Avis to BO4E-python

  • Port our own (Hochfrequenz) Business Object Avis to Python.
    • create an avis.py in bo4e-python: https://github.com/bo4e/BO4E-python/tree/main/src/bo4e/bo
    • run tox and create dev environment (see python template repository)
    • port all the properties from the c# avis class (link above) to the new class in bo4e-python
      • create missing coms and enums in BO4E-python
  • Add tests (to the python implementation) as usual
  • Put focus on a well documented data model (docstrings). Ask for help if necessary.
  • If the CI passes let someone from the Hochfrequenz team review it
  • Do not merge it to bo4e/BO4E-Python yet! We want to use th BO Avis to establish a git based workflow to enhance the official BO4E standard (meaning: someone from another company with functional knowledge should review it)

fyi @hf-krechan

Port COM Lastprofil to BO4E-Python

  • Port our own (Hochfrequenz) COMponent Lastprofil to Python.
  • Add tests (to the python implementation) as usual
  • Put focus on a well documented data model (docstrings) Ask for help if necessary.
  • If the CI passes let someone from the Hochfrequenz team review it
  • Do not merge it to bo4e/BO4E-Python yet! We want to use the COM Lastprofil to establish a git based workflow to enhance the official BO4E standard (meaning: someone from another company with functional knowledge should review it)

fyi @hf-krechan

Fix the Doc Build

Also:

  1. Es gibt in diesem Repo einen Workflow: https://github.com/Hochfrequenz/BO4E-dotnet/blob/main/.github/workflows/trigger_doc_build.yml
  2. Der ruft per webhook dieses Repo auf: https://github.com/Hochfrequenz/bo4e-doc/blob/d817afa32f1e693f999ae1949a2af76965520811/.github/workflows/build_docs.yml#L4
  3. der workflow aus 2 buildet dann mittels docfx die doku die in https://github.com/Hochfrequenz/bo4e-livedocs liegt. und das letzte repo ist ein github pages repo, dass rechts in der sidebar dieses repos verlinkt ist: https://hochfrequenz.github.io/bo4e-livedocs/api/BO4E.BO.html

Mindestes ein glied dieser workflow kette ist aktuell defekt.
Wahrscheilich geht das alles einfacher.

Aber so war mal der plan

Originally posted by @hf-kklein in #120 (comment)

Discussion: Model Validation

Hi there!
Am I the only one who would appreciate the models to implement some kine of model validation options?
Stumbled upon IValidatableObject - wouldn't it be nice to have that?

I stumbled upon an issues in our system where a Marktlokation contained a Messlokation with a different Sparte than the Marktlokation itself. Such logical restrictions could easily be enforced with such an universal validation mechanis as provided with the IValidatableObject interface.

Let me know what you think!

BR
Gabriel

Enumify Flags in HasFlag/SetFlag Extension Methods

public bool HasFlagSet(string flagKey)

In an ideal world, the methods for setting/nulling/reading flags should only accept Enum-Values (bonus: only those with an Flags-Attribute).
ToDo: Make the public method generic enough to consume only enums, not strings. The internal/private methods might still use strings because, as the flags are stored in a Dictionary<string,JToken> (constraint by JSON.Net), the keys are ultimately stored as strings in the UserProperties.

Create a Nuget Package only from the protobuf_v2_legacy_branch

push the changes directly to this branch

Write CI action to Check that `json-schema-files` and actual C# code are in sync

We need a check, that the files in json-schema-files are in sync with the actual c# code base managed in this repository. We don't want to do manual re-generations like in #414 .
This is relevant to have our .ts package in sync: https://github.com/Hochfrequenz/bo4e-dotnet-ts-models (as of today this sync happens more or less manually: some one updates the json schemas, this triggers an update of the .ts package).

See e.g. the bo4e-python tooling (ask @lord-haffi), where the comparison happens.

The comparison shhuld be semantic, not string based.

Therefore:

Implement Missing Business Objects

see official list: https://www.bo4e.de/dokumentation

  • Angebot
  • Ansprechpartner
  • Ausschreibung
  • Buendelvertrag
  • Energiemenge
  • Fremdkosten
  • Geschaeftsobjekt
  • Geschaeftspartner
  • Kosten
  • Marktlokation
  • Marktteilnehmer
  • Messlokation
  • Netznutzungsrechnung
  • Preisblatt
  • PreisblattDienstleistung
  • PreisblattHardware
  • PreisblattKonzessionsabgabe
  • PreisblattMessung
  • PreisblattNetznutzung
  • Rechnung
  • Region
  • Regionaltarif
  • Standorteigenschaften
  • Tarif
  • Tarifinfo
  • Tarifkosten
  • Tarifpreisblatt
  • Vertrag
  • Zaehler

fehlt in BO4E.ENUM.Verbrauchsart

in enercity document steht dieser Enum fielden in BO4E.ENUM.Verbrauchsart :

Z64: Kraft/Licht
Z65: Wärme
Z66: Kraft/Licht/Wärme
E87: E-Mobilitätsladesäule
ZA8: Straßenbeleuchung
ZB3: Steuerung Wärmeabgabe

dass es mit unserem Enum nicht gleich ist.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.