public async Task <ActionResult> AddOrEditMarkup(AddOrEditMarkupDialogViewModel vm) { if (string.IsNullOrEmpty(vm.AssetPairId)) { return(this.JsonFailResult("AssetPairId required", ErrorMessageAnchor)); } if (!vm.IsEditMode) { var markup = new MarkupResponse(); try { if (!string.IsNullOrEmpty(vm.AssetPairId) && vm.SelectedMerchant == "Default") { markup = await _payInternalClient.GetDefaultMarkupAsync(vm.AssetPairId); } else if (!string.IsNullOrEmpty(vm.AssetPairId)) { markup = await _payInternalClient.GetMarkupForMerchantAsync(vm.SelectedMerchant, vm.AssetPairId); } } catch (DefaultErrorResponseException ex) { markup = null; } if (markup != null) { return(this.JsonFailResult("Markup exist: " + markup.AssetPairId, ErrorMessageAnchor)); } } var request = new UpdateMarkupRequest(); request.DeltaSpread = vm.DeltaSpread; request.FixedFee = vm.FixedFee; request.Percent = vm.Percent; request.Pips = vm.Pips; request.PriceAssetPairId = vm.PriceAssetPairId; var pricemethod = PriceMethod.None; Enum.TryParse <PriceMethod>(vm.SelectedPriceMethod, out pricemethod); request.PriceMethod = pricemethod; try { if (string.IsNullOrEmpty(vm.SelectedMerchant) || vm.SelectedMerchant == "Default") { await _payInternalClient.SetDefaultMarkupAsync(vm.AssetPairId, request); } else { await _payInternalClient.SetMarkupForMerchantAsync(vm.SelectedMerchant, vm.AssetPairId, request); } return(this.JsonRequestResult("#markupsList", Url.Action("MarkupsList"), new StaffsPageViewModel() { SelectedMerchant = vm.SelectedMerchant })); } catch (DefaultErrorResponseException ex) { return(this.JsonFailResult("Error: " + ex.Error.ErrorMessage, ErrorMessageAnchor)); } }
public async Task <IActionResult> SetForMerchant(string merchantId, string assetPairId, [FromBody] UpdateMarkupRequest request) { IMerchant merchant = await _merchantService.GetAsync(merchantId); if (merchant == null) { return(NotFound(ErrorResponse.Create("Merchant not found"))); } if (!string.IsNullOrEmpty(request.PriceAssetPairId)) { AssetPair priceAssetPair = await _assetsLocalCache.GetAssetPairByIdAsync(request.PriceAssetPairId); if (priceAssetPair == null) { return(NotFound(ErrorResponse.Create("Price asset pair doesn't exist"))); } } try { await _markupService.SetForMerchantAsync(assetPairId, merchantId, request.PriceAssetPairId, request.PriceMethod, request); return(Ok()); } catch (Exception ex) { await _log.WriteErrorAsync(nameof(MarkupsController), nameof(SetForMerchant), ex); throw; } }
public async Task <IActionResult> SetDefault(string assetPairId, [FromBody] UpdateMarkupRequest request) { if (!string.IsNullOrEmpty(request.PriceAssetPairId)) { AssetPair priceAssetPair = await _assetsLocalCache.GetAssetPairByIdAsync(request.PriceAssetPairId); if (priceAssetPair == null) { return(NotFound(ErrorResponse.Create("Price asset pair doesn't exist"))); } } try { await _markupService.SetDefaultAsync(Uri.UnescapeDataString(assetPairId), request.PriceAssetPairId, request.PriceMethod, request); return(Ok()); } catch (InvalidRowKeyValueException e) { _log.ErrorWithDetails(e, new { e.Variable, e.Value }); return(NotFound(ErrorResponse.Create("Asset pair not found"))); } }
public Task SetMarkupForMerchantAsync(string merchantId, string assetPairId, UpdateMarkupRequest request) { return(_runner.RunWithDefaultErrorHandlingAsync(() => _markupsApi.SetForMerchantAsync(merchantId, assetPairId, request))); }
public Task SetDefaultMarkupAsync(string assetPairId, UpdateMarkupRequest request) { return(_runner.RunWithDefaultErrorHandlingAsync(() => _markupsApi.SetDefaultAsync(assetPairId, request))); }