public async Task <ActionResult> AddSupervisor(AddSupervisorDialogViewModel vm)
        {
            if (vm.SelectedMerchants == null || !vm.SelectedMerchants.Any())
            {
                return(this.JsonFailResult(Phrases.PleaseSelectAtLeastOneItem, "#selectedMerchants"));
            }

            if (string.IsNullOrEmpty(vm.SelectedEmployee))
            {
                return(this.JsonFailResult(Phrases.FieldShouldNotBeEmpty, "#selectedEmployee"));
            }

            try
            {
                await _payInternalClient.AddSupervisorMembershipForMerchantsAsync(
                    new AddSupervisorMembershipMerchantsRequest
                {
                    MerchantId = vm.SelectedMerchant,
                    EmployeeId = vm.SelectedEmployee,
                    Merchants  = vm.SelectedMerchants
                });
            }
            catch (DefaultErrorResponseException ex)
            {
                return(this.JsonFailResult(ex.Error?.ErrorMessage ?? Phrases.ApiUnknownError, "#errorMessage"));
            }

            return(this.JsonRequestResult("#supervisorsList", Url.Action("SupervisorsList"),
                                          new SupervisorsPageViewModel {
                SelectedMerchant = vm.SelectedMerchant
            }));
        }
        public async Task <ActionResult> AddSupervisorDialog(string merchant = null)
        {
            var merchants = await _payMerchantClient.Api.GetAllAsync();

            var employees = await _payInvoiceClient.GetEmployeesAsync(merchant);

            var viewmodel = new AddSupervisorDialogViewModel
            {
                SelectedMerchant = merchant,
                Merchants        = merchants,
                Employees        = employees
            };

            return(View(viewmodel));
        }