Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cd02e6af5f | |||
| 6c4e50f7a6 | |||
| a040a91d1f | |||
| e40f8ccdb1 | |||
| af6466e2dc | |||
| ee62a6253d | |||
| 52c9d9b9e2 | |||
| 8bbf905668 | |||
| bac1eacac6 | |||
| 1b42150ed6 | |||
| a92293eefa |
6
.gitignore
vendored
6
.gitignore
vendored
@@ -8,5 +8,7 @@ NuGet/
|
|||||||
|
|
||||||
# Lokalne konfiguracje wdrożeniowe; repozytorium zawiera wyłącznie wzorzec.
|
# Lokalne konfiguracje wdrożeniowe; repozytorium zawiera wyłącznie wzorzec.
|
||||||
src/SmartB2B.Enova.Service/config/enova.json
|
src/SmartB2B.Enova.Service/config/enova.json
|
||||||
release/config/enova.json
|
release-enova/config/enova.json
|
||||||
release/config/enova.local.json
|
release-enova/config/enova.local.json
|
||||||
|
src/SmartB2B.Optima.Service/config/optima.json
|
||||||
|
release-optima/config/optima.json
|
||||||
|
|||||||
49
OPTIMA-INTEGRATION-TESTS.md
Normal file
49
OPTIMA-INTEGRATION-TESTS.md
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
# Testy integracyjne Comarch ERP Optima
|
||||||
|
|
||||||
|
Testy z bazą są celowo wykonywane dopiero po ręcznym przygotowaniu i zarejestrowaniu firmy w Optimie. Narzędzia w tym repozytorium nie odtwarzają, nie tworzą ani nie modyfikują konfiguracji baz Optimy.
|
||||||
|
|
||||||
|
## Przygotowanie
|
||||||
|
|
||||||
|
1. Skopiuj `src/SmartB2B.Optima.Service/config/optima.json.sample` do lokalnego, ignorowanego przez Git pliku `src/SmartB2B.Optima.Service/config/optima.json`.
|
||||||
|
2. Uzupełnij nazwę firmy widoczną podczas logowania, operatora, hasło, identyfikator magazynu i connection string SQL.
|
||||||
|
3. Nie dodawaj pliku `optima.json` do repozytorium ani paczki wdrożeniowej.
|
||||||
|
4. W przygotowanej firmie zapewnij kontrolowane dane testowe: kontrahenta, towar, magazyn, walutę oraz definicje RO liczone netto i brutto.
|
||||||
|
|
||||||
|
## Kontrola bez zapisu
|
||||||
|
|
||||||
|
Uruchom wersję opublikowaną dla tej samej architektury co `op_base.dll` (`x86`
|
||||||
|
jest domyślne, opcjonalnie użyj `.\publish-optima.ps1 -Architecture x64`):
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
.\release-optima\SmartB2B.Optima.Service.exe --config .\src\SmartB2B.Optima.Service\config\optima.json --check-config
|
||||||
|
```
|
||||||
|
|
||||||
|
Polecenie sprawdza JSON, zgodność architektury procesu z `op_base.dll`, rejestrację COM, wersję Optimy, połączenie SQL, logowanie operatora i utworzenie sesji. Nie zapisuje dokumentu.
|
||||||
|
|
||||||
|
## Scenariusze zapisu przez WAMP
|
||||||
|
|
||||||
|
Pierwszy kontrolowany zapis adaptera można wykonać runnerem, który wymaga jawnego
|
||||||
|
parametru `--write-order` i domyślnie zapisuje wyłącznie w trybie `Buffer`:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
dotnet run --project .\tests\SmartB2B.Optima.IntegrationTests -- --config .\src\SmartB2B.Optima.Service\config\optima.json --negative-tests --write-order --customer-id 2 --product-code SMARTB2B_TEST_TWR
|
||||||
|
```
|
||||||
|
|
||||||
|
Zatwierdzenie dokumentu wymaga dodatkowej flagi `--approved` i powinno być wykonywane
|
||||||
|
wyłącznie w firmie testowej:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
dotnet run --project .\tests\SmartB2B.Optima.IntegrationTests -- --config .\src\SmartB2B.Optima.Service\config\optima.json --write-order --approved --customer-id 2 --product-code SMARTB2B_TEST_TWR
|
||||||
|
```
|
||||||
|
|
||||||
|
Po pomyślnym `--check-config` uruchom usługę z tym samym plikiem konfiguracji i sprawdź kolejno:
|
||||||
|
|
||||||
|
- RO w buforze (`saveMode: Buffer`) i zatwierdzone (`saveMode: Approved`);
|
||||||
|
- definicję liczoną netto z `price_netto` i brutto z `price_brutto`;
|
||||||
|
- rabat, uwagi, numer obcy, magazyn oraz walutę;
|
||||||
|
- zgodność `order_erp_id`, `order_erp_symbol`, `value_netto` i `value_brutto` z dokumentem zapisanym w Optimie;
|
||||||
|
- błędy dla brakującego kontrahenta, produktu, magazynu, waluty i wymaganej ceny;
|
||||||
|
- parametryzowane `sql_raw`, wiele recordsetów, dane binarne oraz błąd SQL;
|
||||||
|
- dwa równoczesne wywołania `place_order` — dokumenty mają zostać utworzone kolejno na jednym wątku COM.
|
||||||
|
|
||||||
|
Przed testami trybu `Approved` wykonaj kopię bezpieczeństwa bazy lub użyj firmy przeznaczonej wyłącznie do testów.
|
||||||
86
README.md
86
README.md
@@ -1,6 +1,13 @@
|
|||||||
# SmartB2B SYNC dla enova365
|
# SmartB2B SYNC dla enova365 i Comarch ERP Optima
|
||||||
|
|
||||||
Dedykowana usługa Windows zastępująca proces Node na stanowiskach z enova365. Utrzymuje połączenie WAMP, dodaje zamówienia przez oficjalne API Enovy i wykonuje `eu.smartb2b.sql_raw` na osobnym połączeniu SQL.
|
Dedykowane usługi Windows zastępujące proces Node na stanowiskach z enova365 albo
|
||||||
|
Comarch ERP Optima. Wspólny rdzeń utrzymuje połączenie WAMP, udostępnia diagnostykę
|
||||||
|
i wykonuje `eu.smartb2b.sql_raw`. Osobne adaptery zapisują zamówienia przez API ERP.
|
||||||
|
|
||||||
|
Rozwiązanie składa się z bibliotek `SmartB2B.Sync.Contracts` i
|
||||||
|
`SmartB2B.Sync.Service` oraz osobnych hostów i adapterów Enovy i Optimy. Usług dla
|
||||||
|
tego samego portalu nie należy uruchamiać jednocześnie, ponieważ rejestrują te same
|
||||||
|
procedury WAMP.
|
||||||
|
|
||||||
## Najważniejsze właściwości
|
## Najważniejsze właściwości
|
||||||
|
|
||||||
@@ -9,21 +16,30 @@ Dedykowana usługa Windows zastępująca proces Node na stanowiskach z enova365.
|
|||||||
- Operacje Enovy są wykonywane pojedynczo i w osobnych sesjach. Zapytania SQL korzystają z puli połączeń i mogą działać równolegle.
|
- Operacje Enovy są wykonywane pojedynczo i w osobnych sesjach. Zapytania SQL korzystają z puli połączeń i mogą działać równolegle.
|
||||||
- ZO jest zapisywane transakcyjnie, domyślnie do bufora. Powtarzający się numer obcy nie jest blokowany.
|
- ZO jest zapisywane transakcyjnie, domyślnie do bufora. Powtarzający się numer obcy nie jest blokowany.
|
||||||
- Pierwsza wersja obsługuje PLN, `price_netto` i rabat procentowy `0-100`.
|
- Pierwsza wersja obsługuje PLN, `price_netto` i rabat procentowy `0-100`.
|
||||||
|
- Sentry raportuje błędy krytyczne procesu oraz nieoczekiwane błędy procedur Enovy i SQL, oznaczone portalem i nazwą procedury WAMP.
|
||||||
|
|
||||||
## Konfiguracja
|
## Konfiguracja
|
||||||
|
|
||||||
Plik `config/enova.json` zawiera portal WAMP, ścieżkę instalacji, alias bazy, operatora wraz z hasłem, connection string SQL, definicję dokumentu, magazyn domyślny i tryb zapisu. Repozytorium oraz paczka zawierają tylko `config/enova.json.sample`. Skrypt instalacyjny kopiuje wzorzec do `config/enova.json` wyłącznie wtedy, gdy lokalna konfiguracja jeszcze nie istnieje.
|
Plik `config/enova.json` zawiera portal WAMP, ścieżkę instalacji, alias bazy używany wewnątrz procesu, operatora wraz z hasłem, connection string SQL, definicję dokumentu, magazyn domyślny, tryb zapisu oraz DSN Sentry. Repozytorium oraz paczka zawierają tylko `config/enova.json.sample`. Skrypt instalacyjny kopiuje wzorzec do `config/enova.json` wyłącznie wtedy, gdy lokalna konfiguracja jeszcze nie istnieje.
|
||||||
|
|
||||||
Uzupełnij pola `enova.password` i `sql.connectionString` bezpośrednio w lokalnym pliku `config/enova.json`. Po zmianie konfiguracji trzeba zrestartować usługę. Connection string powinien używać konta SQL o możliwie najmniejszych uprawnieniach; `sql_raw` celowo dopuszcza również polecenia modyfikujące dane dla zgodności z obecną usługą.
|
Dla Optimy odpowiednikiem jest `config/optima.json`. Sekcja `optima` zawiera
|
||||||
|
ścieżkę instalacji, nazwę firmy widoczną podczas logowania, operatora, hasło,
|
||||||
|
symbol definicji dokumentu (domyślnie `RO`), liczbowy identyfikator magazynu i tryb
|
||||||
|
`Buffer` albo `Approved`. `companyErpId` jest liczbowym `Knt_KntId`, a
|
||||||
|
`warehouseErpId` liczbowym identyfikatorem magazynu. Paczka zawiera wyłącznie
|
||||||
|
`optima.json.sample`.
|
||||||
|
|
||||||
|
Uzupełnij pola `enova.operator`, `enova.password` i `sql.connectionString` bezpośrednio w lokalnym pliku `config/enova.json`. Adapter rejestruje bazę Enovy tylko w pamięci procesu na podstawie `sql.connectionString`; baza nie musi być wcześniej dodana do listy baz w profilu użytkownika Windows, a dane połączenia nie są przez usługę zapisywane w plikach Enovy. Pole `enova.database` jest nazwą tego wpisu w procesie i może odpowiadać nazwie bazy z connection stringa. Parametr `sentry.dsn` wskazuje projekt Sentry; pusty lub pominięty DSN wyłącza wysyłanie błędów. Jeżeli operator lub hasło Enovy nie są podane, usługa nie loguje się do bazy Enovy i nie rejestruje endpointu `eu.smartb2b.place_order`; endpoint SQL oraz diagnostyka pozostają dostępne. Po zmianie konfiguracji trzeba zrestartować usługę. Konto z `sql.connectionString` musi mieć uprawnienia wymagane do pracy Enovy oraz do zapytań `sql_raw`; `sql_raw` celowo dopuszcza również polecenia modyfikujące dane dla zgodności z obecną usługą.
|
||||||
|
|
||||||
## Budowanie i testy
|
## Budowanie i testy
|
||||||
|
|
||||||
Z katalogu głównego repozytorium, przy zainstalowanym SDK .NET 8:
|
Z katalogu głównego repozytorium, przy zainstalowanym SDK .NET 8:
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
dotnet restore .\SmartB2B.EnovaSync.sln --configfile .\NuGet.Config
|
dotnet restore .\SmartB2B.Sync.sln --configfile .\NuGet.Config
|
||||||
dotnet build .\SmartB2B.EnovaSync.sln --no-restore
|
dotnet build .\SmartB2B.Sync.sln --no-restore
|
||||||
dotnet run --project .\tests\SmartB2B.Enova.Tests --no-build --no-restore
|
dotnet run --project .\tests\SmartB2B.Enova.Tests --no-build --no-restore
|
||||||
|
dotnet run --project .\tests\SmartB2B.Optima.Tests --no-build --no-restore
|
||||||
```
|
```
|
||||||
|
|
||||||
Ostrzeżenie `NU1603` dotyczące `Soneta.Generator` jest takie samo jak w działającym prototypie `test1` i nie blokuje kompilacji.
|
Ostrzeżenie `NU1603` dotyczące `Soneta.Generator` jest takie samo jak w działającym prototypie `test1` i nie blokuje kompilacji.
|
||||||
@@ -34,27 +50,67 @@ Kontrola konfiguracji i dynamicznego ładowania, bez zapisu do bazy:
|
|||||||
.\src\SmartB2B.Enova.Service\bin\Debug\net8.0\SmartB2B.Enova.Service.exe --config .\src\SmartB2B.Enova.Service\bin\Debug\net8.0\config\enova.json.sample --check-config
|
.\src\SmartB2B.Enova.Service\bin\Debug\net8.0\SmartB2B.Enova.Service.exe --config .\src\SmartB2B.Enova.Service\bin\Debug\net8.0\config\enova.json.sample --check-config
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Dla Optimy `--check-config` sprawdza zgodność architektury procesu z `op_base.dll`, rejestrację COM
|
||||||
|
`CDNBase.Application`, wersję instalacji, połączenie SQL oraz logowanie i utworzenie
|
||||||
|
sesji. Nie zapisuje dokumentu. Pełne sprawdzenie wymaga gotowej bazy i prawdziwego
|
||||||
|
operatora:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
.\release-optima\SmartB2B.Optima.Service.exe --config .\release-optima\config\optima.json --check-config
|
||||||
|
```
|
||||||
|
|
||||||
|
Szczegółowe logowanie włącza parametr `/debug` albo `/verbose` (obsługiwane są też
|
||||||
|
warianty `--debug` i `--verbose`). Wyłącza je brak parametru lub jawny parametr
|
||||||
|
`/nodebug` albo `/noverbose`. Błędy są zapisywane do `stderr` niezależnie od tego
|
||||||
|
ustawienia. W usłudze Windows parametr można włączyć przez odkomentowanie elementu
|
||||||
|
`<arguments>/verbose</arguments>` w `daemon-enova/smartb2bsync-enova.xml` i restart usługi.
|
||||||
|
|
||||||
|
W trybie szczegółowym zapis ZO raportuje kolejne etapy: walidację żądania, logowanie
|
||||||
|
do Enovy, wyszukanie definicji, kontrahenta, magazynu i towarów, commit transakcji
|
||||||
|
oraz `session.Save()`. Sentry zawsze wypisuje błędy własnego transportu, a w trybie
|
||||||
|
szczegółowym również przebieg kolejkowania i wysyłania zdarzenia. Przy starcie usługa
|
||||||
|
podaje używany cel Sentry bez ujawniania klucza DSN. Jeżeli lokalny `config/enova.json`
|
||||||
|
nie zawiera `sentry.dsn`, usługa wypisuje dokładną ścieżkę używanego pliku. Aktualizacja
|
||||||
|
nie kopiuje tej wartości automatycznie z `enova.json.sample` do istniejącej konfiguracji.
|
||||||
|
|
||||||
## Publikacja i instalacja
|
## Publikacja i instalacja
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
.\publish.ps1
|
.\publish-enova.ps1
|
||||||
```
|
```
|
||||||
|
|
||||||
Skrypt odtwarza katalog `release` z hostem, adapterem, wzorcem konfiguracji i WinSW. Repozytorium zawiera również gotowy, skompilowany katalog `release`, więc na komputerze produkcyjnym nie trzeba instalować SDK. Przed instalacją:
|
Paczka Optimy jest domyślnie samodzielnym buildem `win-x86`, zgodnym z 32-bitową
|
||||||
|
biblioteką COM na stanowisku produkcyjnym, i nie wymaga instalowania runtime .NET.
|
||||||
|
Nie zawiera bibliotek ani licencji Comarch:
|
||||||
|
|
||||||
1. Skopiuj katalog `release` na komputer produkcyjny. Możesz skopiować `release/config/enova.json.sample` do `release/config/enova.json` i uzupełnić go przed instalacją; jeżeli tego nie zrobisz, `install.cmd` utworzy plik automatycznie.
|
```powershell
|
||||||
2. Uzupełnij w `release/config/enova.json` hasło operatora i connection string SQL.
|
.\publish-optima.ps1
|
||||||
|
```
|
||||||
|
|
||||||
|
Architektura procesu musi być identyczna z architekturą `op_base.dll` w katalogu
|
||||||
|
Optimy. Dla instalacji z 64-bitową biblioteką COM zbuduj osobną paczkę poleceniem
|
||||||
|
`.\publish-optima.ps1 -Architecture x64`. Jedna paczka nie obsługuje obu wariantów,
|
||||||
|
ponieważ COM Optimy jest ładowany bezpośrednio do procesu.
|
||||||
|
|
||||||
|
Wynik trafia do `release-optima`. Po uzupełnieniu `config/optima.json` instalację
|
||||||
|
wykonuje `release-optima/daemon/install.cmd`. Usługa ma identyfikator
|
||||||
|
`smartb2bsync-optima`.
|
||||||
|
|
||||||
|
Skrypt odtwarza katalog `release-enova` z hostem, adapterem, wzorcem konfiguracji i WinSW. Repozytorium zawiera również gotowy, skompilowany katalog `release-enova`, więc na komputerze produkcyjnym nie trzeba instalować SDK. Przed instalacją:
|
||||||
|
|
||||||
|
1. Skopiuj katalog `release-enova` na komputer produkcyjny. Możesz skopiować `release-enova/config/enova.json.sample` do `release-enova/config/enova.json` i uzupełnić go przed instalacją; jeżeli tego nie zrobisz, `install.cmd` utworzy plik automatycznie.
|
||||||
|
2. Uzupełnij w `release-enova/config/enova.json` hasło operatora i connection string SQL.
|
||||||
3. Zatrzymaj starą usługę Node dla tego samego portalu WAMP.
|
3. Zatrzymaj starą usługę Node dla tego samego portalu WAMP.
|
||||||
4. Skonfiguruj usługę do pracy pod dedykowanym kontem Windows, które potrafi uruchomić Enovę, widzi jej bazę i licencję.
|
4. Skonfiguruj usługę do pracy pod dedykowanym kontem Windows, które potrafi uruchomić Enovę i ma dostęp do jej licencji. Lista baz zapisana w profilu tego konta nie jest wymagana.
|
||||||
5. Jako administrator uruchom `release/daemon/install.cmd`.
|
5. Jako administrator uruchom `release-enova/daemon/install.cmd`.
|
||||||
|
|
||||||
Jeżeli usługa ma działać pod innym kontem niż `LocalSystem`, po instalacji ustaw je w `services.msc` albo poleceniem administracyjnym `sc.exe config smartb2bsync-enova obj= "DOMENA\\Użytkownik" password= "..."`, a następnie uruchom usługę ponownie.
|
Jeżeli usługa ma działać pod innym kontem niż `LocalSystem`, po instalacji ustaw je w `services.msc` albo poleceniem administracyjnym `sc.exe config smartb2bsync-enova obj= "DOMENA\\Użytkownik" password= "..."`, a następnie uruchom usługę ponownie.
|
||||||
|
|
||||||
Wycofanie polega na uruchomieniu `daemon/uninstall.cmd` i ponownym uruchomieniu dotychczasowej usługi Node. Nie ma migracji schematu bazy.
|
Wycofanie polega na uruchomieniu `release-enova/daemon/uninstall.cmd` i ponownym uruchomieniu dotychczasowej usługi Node. Nie ma migracji schematu bazy.
|
||||||
|
|
||||||
## Procedury WAMP
|
## Procedury WAMP
|
||||||
|
|
||||||
- `eu.smartb2b.place_order` przyjmuje `currency_iso`, `companyErpId`, `warehouseErpId`, `purchase_order_number`, `notes` i `lines[]` z polami `symbol`, `quantity`, `price_netto`, `discount`. Wynik jest zwracany jako kwargs: `order_erp_id`, `order_erp_symbol`, `value_netto`, `value_brutto`, `stocks`.
|
- `eu.smartb2b.place_order` przyjmuje `currency_iso`, `companyErpId`, `warehouseErpId`, `purchase_order_number`, `notes` i `lines[]` z polami `symbol`, `quantity`, opcjonalnymi `price_netto` i `price_brutto` oraz `discount`. Enova wymaga `price_netto`; Optima wybiera cenę zgodnie z `TypNB` definicji dokumentu. Wynik jest zwracany jako kwargs: `order_erp_id`, `order_erp_symbol`, `value_netto`, `value_brutto`, `stocks`.
|
||||||
- `eu.smartb2b.sql_raw` przyjmuje `query` i opcjonalne `params`; parametry odpowiadają kolejno `@1`, `@2`, itd. Wynik ma pola `recordsets`, `recordset`, `output`, `rowsAffected`.
|
- `eu.smartb2b.sql_raw` przyjmuje `query` i opcjonalne `params`; parametry odpowiadają kolejno `@1`, `@2`, itd. Wynik ma pola `recordsets`, `recordset`, `output`, `rowsAffected`.
|
||||||
- Diagnostyka: `eu.smartb2b.sync.get_version`, `get_info`, `get_log`, `get_error_log`.
|
- Diagnostyka: `eu.smartb2b.sync.get_version`, `get_info`, `get_log`, `get_error_log`.
|
||||||
|
|
||||||
@@ -62,4 +118,4 @@ Kod produkcyjny, testy oraz gotowa wersja instalacyjna znajdują się w tym repo
|
|||||||
|
|
||||||
## Automatyczne aktualizacje
|
## Automatyczne aktualizacje
|
||||||
|
|
||||||
Przy starcie WinSW pobiera pliki aplikacji z `https://demo.smartb2b.eu/files/smartb2b-sync-enova/` zgodnie z listą `<download>` w `daemon/smartb2bsync-enova.xml`. Aktualizowane są program, biblioteki, adapter Enovy, skrypty, manifest usługi i `config/enova.json.sample`. Lokalny `config/enova.json` nie występuje na liście i nie jest nadpisywany. Sam `smartb2bsync-enova.exe` jest programem rozruchowym WinSW, dlatego nie aktualizuje samego siebie podczas pracy. `publish.ps1` porównuje zawartość gotowej paczki z manifestem i przerywa publikowanie, jeżeli którejkolwiek pozycji brakuje po jednej ze stron.
|
Przy starcie WinSW pobiera pliki aplikacji z `https://demo.smartb2b.eu/files/smartb2b-sync-enova/` zgodnie z listą `<download>` w `daemon-enova/smartb2bsync-enova.xml`. Aktualizowane są program, biblioteki, adapter Enovy, skrypty, manifest usługi i `config/enova.json.sample`. Lokalny `config/enova.json` nie występuje na liście i nie jest nadpisywany. Sam `smartb2bsync-enova.exe` jest programem rozruchowym WinSW, dlatego nie aktualizuje samego siebie podczas pracy. `publish-enova.ps1` porównuje zawartość gotowej paczki z manifestem i przerywa publikowanie, jeżeli którejkolwiek pozycji brakuje po jednej ze stron.
|
||||||
|
|||||||
@@ -1,36 +0,0 @@
|
|||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
||||||
# Visual Studio Version 17
|
|
||||||
VisualStudioVersion = 17.11.35327.3
|
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartB2B.Enova.Contracts", "src\SmartB2B.Enova.Contracts\SmartB2B.Enova.Contracts.csproj", "{83EEA218-71A0-4E45-9572-B53767A3BC26}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartB2B.Enova.Adapter", "src\SmartB2B.Enova.Adapter\SmartB2B.Enova.Adapter.csproj", "{64C5439F-00AA-48F9-9A9B-DAE69DB0BC57}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartB2B.Enova.Service", "src\SmartB2B.Enova.Service\SmartB2B.Enova.Service.csproj", "{3473BD53-A2B9-46A8-AEE8-F087F373DF2B}"
|
|
||||||
EndProject
|
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartB2B.Enova.Tests", "tests\SmartB2B.Enova.Tests\SmartB2B.Enova.Tests.csproj", "{842D10FD-D5FC-4AF9-8D72-619BF6EE10C2}"
|
|
||||||
EndProject
|
|
||||||
Global
|
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
||||||
Debug|Any CPU = Debug|Any CPU
|
|
||||||
Release|Any CPU = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
||||||
{83EEA218-71A0-4E45-9572-B53767A3BC26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{83EEA218-71A0-4E45-9572-B53767A3BC26}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{83EEA218-71A0-4E45-9572-B53767A3BC26}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{83EEA218-71A0-4E45-9572-B53767A3BC26}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{64C5439F-00AA-48F9-9A9B-DAE69DB0BC57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{64C5439F-00AA-48F9-9A9B-DAE69DB0BC57}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{64C5439F-00AA-48F9-9A9B-DAE69DB0BC57}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{64C5439F-00AA-48F9-9A9B-DAE69DB0BC57}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{3473BD53-A2B9-46A8-AEE8-F087F373DF2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{3473BD53-A2B9-46A8-AEE8-F087F373DF2B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{3473BD53-A2B9-46A8-AEE8-F087F373DF2B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{3473BD53-A2B9-46A8-AEE8-F087F373DF2B}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{842D10FD-D5FC-4AF9-8D72-619BF6EE10C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{842D10FD-D5FC-4AF9-8D72-619BF6EE10C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{842D10FD-D5FC-4AF9-8D72-619BF6EE10C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{842D10FD-D5FC-4AF9-8D72-619BF6EE10C2}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
|
||||||
EndGlobal
|
|
||||||
71
SmartB2B.Sync.sln
Normal file
71
SmartB2B.Sync.sln
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 17
|
||||||
|
VisualStudioVersion = 17.11.35327.3
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartB2B.Sync.Contracts", "src\SmartB2B.Sync.Contracts\SmartB2B.Sync.Contracts.csproj", "{83EEA218-71A0-4E45-9572-B53767A3BC26}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartB2B.Sync.Service", "src\SmartB2B.Sync.Service\SmartB2B.Sync.Service.csproj", "{D52B9C80-C6F4-4E0B-B3B8-17F6A8FD88E5}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartB2B.Enova.Adapter", "src\SmartB2B.Enova.Adapter\SmartB2B.Enova.Adapter.csproj", "{64C5439F-00AA-48F9-9A9B-DAE69DB0BC57}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartB2B.Enova.Service", "src\SmartB2B.Enova.Service\SmartB2B.Enova.Service.csproj", "{3473BD53-A2B9-46A8-AEE8-F087F373DF2B}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartB2B.Optima.Adapter", "src\SmartB2B.Optima.Adapter\SmartB2B.Optima.Adapter.csproj", "{7C9A4077-0EB1-4E87-A202-99219EBE9BDF}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartB2B.Optima.Service", "src\SmartB2B.Optima.Service\SmartB2B.Optima.Service.csproj", "{A0DA9C63-98D1-47AA-B491-E101D6131B0B}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartB2B.Enova.Tests", "tests\SmartB2B.Enova.Tests\SmartB2B.Enova.Tests.csproj", "{842D10FD-D5FC-4AF9-8D72-619BF6EE10C2}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartB2B.Optima.Tests", "tests\SmartB2B.Optima.Tests\SmartB2B.Optima.Tests.csproj", "{1F6B3CB3-141D-4438-B43B-B3B6CA80A483}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{83B01DA9-7F49-48C8-AB20-E9814B7093DA}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SmartB2B.Optima.IntegrationTests", "tests\SmartB2B.Optima.IntegrationTests\SmartB2B.Optima.IntegrationTests.csproj", "{9BDCCB4C-12DD-4CCF-A628-F30721ACC2C9}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{83EEA218-71A0-4E45-9572-B53767A3BC26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{83EEA218-71A0-4E45-9572-B53767A3BC26}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{83EEA218-71A0-4E45-9572-B53767A3BC26}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{83EEA218-71A0-4E45-9572-B53767A3BC26}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{D52B9C80-C6F4-4E0B-B3B8-17F6A8FD88E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{D52B9C80-C6F4-4E0B-B3B8-17F6A8FD88E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{D52B9C80-C6F4-4E0B-B3B8-17F6A8FD88E5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{D52B9C80-C6F4-4E0B-B3B8-17F6A8FD88E5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{64C5439F-00AA-48F9-9A9B-DAE69DB0BC57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{64C5439F-00AA-48F9-9A9B-DAE69DB0BC57}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{64C5439F-00AA-48F9-9A9B-DAE69DB0BC57}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{64C5439F-00AA-48F9-9A9B-DAE69DB0BC57}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{3473BD53-A2B9-46A8-AEE8-F087F373DF2B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{3473BD53-A2B9-46A8-AEE8-F087F373DF2B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{3473BD53-A2B9-46A8-AEE8-F087F373DF2B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{3473BD53-A2B9-46A8-AEE8-F087F373DF2B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{7C9A4077-0EB1-4E87-A202-99219EBE9BDF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{7C9A4077-0EB1-4E87-A202-99219EBE9BDF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{7C9A4077-0EB1-4E87-A202-99219EBE9BDF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{7C9A4077-0EB1-4E87-A202-99219EBE9BDF}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{A0DA9C63-98D1-47AA-B491-E101D6131B0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{A0DA9C63-98D1-47AA-B491-E101D6131B0B}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{A0DA9C63-98D1-47AA-B491-E101D6131B0B}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{A0DA9C63-98D1-47AA-B491-E101D6131B0B}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{842D10FD-D5FC-4AF9-8D72-619BF6EE10C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{842D10FD-D5FC-4AF9-8D72-619BF6EE10C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{842D10FD-D5FC-4AF9-8D72-619BF6EE10C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{842D10FD-D5FC-4AF9-8D72-619BF6EE10C2}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{1F6B3CB3-141D-4438-B43B-B3B6CA80A483}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{1F6B3CB3-141D-4438-B43B-B3B6CA80A483}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{1F6B3CB3-141D-4438-B43B-B3B6CA80A483}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{1F6B3CB3-141D-4438-B43B-B3B6CA80A483}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{9BDCCB4C-12DD-4CCF-A628-F30721ACC2C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{9BDCCB4C-12DD-4CCF-A628-F30721ACC2C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{9BDCCB4C-12DD-4CCF-A628-F30721ACC2C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{9BDCCB4C-12DD-4CCF-A628-F30721ACC2C9}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(NestedProjects) = preSolution
|
||||||
|
{9BDCCB4C-12DD-4CCF-A628-F30721ACC2C9} = {83B01DA9-7F49-48C8-AB20-E9814B7093DA}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
@@ -3,7 +3,7 @@ setlocal
|
|||||||
cd /d "%~dp0"
|
cd /d "%~dp0"
|
||||||
|
|
||||||
if not exist "smartb2bsync-enova.exe" (
|
if not exist "smartb2bsync-enova.exe" (
|
||||||
echo Brak smartb2bsync-enova.exe. Najpierw uruchom publish.ps1.
|
echo Brak smartb2bsync-enova.exe. Najpierw uruchom publish-enova.ps1.
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
|
|
||||||
94
daemon-enova/smartb2bsync-enova.xml
Normal file
94
daemon-enova/smartb2bsync-enova.xml
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
<service>
|
||||||
|
<id>smartb2bsync-enova</id>
|
||||||
|
<name>SmartB2B SYNC - enova365</name>
|
||||||
|
<description>Synchronizuje enova365 z portalem SmartB2B.</description>
|
||||||
|
<executable>%BASE%\..\SmartB2B.Enova.Service.exe</executable>
|
||||||
|
<workingdirectory>%BASE%\..</workingdirectory>
|
||||||
|
<!-- Odkomentuj, aby włączyć logowanie etapów Enovy i diagnostykę Sentry. -->
|
||||||
|
<!-- <arguments>/verbose</arguments> -->
|
||||||
|
<stoptimeout>30sec</stoptimeout>
|
||||||
|
<log mode="roll-by-time">
|
||||||
|
<pattern>yyyyMMdd</pattern>
|
||||||
|
</log>
|
||||||
|
<onfailure action="restart" delay="10 sec" />
|
||||||
|
<delayedAutoStart />
|
||||||
|
|
||||||
|
<!--
|
||||||
|
WinSW pobiera te pliki przed uruchomieniem usługi. Lokalny plik
|
||||||
|
config\enova.json nie jest aktualizowany; odświeżany jest wyłącznie wzorzec.
|
||||||
|
smartb2bsync-enova.exe jest programem rozruchowym WinSW i nie może nadpisać
|
||||||
|
samego siebie podczas pracy.
|
||||||
|
-->
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/daemon/smartb2bsync-enova.xml" to="%BASE%\smartb2bsync-enova.xml" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/daemon/install.cmd" to="%BASE%\install.cmd" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/daemon/uninstall.cmd" to="%BASE%\uninstall.cmd" failOnError="false" />
|
||||||
|
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Enova.Service.exe" to="%BASE%\..\SmartB2B.Enova.Service.exe" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Enova.Service.dll" to="%BASE%\..\SmartB2B.Enova.Service.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Enova.Service.deps.json" to="%BASE%\..\SmartB2B.Enova.Service.deps.json" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Enova.Service.runtimeconfig.json" to="%BASE%\..\SmartB2B.Enova.Service.runtimeconfig.json" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Enova.Service.pdb" to="%BASE%\..\SmartB2B.Enova.Service.pdb" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Sync.Contracts.dll" to="%BASE%\..\SmartB2B.Sync.Contracts.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Sync.Contracts.pdb" to="%BASE%\..\SmartB2B.Sync.Contracts.pdb" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Sync.Service.dll" to="%BASE%\..\SmartB2B.Sync.Service.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Sync.Service.pdb" to="%BASE%\..\SmartB2B.Sync.Service.pdb" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/adapters/SmartB2B.Enova.Adapter.dll" to="%BASE%\..\adapters\SmartB2B.Enova.Adapter.dll" failOnError="false" />
|
||||||
|
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Azure.Core.dll" to="%BASE%\..\Azure.Core.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Azure.Identity.dll" to="%BASE%\..\Azure.Identity.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.Bcl.AsyncInterfaces.dll" to="%BASE%\..\Microsoft.Bcl.AsyncInterfaces.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.Bcl.Memory.dll" to="%BASE%\..\Microsoft.Bcl.Memory.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.Data.SqlClient.dll" to="%BASE%\..\Microsoft.Data.SqlClient.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.Extensions.DependencyInjection.Abstractions.dll" to="%BASE%\..\Microsoft.Extensions.DependencyInjection.Abstractions.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.Extensions.Logging.Abstractions.dll" to="%BASE%\..\Microsoft.Extensions.Logging.Abstractions.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.Identity.Client.dll" to="%BASE%\..\Microsoft.Identity.Client.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.Identity.Client.Extensions.Msal.dll" to="%BASE%\..\Microsoft.Identity.Client.Extensions.Msal.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.IdentityModel.Abstractions.dll" to="%BASE%\..\Microsoft.IdentityModel.Abstractions.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.IdentityModel.JsonWebTokens.dll" to="%BASE%\..\Microsoft.IdentityModel.JsonWebTokens.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.IdentityModel.Logging.dll" to="%BASE%\..\Microsoft.IdentityModel.Logging.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.IdentityModel.Protocols.dll" to="%BASE%\..\Microsoft.IdentityModel.Protocols.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll" to="%BASE%\..\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.IdentityModel.Tokens.dll" to="%BASE%\..\Microsoft.IdentityModel.Tokens.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.SqlServer.Server.dll" to="%BASE%\..\Microsoft.SqlServer.Server.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.ClientModel.dll" to="%BASE%\..\System.ClientModel.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.Configuration.ConfigurationManager.dll" to="%BASE%\..\System.Configuration.ConfigurationManager.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.Diagnostics.EventLog.dll" to="%BASE%\..\System.Diagnostics.EventLog.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.IdentityModel.Tokens.Jwt.dll" to="%BASE%\..\System.IdentityModel.Tokens.Jwt.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.Memory.Data.dll" to="%BASE%\..\System.Memory.Data.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.Runtime.Caching.dll" to="%BASE%\..\System.Runtime.Caching.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.Security.Cryptography.ProtectedData.dll" to="%BASE%\..\System.Security.Cryptography.ProtectedData.dll" failOnError="false" />
|
||||||
|
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/de/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\de\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/es/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\es\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/fr/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\fr\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/it/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\it\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/ja/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\ja\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/ko/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\ko\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/pt-BR/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\pt-BR\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/ru/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\ru\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/zh-Hans/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\zh-Hans\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/zh-Hant/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\zh-Hant\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/runtimes/unix/lib/net8.0/Microsoft.Data.SqlClient.dll" to="%BASE%\..\runtimes\unix\lib\net8.0\Microsoft.Data.SqlClient.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/runtimes/win/lib/net8.0/Microsoft.Data.SqlClient.dll" to="%BASE%\..\runtimes\win\lib\net8.0\Microsoft.Data.SqlClient.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll" to="%BASE%\..\runtimes\win\lib\net8.0\System.Diagnostics.EventLog.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll" to="%BASE%\..\runtimes\win\lib\net8.0\System.Diagnostics.EventLog.Messages.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/runtimes/win/lib/net8.0/System.Runtime.Caching.dll" to="%BASE%\..\runtimes\win\lib\net8.0\System.Runtime.Caching.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/runtimes/win-arm/native/Microsoft.Data.SqlClient.SNI.dll" to="%BASE%\..\runtimes\win-arm\native\Microsoft.Data.SqlClient.SNI.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll" to="%BASE%\..\runtimes\win-arm64\native\Microsoft.Data.SqlClient.SNI.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll" to="%BASE%\..\runtimes\win-x64\native\Microsoft.Data.SqlClient.SNI.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll" to="%BASE%\..\runtimes\win-x86\native\Microsoft.Data.SqlClient.SNI.dll" failOnError="false" />
|
||||||
|
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Newtonsoft.Json.dll" to="%BASE%\..\Newtonsoft.Json.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/NewtonsoftMessagePack.dll" to="%BASE%\..\NewtonsoftMessagePack.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Sentry.dll" to="%BASE%\..\Sentry.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.Reactive.dll" to="%BASE%\..\System.Reactive.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.Runtime.InteropServices.WindowsRuntime.dll" to="%BASE%\..\System.Runtime.InteropServices.WindowsRuntime.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/WampSharp.dll" to="%BASE%\..\WampSharp.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/WampSharp.Default.Client.dll" to="%BASE%\..\WampSharp.Default.Client.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/WampSharp.NewtonsoftJson.dll" to="%BASE%\..\WampSharp.NewtonsoftJson.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/WampSharp.NewtonsoftMessagePack.dll" to="%BASE%\..\WampSharp.NewtonsoftMessagePack.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/WampSharp.WebSockets.dll" to="%BASE%\..\WampSharp.WebSockets.dll" failOnError="false" />
|
||||||
|
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/config/enova.json.sample" to="%BASE%\..\config\enova.json.sample" failOnError="false" />
|
||||||
|
</service>
|
||||||
24
daemon-optima/install.cmd
Normal file
24
daemon-optima/install.cmd
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
@echo off
|
||||||
|
setlocal
|
||||||
|
cd /d "%~dp0"
|
||||||
|
|
||||||
|
if not exist "smartb2bsync-optima.exe" (
|
||||||
|
echo Brak smartb2bsync-optima.exe. Najpierw uruchom publish-optima.ps1.
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
if not exist "..\config" mkdir "..\config"
|
||||||
|
if not exist "..\config\optima.json" (
|
||||||
|
if not exist "..\config\optima.json.sample" (
|
||||||
|
echo Brak ..\config\optima.json.sample.
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
copy /Y "..\config\optima.json.sample" "..\config\optima.json" >nul
|
||||||
|
echo Utworzono lokalna konfiguracje ..\config\optima.json.
|
||||||
|
)
|
||||||
|
|
||||||
|
smartb2bsync-optima.exe install
|
||||||
|
if errorlevel 1 exit /b %errorlevel%
|
||||||
|
|
||||||
|
smartb2bsync-optima.exe start
|
||||||
|
exit /b %errorlevel%
|
||||||
14
daemon-optima/smartb2bsync-optima.xml
Normal file
14
daemon-optima/smartb2bsync-optima.xml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
<service>
|
||||||
|
<id>smartb2bsync-optima</id>
|
||||||
|
<name>SmartB2B SYNC - Comarch ERP Optima</name>
|
||||||
|
<description>Synchronizuje Comarch ERP Optima z portalem SmartB2B.</description>
|
||||||
|
<executable>%BASE%\..\SmartB2B.Optima.Service.exe</executable>
|
||||||
|
<workingdirectory>%BASE%\..</workingdirectory>
|
||||||
|
<!-- <arguments>/verbose</arguments> -->
|
||||||
|
<stoptimeout>45sec</stoptimeout>
|
||||||
|
<log mode="roll-by-time">
|
||||||
|
<pattern>yyyyMMdd</pattern>
|
||||||
|
</log>
|
||||||
|
<onfailure action="restart" delay="10 sec" />
|
||||||
|
<delayedAutoStart />
|
||||||
|
</service>
|
||||||
7
daemon-optima/uninstall.cmd
Normal file
7
daemon-optima/uninstall.cmd
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
@echo off
|
||||||
|
setlocal
|
||||||
|
cd /d "%~dp0"
|
||||||
|
|
||||||
|
smartb2bsync-optima.exe stop
|
||||||
|
smartb2bsync-optima.exe uninstall
|
||||||
|
exit /b %errorlevel%
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
<service>
|
|
||||||
<id>smartb2bsync-enova</id>
|
|
||||||
<name>SmartB2B SYNC - enova365</name>
|
|
||||||
<description>Synchronizuje enova365 z portalem SmartB2B.</description>
|
|
||||||
<executable>%BASE%\..\SmartB2B.Enova.Service.exe</executable>
|
|
||||||
<workingdirectory>%BASE%\..</workingdirectory>
|
|
||||||
<stoptimeout>30sec</stoptimeout>
|
|
||||||
<log mode="roll-by-time">
|
|
||||||
<pattern>yyyyMMdd</pattern>
|
|
||||||
</log>
|
|
||||||
<onfailure action="restart" delay="10 sec" />
|
|
||||||
<delayedAutoStart />
|
|
||||||
|
|
||||||
<!--
|
|
||||||
WinSW pobiera te pliki przed uruchomieniem usługi. Lokalny plik
|
|
||||||
config\enova.json nie jest aktualizowany; odświeżany jest wyłącznie wzorzec.
|
|
||||||
smartb2bsync-enova.exe jest programem rozruchowym WinSW i nie może nadpisać
|
|
||||||
samego siebie podczas pracy.
|
|
||||||
-->
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/daemon/smartb2bsync-enova.xml" to="%BASE%\smartb2bsync-enova.xml" failOnError="false" />
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/daemon/install.cmd" to="%BASE%\install.cmd" failOnError="false" />
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/daemon/uninstall.cmd" to="%BASE%\uninstall.cmd" failOnError="false" />
|
|
||||||
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Enova.Service.exe" to="%BASE%\..\SmartB2B.Enova.Service.exe" failOnError="false" />
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Enova.Service.dll" to="%BASE%\..\SmartB2B.Enova.Service.dll" failOnError="false" />
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Enova.Service.deps.json" to="%BASE%\..\SmartB2B.Enova.Service.deps.json" failOnError="false" />
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Enova.Service.runtimeconfig.json" to="%BASE%\..\SmartB2B.Enova.Service.runtimeconfig.json" failOnError="false" />
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Enova.Service.pdb" to="%BASE%\..\SmartB2B.Enova.Service.pdb" failOnError="false" />
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Enova.Contracts.dll" to="%BASE%\..\SmartB2B.Enova.Contracts.dll" failOnError="false" />
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Enova.Contracts.pdb" to="%BASE%\..\SmartB2B.Enova.Contracts.pdb" failOnError="false" />
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/adapters/SmartB2B.Enova.Adapter.dll" to="%BASE%\..\adapters\SmartB2B.Enova.Adapter.dll" failOnError="false" />
|
|
||||||
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Newtonsoft.Json.dll" to="%BASE%\..\Newtonsoft.Json.dll" failOnError="false" />
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/NewtonsoftMessagePack.dll" to="%BASE%\..\NewtonsoftMessagePack.dll" failOnError="false" />
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.Reactive.dll" to="%BASE%\..\System.Reactive.dll" failOnError="false" />
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.Runtime.InteropServices.WindowsRuntime.dll" to="%BASE%\..\System.Runtime.InteropServices.WindowsRuntime.dll" failOnError="false" />
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/WampSharp.dll" to="%BASE%\..\WampSharp.dll" failOnError="false" />
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/WampSharp.Default.Client.dll" to="%BASE%\..\WampSharp.Default.Client.dll" failOnError="false" />
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/WampSharp.NewtonsoftJson.dll" to="%BASE%\..\WampSharp.NewtonsoftJson.dll" failOnError="false" />
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/WampSharp.NewtonsoftMessagePack.dll" to="%BASE%\..\WampSharp.NewtonsoftMessagePack.dll" failOnError="false" />
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/WampSharp.WebSockets.dll" to="%BASE%\..\WampSharp.WebSockets.dll" failOnError="false" />
|
|
||||||
|
|
||||||
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/config/enova.json.sample" to="%BASE%\..\config\enova.json.sample" failOnError="false" />
|
|
||||||
</service>
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
param(
|
param(
|
||||||
[string]$OutputPath = (Join-Path $PSScriptRoot "release"),
|
[string]$OutputPath = (Join-Path $PSScriptRoot "release-enova"),
|
||||||
[ValidateSet("Debug", "Release")]
|
[ValidateSet("Debug", "Release")]
|
||||||
[string]$Configuration = "Release"
|
[string]$Configuration = "Release"
|
||||||
)
|
)
|
||||||
@@ -10,19 +10,18 @@ $env:APPDATA = $PSScriptRoot
|
|||||||
$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = "1"
|
$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = "1"
|
||||||
$env:DOTNET_CLI_TELEMETRY_OPTOUT = "1"
|
$env:DOTNET_CLI_TELEMETRY_OPTOUT = "1"
|
||||||
|
|
||||||
$bundledDotnet = Join-Path $PSScriptRoot "..\..\..\test1\.dotnet\dotnet.exe"
|
$dotnet = (Get-Command dotnet -ErrorAction Stop).Source
|
||||||
$dotnet = if (Test-Path -LiteralPath $bundledDotnet) {
|
|
||||||
(Resolve-Path $bundledDotnet).Path
|
|
||||||
} else {
|
|
||||||
(Get-Command dotnet -ErrorAction Stop).Source
|
|
||||||
}
|
|
||||||
$project = Join-Path $PSScriptRoot "src\SmartB2B.Enova.Service\SmartB2B.Enova.Service.csproj"
|
$project = Join-Path $PSScriptRoot "src\SmartB2B.Enova.Service\SmartB2B.Enova.Service.csproj"
|
||||||
$daemonSource = Join-Path $PSScriptRoot "daemon"
|
$adapterProject = Join-Path $PSScriptRoot "src\SmartB2B.Enova.Adapter\SmartB2B.Enova.Adapter.csproj"
|
||||||
|
$daemonSource = Join-Path $PSScriptRoot "daemon-enova"
|
||||||
$winSwSource = Resolve-Path (Join-Path $daemonSource "smartb2bsync-enova.exe")
|
$winSwSource = Resolve-Path (Join-Path $daemonSource "smartb2bsync-enova.exe")
|
||||||
$output = [System.IO.Path]::GetFullPath($OutputPath)
|
$output = [System.IO.Path]::GetFullPath($OutputPath)
|
||||||
|
$workspace = [System.IO.Path]::GetFullPath($PSScriptRoot)
|
||||||
$daemonOutput = Join-Path $output "daemon"
|
$daemonOutput = Join-Path $output "daemon"
|
||||||
|
|
||||||
if ($output -eq [System.IO.Path]::GetPathRoot($output) -or $output.Length -lt 10) {
|
if (-not $output.StartsWith($workspace, [StringComparison]::OrdinalIgnoreCase) -or
|
||||||
|
$output -eq $workspace -or
|
||||||
|
$output.Length -lt 10) {
|
||||||
throw "Niebezpieczna ścieżka wyjściowa: $output"
|
throw "Niebezpieczna ścieżka wyjściowa: $output"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -33,7 +32,12 @@ if (Test-Path -LiteralPath $output) {
|
|||||||
New-Item -ItemType Directory -Force -Path $output | Out-Null
|
New-Item -ItemType Directory -Force -Path $output | Out-Null
|
||||||
New-Item -ItemType Directory -Force -Path $daemonOutput | Out-Null
|
New-Item -ItemType Directory -Force -Path $daemonOutput | Out-Null
|
||||||
|
|
||||||
& $dotnet publish $project -c $Configuration --no-restore -o $output
|
& $dotnet restore $adapterProject
|
||||||
|
if ($LASTEXITCODE -ne 0) {
|
||||||
|
throw "Przywracanie pakietów adaptera Enovy nie powiodło się."
|
||||||
|
}
|
||||||
|
|
||||||
|
& $dotnet publish $project -c $Configuration -o $output
|
||||||
if ($LASTEXITCODE -ne 0) {
|
if ($LASTEXITCODE -ne 0) {
|
||||||
throw "Publikowanie usługi nie powiodło się."
|
throw "Publikowanie usługi nie powiodło się."
|
||||||
}
|
}
|
||||||
82
publish-optima.ps1
Normal file
82
publish-optima.ps1
Normal file
@@ -0,0 +1,82 @@
|
|||||||
|
param(
|
||||||
|
[string]$OutputPath = (Join-Path $PSScriptRoot "release-optima"),
|
||||||
|
[ValidateSet("Debug", "Release")]
|
||||||
|
[string]$Configuration = "Release",
|
||||||
|
[ValidateSet("x86", "x64")]
|
||||||
|
[string]$Architecture = "x86"
|
||||||
|
)
|
||||||
|
|
||||||
|
$ErrorActionPreference = "Stop"
|
||||||
|
$env:DOTNET_CLI_HOME = $PSScriptRoot
|
||||||
|
$env:APPDATA = $PSScriptRoot
|
||||||
|
$env:DOTNET_SKIP_FIRST_TIME_EXPERIENCE = "1"
|
||||||
|
$env:DOTNET_CLI_TELEMETRY_OPTOUT = "1"
|
||||||
|
|
||||||
|
$dotnet = (Get-Command dotnet -ErrorAction Stop).Source
|
||||||
|
|
||||||
|
$project = Join-Path $PSScriptRoot "src\SmartB2B.Optima.Service\SmartB2B.Optima.Service.csproj"
|
||||||
|
$daemonSource = Join-Path $PSScriptRoot "daemon-optima"
|
||||||
|
$winSwSource = Resolve-Path (Join-Path $daemonSource "smartb2bsync-optima.exe")
|
||||||
|
$output = [System.IO.Path]::GetFullPath($OutputPath)
|
||||||
|
$workspace = [System.IO.Path]::GetFullPath($PSScriptRoot)
|
||||||
|
$daemonOutput = Join-Path $output "daemon"
|
||||||
|
$runtimeIdentifier = "win-$Architecture"
|
||||||
|
|
||||||
|
if (-not $output.StartsWith($workspace, [StringComparison]::OrdinalIgnoreCase) -or
|
||||||
|
$output -eq $workspace -or
|
||||||
|
$output.Length -lt 10) {
|
||||||
|
throw "Niebezpieczna ścieżka wyjściowa: $output"
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Test-Path -LiteralPath $output) {
|
||||||
|
Remove-Item -LiteralPath $output -Recurse -Force
|
||||||
|
}
|
||||||
|
|
||||||
|
New-Item -ItemType Directory -Force -Path $output | Out-Null
|
||||||
|
New-Item -ItemType Directory -Force -Path $daemonOutput | Out-Null
|
||||||
|
|
||||||
|
& $dotnet publish $project -c $Configuration -r $runtimeIdentifier --self-contained true -p:PlatformTarget=$Architecture -o $output
|
||||||
|
if ($LASTEXITCODE -ne 0) {
|
||||||
|
throw "Publikowanie usługi Optimy nie powiodło się."
|
||||||
|
}
|
||||||
|
|
||||||
|
Copy-Item $winSwSource (Join-Path $daemonOutput "smartb2bsync-optima.exe") -Force
|
||||||
|
Copy-Item (Join-Path $daemonSource "smartb2bsync-optima.xml") $daemonOutput -Force
|
||||||
|
Copy-Item (Join-Path $daemonSource "install.cmd") $daemonOutput -Force
|
||||||
|
Copy-Item (Join-Path $daemonSource "uninstall.cmd") $daemonOutput -Force
|
||||||
|
|
||||||
|
$downloadBaseUrl = "https://demo.smartb2b.eu/files/smartb2b-sync-optima/"
|
||||||
|
$manifestPath = Join-Path $daemonOutput "smartb2bsync-optima.xml"
|
||||||
|
[xml]$manifest = Get-Content -Raw $manifestPath
|
||||||
|
$packagedFiles = @(
|
||||||
|
Get-ChildItem -Recurse -File $output |
|
||||||
|
ForEach-Object { $_.FullName.Substring($output.Length).TrimStart('\') } |
|
||||||
|
Where-Object { $_ -ne "daemon\smartb2bsync-optima.exe" } |
|
||||||
|
Sort-Object
|
||||||
|
)
|
||||||
|
|
||||||
|
foreach ($relativePath in $packagedFiles) {
|
||||||
|
$download = $manifest.CreateElement("download")
|
||||||
|
$urlPath = $relativePath.Replace('\', '/')
|
||||||
|
$destination = if ($relativePath.StartsWith("daemon\", [StringComparison]::OrdinalIgnoreCase)) {
|
||||||
|
"%BASE%\" + $relativePath.Substring("daemon\".Length)
|
||||||
|
} else {
|
||||||
|
"%BASE%\..\" + $relativePath
|
||||||
|
}
|
||||||
|
$download.SetAttribute("from", $downloadBaseUrl + $urlPath)
|
||||||
|
$download.SetAttribute("to", $destination)
|
||||||
|
$download.SetAttribute("failOnError", "false")
|
||||||
|
[void]$manifest.service.AppendChild($download)
|
||||||
|
}
|
||||||
|
|
||||||
|
$settings = [System.Xml.XmlWriterSettings]::new()
|
||||||
|
$settings.Indent = $true
|
||||||
|
$settings.Encoding = [System.Text.UTF8Encoding]::new($false)
|
||||||
|
$writer = [System.Xml.XmlWriter]::Create($manifestPath, $settings)
|
||||||
|
try {
|
||||||
|
$manifest.Save($writer)
|
||||||
|
} finally {
|
||||||
|
$writer.Dispose()
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Host "Gotowa usługa Optimy (self-contained $runtimeIdentifier): $output"
|
||||||
BIN
release-enova/Azure.Core.dll
Normal file
BIN
release-enova/Azure.Core.dll
Normal file
Binary file not shown.
BIN
release-enova/Azure.Identity.dll
Normal file
BIN
release-enova/Azure.Identity.dll
Normal file
Binary file not shown.
BIN
release-enova/Microsoft.Bcl.AsyncInterfaces.dll
Normal file
BIN
release-enova/Microsoft.Bcl.AsyncInterfaces.dll
Normal file
Binary file not shown.
BIN
release-enova/Microsoft.Bcl.Memory.dll
Normal file
BIN
release-enova/Microsoft.Bcl.Memory.dll
Normal file
Binary file not shown.
BIN
release-enova/Microsoft.Data.SqlClient.dll
Normal file
BIN
release-enova/Microsoft.Data.SqlClient.dll
Normal file
Binary file not shown.
Binary file not shown.
BIN
release-enova/Microsoft.Extensions.Logging.Abstractions.dll
Normal file
BIN
release-enova/Microsoft.Extensions.Logging.Abstractions.dll
Normal file
Binary file not shown.
BIN
release-enova/Microsoft.Identity.Client.Extensions.Msal.dll
Normal file
BIN
release-enova/Microsoft.Identity.Client.Extensions.Msal.dll
Normal file
Binary file not shown.
BIN
release-enova/Microsoft.Identity.Client.dll
Normal file
BIN
release-enova/Microsoft.Identity.Client.dll
Normal file
Binary file not shown.
BIN
release-enova/Microsoft.IdentityModel.Abstractions.dll
Normal file
BIN
release-enova/Microsoft.IdentityModel.Abstractions.dll
Normal file
Binary file not shown.
BIN
release-enova/Microsoft.IdentityModel.JsonWebTokens.dll
Normal file
BIN
release-enova/Microsoft.IdentityModel.JsonWebTokens.dll
Normal file
Binary file not shown.
BIN
release-enova/Microsoft.IdentityModel.Logging.dll
Normal file
BIN
release-enova/Microsoft.IdentityModel.Logging.dll
Normal file
Binary file not shown.
Binary file not shown.
BIN
release-enova/Microsoft.IdentityModel.Protocols.dll
Normal file
BIN
release-enova/Microsoft.IdentityModel.Protocols.dll
Normal file
Binary file not shown.
BIN
release-enova/Microsoft.IdentityModel.Tokens.dll
Normal file
BIN
release-enova/Microsoft.IdentityModel.Tokens.dll
Normal file
Binary file not shown.
BIN
release-enova/Microsoft.SqlServer.Server.dll
Normal file
BIN
release-enova/Microsoft.SqlServer.Server.dll
Normal file
Binary file not shown.
BIN
release-enova/Sentry.dll
Normal file
BIN
release-enova/Sentry.dll
Normal file
Binary file not shown.
1247
release-enova/SmartB2B.Enova.Service.deps.json
Normal file
1247
release-enova/SmartB2B.Enova.Service.deps.json
Normal file
File diff suppressed because it is too large
Load Diff
BIN
release-enova/SmartB2B.Enova.Service.dll
Normal file
BIN
release-enova/SmartB2B.Enova.Service.dll
Normal file
Binary file not shown.
Binary file not shown.
BIN
release-enova/SmartB2B.Enova.Service.pdb
Normal file
BIN
release-enova/SmartB2B.Enova.Service.pdb
Normal file
Binary file not shown.
BIN
release-enova/SmartB2B.Sync.Contracts.dll
Normal file
BIN
release-enova/SmartB2B.Sync.Contracts.dll
Normal file
Binary file not shown.
Binary file not shown.
BIN
release-enova/SmartB2B.Sync.Service.dll
Normal file
BIN
release-enova/SmartB2B.Sync.Service.dll
Normal file
Binary file not shown.
BIN
release-enova/SmartB2B.Sync.Service.pdb
Normal file
BIN
release-enova/SmartB2B.Sync.Service.pdb
Normal file
Binary file not shown.
BIN
release-enova/System.ClientModel.dll
Normal file
BIN
release-enova/System.ClientModel.dll
Normal file
Binary file not shown.
BIN
release-enova/System.Configuration.ConfigurationManager.dll
Normal file
BIN
release-enova/System.Configuration.ConfigurationManager.dll
Normal file
Binary file not shown.
BIN
release-enova/System.Diagnostics.EventLog.dll
Normal file
BIN
release-enova/System.Diagnostics.EventLog.dll
Normal file
Binary file not shown.
BIN
release-enova/System.IdentityModel.Tokens.Jwt.dll
Normal file
BIN
release-enova/System.IdentityModel.Tokens.Jwt.dll
Normal file
Binary file not shown.
BIN
release-enova/System.Memory.Data.dll
Normal file
BIN
release-enova/System.Memory.Data.dll
Normal file
Binary file not shown.
BIN
release-enova/System.Runtime.Caching.dll
Normal file
BIN
release-enova/System.Runtime.Caching.dll
Normal file
Binary file not shown.
BIN
release-enova/System.Security.Cryptography.ProtectedData.dll
Normal file
BIN
release-enova/System.Security.Cryptography.ProtectedData.dll
Normal file
Binary file not shown.
BIN
release-enova/adapters/SmartB2B.Enova.Adapter.dll
Normal file
BIN
release-enova/adapters/SmartB2B.Enova.Adapter.dll
Normal file
Binary file not shown.
@@ -17,6 +17,9 @@
|
|||||||
"connectionString": "Server=...;Database=...;User ID=...;Password=...;TrustServerCertificate=True",
|
"connectionString": "Server=...;Database=...;User ID=...;Password=...;TrustServerCertificate=True",
|
||||||
"commandTimeoutSeconds": 30
|
"commandTimeoutSeconds": 30
|
||||||
},
|
},
|
||||||
|
"sentry": {
|
||||||
|
"dsn": "https://9ae7cbe5e29f4a85b2a748a78e55a868@glitchtip.glebocka.synology.me/10"
|
||||||
|
},
|
||||||
"diagnostics": {
|
"diagnostics": {
|
||||||
"logDirectory": "daemon",
|
"logDirectory": "daemon",
|
||||||
"logPrefix": "smartb2bsync-enova"
|
"logPrefix": "smartb2bsync-enova"
|
||||||
@@ -3,7 +3,7 @@ setlocal
|
|||||||
cd /d "%~dp0"
|
cd /d "%~dp0"
|
||||||
|
|
||||||
if not exist "smartb2bsync-enova.exe" (
|
if not exist "smartb2bsync-enova.exe" (
|
||||||
echo Brak smartb2bsync-enova.exe. Najpierw uruchom publish.ps1.
|
echo Brak smartb2bsync-enova.exe. Najpierw uruchom publish-enova.ps1.
|
||||||
exit /b 1
|
exit /b 1
|
||||||
)
|
)
|
||||||
|
|
||||||
BIN
release-enova/daemon/smartb2bsync-enova.exe
Normal file
BIN
release-enova/daemon/smartb2bsync-enova.exe
Normal file
Binary file not shown.
94
release-enova/daemon/smartb2bsync-enova.xml
Normal file
94
release-enova/daemon/smartb2bsync-enova.xml
Normal file
@@ -0,0 +1,94 @@
|
|||||||
|
<service>
|
||||||
|
<id>smartb2bsync-enova</id>
|
||||||
|
<name>SmartB2B SYNC - enova365</name>
|
||||||
|
<description>Synchronizuje enova365 z portalem SmartB2B.</description>
|
||||||
|
<executable>%BASE%\..\SmartB2B.Enova.Service.exe</executable>
|
||||||
|
<workingdirectory>%BASE%\..</workingdirectory>
|
||||||
|
<!-- Odkomentuj, aby włączyć logowanie etapów Enovy i diagnostykę Sentry. -->
|
||||||
|
<!-- <arguments>/verbose</arguments> -->
|
||||||
|
<stoptimeout>30sec</stoptimeout>
|
||||||
|
<log mode="roll-by-time">
|
||||||
|
<pattern>yyyyMMdd</pattern>
|
||||||
|
</log>
|
||||||
|
<onfailure action="restart" delay="10 sec" />
|
||||||
|
<delayedAutoStart />
|
||||||
|
|
||||||
|
<!--
|
||||||
|
WinSW pobiera te pliki przed uruchomieniem usługi. Lokalny plik
|
||||||
|
config\enova.json nie jest aktualizowany; odświeżany jest wyłącznie wzorzec.
|
||||||
|
smartb2bsync-enova.exe jest programem rozruchowym WinSW i nie może nadpisać
|
||||||
|
samego siebie podczas pracy.
|
||||||
|
-->
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/daemon/smartb2bsync-enova.xml" to="%BASE%\smartb2bsync-enova.xml" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/daemon/install.cmd" to="%BASE%\install.cmd" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/daemon/uninstall.cmd" to="%BASE%\uninstall.cmd" failOnError="false" />
|
||||||
|
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Enova.Service.exe" to="%BASE%\..\SmartB2B.Enova.Service.exe" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Enova.Service.dll" to="%BASE%\..\SmartB2B.Enova.Service.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Enova.Service.deps.json" to="%BASE%\..\SmartB2B.Enova.Service.deps.json" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Enova.Service.runtimeconfig.json" to="%BASE%\..\SmartB2B.Enova.Service.runtimeconfig.json" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Enova.Service.pdb" to="%BASE%\..\SmartB2B.Enova.Service.pdb" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Sync.Contracts.dll" to="%BASE%\..\SmartB2B.Sync.Contracts.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Sync.Contracts.pdb" to="%BASE%\..\SmartB2B.Sync.Contracts.pdb" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Sync.Service.dll" to="%BASE%\..\SmartB2B.Sync.Service.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/SmartB2B.Sync.Service.pdb" to="%BASE%\..\SmartB2B.Sync.Service.pdb" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/adapters/SmartB2B.Enova.Adapter.dll" to="%BASE%\..\adapters\SmartB2B.Enova.Adapter.dll" failOnError="false" />
|
||||||
|
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Azure.Core.dll" to="%BASE%\..\Azure.Core.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Azure.Identity.dll" to="%BASE%\..\Azure.Identity.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.Bcl.AsyncInterfaces.dll" to="%BASE%\..\Microsoft.Bcl.AsyncInterfaces.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.Bcl.Memory.dll" to="%BASE%\..\Microsoft.Bcl.Memory.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.Data.SqlClient.dll" to="%BASE%\..\Microsoft.Data.SqlClient.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.Extensions.DependencyInjection.Abstractions.dll" to="%BASE%\..\Microsoft.Extensions.DependencyInjection.Abstractions.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.Extensions.Logging.Abstractions.dll" to="%BASE%\..\Microsoft.Extensions.Logging.Abstractions.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.Identity.Client.dll" to="%BASE%\..\Microsoft.Identity.Client.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.Identity.Client.Extensions.Msal.dll" to="%BASE%\..\Microsoft.Identity.Client.Extensions.Msal.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.IdentityModel.Abstractions.dll" to="%BASE%\..\Microsoft.IdentityModel.Abstractions.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.IdentityModel.JsonWebTokens.dll" to="%BASE%\..\Microsoft.IdentityModel.JsonWebTokens.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.IdentityModel.Logging.dll" to="%BASE%\..\Microsoft.IdentityModel.Logging.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.IdentityModel.Protocols.dll" to="%BASE%\..\Microsoft.IdentityModel.Protocols.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll" to="%BASE%\..\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.IdentityModel.Tokens.dll" to="%BASE%\..\Microsoft.IdentityModel.Tokens.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Microsoft.SqlServer.Server.dll" to="%BASE%\..\Microsoft.SqlServer.Server.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.ClientModel.dll" to="%BASE%\..\System.ClientModel.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.Configuration.ConfigurationManager.dll" to="%BASE%\..\System.Configuration.ConfigurationManager.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.Diagnostics.EventLog.dll" to="%BASE%\..\System.Diagnostics.EventLog.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.IdentityModel.Tokens.Jwt.dll" to="%BASE%\..\System.IdentityModel.Tokens.Jwt.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.Memory.Data.dll" to="%BASE%\..\System.Memory.Data.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.Runtime.Caching.dll" to="%BASE%\..\System.Runtime.Caching.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.Security.Cryptography.ProtectedData.dll" to="%BASE%\..\System.Security.Cryptography.ProtectedData.dll" failOnError="false" />
|
||||||
|
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/de/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\de\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/es/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\es\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/fr/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\fr\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/it/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\it\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/ja/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\ja\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/ko/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\ko\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/pt-BR/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\pt-BR\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/ru/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\ru\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/zh-Hans/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\zh-Hans\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/zh-Hant/Microsoft.Data.SqlClient.resources.dll" to="%BASE%\..\zh-Hant\Microsoft.Data.SqlClient.resources.dll" failOnError="false" />
|
||||||
|
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/runtimes/unix/lib/net8.0/Microsoft.Data.SqlClient.dll" to="%BASE%\..\runtimes\unix\lib\net8.0\Microsoft.Data.SqlClient.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/runtimes/win/lib/net8.0/Microsoft.Data.SqlClient.dll" to="%BASE%\..\runtimes\win\lib\net8.0\Microsoft.Data.SqlClient.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.dll" to="%BASE%\..\runtimes\win\lib\net8.0\System.Diagnostics.EventLog.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/runtimes/win/lib/net8.0/System.Diagnostics.EventLog.Messages.dll" to="%BASE%\..\runtimes\win\lib\net8.0\System.Diagnostics.EventLog.Messages.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/runtimes/win/lib/net8.0/System.Runtime.Caching.dll" to="%BASE%\..\runtimes\win\lib\net8.0\System.Runtime.Caching.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/runtimes/win-arm/native/Microsoft.Data.SqlClient.SNI.dll" to="%BASE%\..\runtimes\win-arm\native\Microsoft.Data.SqlClient.SNI.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/runtimes/win-arm64/native/Microsoft.Data.SqlClient.SNI.dll" to="%BASE%\..\runtimes\win-arm64\native\Microsoft.Data.SqlClient.SNI.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/runtimes/win-x64/native/Microsoft.Data.SqlClient.SNI.dll" to="%BASE%\..\runtimes\win-x64\native\Microsoft.Data.SqlClient.SNI.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/runtimes/win-x86/native/Microsoft.Data.SqlClient.SNI.dll" to="%BASE%\..\runtimes\win-x86\native\Microsoft.Data.SqlClient.SNI.dll" failOnError="false" />
|
||||||
|
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Newtonsoft.Json.dll" to="%BASE%\..\Newtonsoft.Json.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/NewtonsoftMessagePack.dll" to="%BASE%\..\NewtonsoftMessagePack.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/Sentry.dll" to="%BASE%\..\Sentry.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.Reactive.dll" to="%BASE%\..\System.Reactive.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/System.Runtime.InteropServices.WindowsRuntime.dll" to="%BASE%\..\System.Runtime.InteropServices.WindowsRuntime.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/WampSharp.dll" to="%BASE%\..\WampSharp.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/WampSharp.Default.Client.dll" to="%BASE%\..\WampSharp.Default.Client.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/WampSharp.NewtonsoftJson.dll" to="%BASE%\..\WampSharp.NewtonsoftJson.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/WampSharp.NewtonsoftMessagePack.dll" to="%BASE%\..\WampSharp.NewtonsoftMessagePack.dll" failOnError="false" />
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/WampSharp.WebSockets.dll" to="%BASE%\..\WampSharp.WebSockets.dll" failOnError="false" />
|
||||||
|
|
||||||
|
<download from="https://demo.smartb2b.eu/files/smartb2b-sync-enova/config/enova.json.sample" to="%BASE%\..\config\enova.json.sample" failOnError="false" />
|
||||||
|
</service>
|
||||||
BIN
release-enova/de/Microsoft.Data.SqlClient.resources.dll
Normal file
BIN
release-enova/de/Microsoft.Data.SqlClient.resources.dll
Normal file
Binary file not shown.
BIN
release-enova/es/Microsoft.Data.SqlClient.resources.dll
Normal file
BIN
release-enova/es/Microsoft.Data.SqlClient.resources.dll
Normal file
Binary file not shown.
BIN
release-enova/fr/Microsoft.Data.SqlClient.resources.dll
Normal file
BIN
release-enova/fr/Microsoft.Data.SqlClient.resources.dll
Normal file
Binary file not shown.
BIN
release-enova/it/Microsoft.Data.SqlClient.resources.dll
Normal file
BIN
release-enova/it/Microsoft.Data.SqlClient.resources.dll
Normal file
Binary file not shown.
BIN
release-enova/ja/Microsoft.Data.SqlClient.resources.dll
Normal file
BIN
release-enova/ja/Microsoft.Data.SqlClient.resources.dll
Normal file
Binary file not shown.
BIN
release-enova/ko/Microsoft.Data.SqlClient.resources.dll
Normal file
BIN
release-enova/ko/Microsoft.Data.SqlClient.resources.dll
Normal file
Binary file not shown.
BIN
release-enova/pt-BR/Microsoft.Data.SqlClient.resources.dll
Normal file
BIN
release-enova/pt-BR/Microsoft.Data.SqlClient.resources.dll
Normal file
Binary file not shown.
BIN
release-enova/ru/Microsoft.Data.SqlClient.resources.dll
Normal file
BIN
release-enova/ru/Microsoft.Data.SqlClient.resources.dll
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
release-enova/runtimes/win/lib/net8.0/System.Runtime.Caching.dll
Normal file
BIN
release-enova/runtimes/win/lib/net8.0/System.Runtime.Caching.dll
Normal file
Binary file not shown.
BIN
release-enova/zh-Hans/Microsoft.Data.SqlClient.resources.dll
Normal file
BIN
release-enova/zh-Hans/Microsoft.Data.SqlClient.resources.dll
Normal file
Binary file not shown.
BIN
release-enova/zh-Hant/Microsoft.Data.SqlClient.resources.dll
Normal file
BIN
release-enova/zh-Hant/Microsoft.Data.SqlClient.resources.dll
Normal file
Binary file not shown.
BIN
release-optima/Azure.Core.dll
Normal file
BIN
release-optima/Azure.Core.dll
Normal file
Binary file not shown.
BIN
release-optima/Azure.Identity.dll
Normal file
BIN
release-optima/Azure.Identity.dll
Normal file
Binary file not shown.
BIN
release-optima/Microsoft.Bcl.AsyncInterfaces.dll
Normal file
BIN
release-optima/Microsoft.Bcl.AsyncInterfaces.dll
Normal file
Binary file not shown.
BIN
release-optima/Microsoft.Bcl.Memory.dll
Normal file
BIN
release-optima/Microsoft.Bcl.Memory.dll
Normal file
Binary file not shown.
BIN
release-optima/Microsoft.CSharp.dll
Normal file
BIN
release-optima/Microsoft.CSharp.dll
Normal file
Binary file not shown.
BIN
release-optima/Microsoft.Data.SqlClient.SNI.dll
Normal file
BIN
release-optima/Microsoft.Data.SqlClient.SNI.dll
Normal file
Binary file not shown.
BIN
release-optima/Microsoft.Data.SqlClient.dll
Normal file
BIN
release-optima/Microsoft.Data.SqlClient.dll
Normal file
Binary file not shown.
BIN
release-optima/Microsoft.DiaSymReader.Native.x86.dll
Normal file
BIN
release-optima/Microsoft.DiaSymReader.Native.x86.dll
Normal file
Binary file not shown.
Binary file not shown.
BIN
release-optima/Microsoft.Extensions.Logging.Abstractions.dll
Normal file
BIN
release-optima/Microsoft.Extensions.Logging.Abstractions.dll
Normal file
Binary file not shown.
BIN
release-optima/Microsoft.Identity.Client.Extensions.Msal.dll
Normal file
BIN
release-optima/Microsoft.Identity.Client.Extensions.Msal.dll
Normal file
Binary file not shown.
BIN
release-optima/Microsoft.Identity.Client.dll
Normal file
BIN
release-optima/Microsoft.Identity.Client.dll
Normal file
Binary file not shown.
BIN
release-optima/Microsoft.IdentityModel.Abstractions.dll
Normal file
BIN
release-optima/Microsoft.IdentityModel.Abstractions.dll
Normal file
Binary file not shown.
BIN
release-optima/Microsoft.IdentityModel.JsonWebTokens.dll
Normal file
BIN
release-optima/Microsoft.IdentityModel.JsonWebTokens.dll
Normal file
Binary file not shown.
BIN
release-optima/Microsoft.IdentityModel.Logging.dll
Normal file
BIN
release-optima/Microsoft.IdentityModel.Logging.dll
Normal file
Binary file not shown.
Binary file not shown.
BIN
release-optima/Microsoft.IdentityModel.Protocols.dll
Normal file
BIN
release-optima/Microsoft.IdentityModel.Protocols.dll
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user