public ActionResult AddOrEditMerchantVolatilitySettingDialog(AddOrEditMerchantVolatilitySettingsDialog vm)
        {
            bool isNew = string.IsNullOrEmpty(vm.ZeroCoverageAssetPairs);

            vm.Caption = isNew ? "Add setting" : "Edit setting";
            vm.IsNew   = isNew;

            return(View(vm));
        }
        public async Task <ActionResult> AddOrEditMerchantVolatilitySetting(AddOrEditMerchantVolatilitySettingsDialog vm)
        {
            if (string.IsNullOrEmpty(vm.ZeroCoverageAssetPairs))
            {
                return(this.JsonFailResult("ZeroCoverageAssetPairs required", ErrorMessageAnchor));
            }

            if (vm.IsNew)
            {
                var newSettings = new AddVolatilitySettingsRequest
                {
                    MerchantId             = vm.MerchantId,
                    ZeroCoverageAssetPairs = vm.ZeroCoverageAssetPairs,
                    IsDeltaSpreadFixed     = vm.IsDeltaSpreadFixed
                };

                try
                {
                    await _payMerchantClient.Settings.AddVolatilitySettingsAsync(newSettings);
                }
                catch (ClientApiException e)
                {
                    return(this.JsonFailResult(e.Message, ErrorMessageAnchor));
                }
            }
            else
            {
                var editSettings = new UpdateVolatilitySettingsRequest
                {
                    MerchantId             = vm.MerchantId,
                    ZeroCoverageAssetPairs = vm.ZeroCoverageAssetPairs,
                    IsDeltaSpreadFixed     = vm.IsDeltaSpreadFixed
                };

                try
                {
                    await _payMerchantClient.Settings.UpdateVolatilitySettingsAsync(editSettings);
                }
                catch (ClientApiException e)
                {
                    return(this.JsonFailResult(e.Message, ErrorMessageAnchor));
                }
            }

            return(this.JsonRequestResult("#merchantVolatilitySettingsList",
                                          Url.Action("MerchantVolatilitySettingsList"),
                                          new MerchantVolatilitySettingsListViewModel {
                SelectedMerchant = vm.MerchantId
            }));
        }