public async Task <IActionResult> GetContractList([FromBody] GetContractListRequest req)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            PortalUser user = await repository.AuthenticateUserToken(req.CurrentUser.UserId, req.CurrentUser.UserToken);

            if (user == null)
            {
                return(NotFound());
            }

            GetContractListResponse resp = new GetContractListResponse();

            var contracts = await repository.GetContractsByCompanyId(user.CompanyId);

            foreach (Contract c in contracts)
            {
                resp.ContractList.Add(new ContractListModel
                {
                    ContractId     = c.ContractId,
                    ContractName   = c.ContractName,
                    ContractNumber = c.ContractNumber
                });
            }

            return(Ok(resp));
        }
        private async void ResponseUrlPayment(string url)
        {
            if (yaNO)
            {
                return;
            }

            yaNO = true;
            if (url.Contains("back"))
            {
                await _navigationService.GoBackAsync();
            }
            else
            {
                var dic = GetParams(url);
                Analytics.TrackEvent(url);
                var EstatusPago = dic.Where(e => e.Key == "vpc_TxnResponseCode").ToList().First().Value;
                if (EstatusPago == "0")
                {
                    Analytics.TrackEvent("ok code");
                    var request = new GetContractListRequest {
                        Email = DatosPago.email
                    };

                    if (await CallServiceAsync <GetContractListRequest, Models.Responses.GetBalanceListResponse>(request, "Actualizando pago", true) is Models.Responses.GetBalanceListResponse response && response.Success)
                    {
                        Analytics.TrackEvent("ok response");
                        var seleccionado = response.BalanceList.Where(t => t.Nis == DatosPago.NIS_RAD.ToString()).First();
                        var fecha        = seleccionado.v_fecsec.Remove(seleccionado.v_fecsec.Length - 1);

                        fecha             = new string(fecha.Skip(6).Take(2).ToArray()) + new string(fecha.Skip(4).Take(2).ToArray()) + new string(fecha.Take(4).ToArray());
                        DatosPago.NIS_RAD = int.Parse(seleccionado.Nis);
                        DatosPago.SEC_NIS = seleccionado.SecNis ?? 0;
                        DatosPago.F_FACT  = fecha;
                        var pay = new PAGOSRequest
                        {
                            v_f_fact            = DatosPago.F_FACT,
                            v_importe           = DatosPago.v_importe / 100,
                            v_nis_rad           = DatosPago.NIS_RAD,
                            v_referencia        = DatosPago.v_referencia,
                            v_sec_nis           = DatosPago.SEC_NIS,
                            v_sec_rec           = DatosPago.SEC_REC,
                            v_fecha_vencimiento = seleccionado.ExpirationDate
                        };
                        string json = JsonConvert.SerializeObject(pay);
                        await sadmApiService.CallServiceAsync <PAGOSRequest, Models.Responses.ResponseBase>(pay);

                        await _hudService.ShowSuccessMessageAsync("Pago realizado con éxito.");

                        await _navigationService.NavigateAsync(new Uri($"/{nameof(LateralMenuPage)}/{nameof(NavigationPage)}/{nameof(BalancesPage)}", UriKind.Absolute));
                    }
                    else
                    {
                        Analytics.TrackEvent("Error response");
                        await _hudService.ShowErrorAsync("Ocurrio un error en el pago intente de nuevo.");

                        await _navigationService.GoBackAsync();
                    }
                }
        public async Task GetNisListAsync()
        {
            var request = new GetContractListRequest {
                Email = SettingsService.User.Email
            };

            if (await CallServiceAsync <GetContractListRequest, GetBalanceListResponse>(request, "Preparando la generación de reporte...", true) is GetBalanceListResponse response && response.Success)
            {
                if (response.BalanceList.Any())
                {
                    await GoToPageAsync <Views.GenerateReportPage>(response.BalanceList);
                }
                else
                {
                    await HudService.ShowErrorAsync("Debes tener al menos un NIS registrado");
                }
            }
        }