Browse Source

Refactoring

pull/2448/head
Thomas 2 years ago
parent
commit
0a0b50d949
  1. 4
      apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.ts
  2. 58
      apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts
  3. 12
      apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html

4
apps/client/src/app/components/admin-market-data-detail/admin-market-data-detail.component.ts

@ -177,8 +177,8 @@ export class AdminMarketDataDetailComponent implements OnChanges, OnInit {
dialogRef dialogRef
.afterClosed() .afterClosed()
.pipe(takeUntil(this.unsubscribeSubject)) .pipe(takeUntil(this.unsubscribeSubject))
.subscribe(({ withRefresh }) => { .subscribe((data) => {
this.marketDataChanged.next(withRefresh); this.marketDataChanged.next(data?.withRefresh ?? false);
}); });
} }

58
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts

@ -45,7 +45,7 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
public countries: { public countries: {
[code: string]: { name: string; value: number }; [code: string]: { name: string; value: number };
}; };
public historicalDataAsString: string; public historicalDataAsCsvString: string;
public isBenchmark = false; public isBenchmark = false;
public marketDataDetails: MarketData[] = []; public marketDataDetails: MarketData[] = [];
public sectors: { public sectors: {
@ -138,6 +138,34 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
.subscribe(() => {}); .subscribe(() => {});
} }
public onImportHistoricalData() {
const inputHistoricalData = this.historicalDataAsCsvString;
const inputSplittedByLine = inputHistoricalData.split('\n');
const dataBulkUpdate: UpdateMarketDataDto[] = inputSplittedByLine.map(
(line) => {
const [dateString, marketPriceString] = line.split(';');
return {
date: parseISO(dateString),
marketPrice: Number(marketPriceString)
};
}
);
this.adminService
.postMarketData({
dataSource: this.data.dataSource,
marketData: { marketData: dataBulkUpdate },
symbol: this.data.symbol
})
.pipe(takeUntil(this.unsubscribeSubject))
.subscribe(() => {
this.initialize();
});
this.historicalDataAsCsvString = '';
}
public onMarketDataChanged(withRefresh: boolean = false) { public onMarketDataChanged(withRefresh: boolean = false) {
if (withRefresh) { if (withRefresh) {
this.initialize(); this.initialize();
@ -203,34 +231,6 @@ export class AssetProfileDialog implements OnDestroy, OnInit {
}); });
} }
public importHistoricalData() {
const inputHistoricalData = this.historicalDataAsString;
const inputSplittedByLine = inputHistoricalData.split('\n');
const dataBulkUpdate: UpdateMarketDataDto[] = inputSplittedByLine.map(
(line) => {
const [dateString, marketPriceString] = line.split(';');
return {
date: parseISO(dateString),
marketPrice: Number(marketPriceString)
};
}
);
this.adminService
.postMarketData({
dataSource: this.data.dataSource,
marketData: { marketData: dataBulkUpdate },
symbol: this.data.symbol
})
.pipe(takeUntil(this.unsubscribeSubject))
.subscribe(() => {
this.dataService.updateInfo();
});
this.historicalDataAsString = '';
}
public ngOnDestroy() { public ngOnDestroy() {
this.unsubscribeSubject.next(); this.unsubscribeSubject.next();
this.unsubscribeSubject.complete(); this.unsubscribeSubject.complete();

12
apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html

@ -64,14 +64,20 @@
placeholder="e.g. 20230601;1.61" placeholder="e.g. 20230601;1.61"
type="text" type="text"
[ngModelOptions]="{standalone: true}" [ngModelOptions]="{standalone: true}"
[(ngModel)]="historicalDataAsString" [(ngModel)]="historicalDataAsCsvString"
(keyup.enter)="$event.stopPropagation()"
></textarea> ></textarea>
</mat-form-field> </mat-form-field>
</div> </div>
<div class="d-flex justify-content-end mt-2"> <div class="d-flex justify-content-end mt-2">
<button color="accent" mat-flat-button (click)="importHistoricalData()"> <button
<ng-container i18n>Import Historical Data </ng-container> color="accent"
mat-flat-button
type="button"
(click)="onImportHistoricalData()"
>
<ng-container i18n>Import</ng-container>
</button> </button>
</div> </div>

Loading…
Cancel
Save