Пример #1
0
        public ActionResult ObtenerData(ProductoObtenerFiltroDto prm)
        {
            if (ConstanteVo.ActivarLLamadasConToken)
            {
                IEnumerable <string> headerUsr = Request.Headers[ConstanteVo.NombreParametroToken];
                ConfiguracionToken.ConfigToken = headerUsr.FirstOrDefault();

                if (string.IsNullOrEmpty(ConfiguracionToken.ConfigToken))
                {
                    return(RedirectToAction("Login", "Home"));
                }
            }

            var t = Task.Run(() => _lnProducto.Obtener(prm));

            t.Wait();

            return(Json(t.Result));
        }
Пример #2
0
        public async Task <ResultDataTable> Obtener(ProductoObtenerFiltroDto prm)
        {
            ResultDataTable resultado      = new ResultDataTable();
            long            totalRegistros = 0;
            List <ProductoObtenerPorIdUsuarioDtoApi> lista = new List <ProductoObtenerPorIdUsuarioDtoApi>();
            int statusCode = 0;

            try
            {
                //Dentro de AJAX => datatype: 'json', headers: {'Authorization': 'Basic ' + valor token }, ....
                RequestProductoObtenerPorIdUsuarioDtoApi filtroApi = new RequestProductoObtenerPorIdUsuarioDtoApi
                {
                    IdEstado    = prm.IdEstado,
                    Buscar      = string.IsNullOrEmpty(prm.Buscar) ? string.Empty: prm.Buscar,
                    IdUsuario   = prm.IdUsuario,
                    IdNegocio   = prm.IdNegocio,
                    IdMoneda    = prm.IdMoneda,
                    IdCategoria = prm.IdCategoria
                };

                if (prm.Start == null)
                {
                    prm.Start = 0;
                }
                filtroApi.CantidadRegistros = prm.Length == null ? 10 : Convert.ToInt32(prm.Length);
                filtroApi.NumeroPagina      = (Convert.ToInt32(prm.Start) / filtroApi.CantidadRegistros) + 1;
                if (prm.Order != null && prm.Order.Count > 0)
                {
                    filtroApi.ColumnaOrden   = prm.Columns[prm.Order[0].Column].Name;
                    filtroApi.DireccionOrden = prm.Order[0].Dir;
                }

                var    response = string.Empty;
                string url      = string.Format("{0}{1}/ObtenerPorIdUsuario", ConstanteVo.UrlBaseApi, _nombreControlador);

                using (var client = new HttpClient())
                {
                    if (ConstanteVo.ActivarLLamadasConToken && !string.IsNullOrEmpty(ConfiguracionToken.ConfigToken))
                    {
                        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ConfiguracionToken.ConfigToken.Trim());
                    }

                    var content = new StringContent(JsonConvert.SerializeObject(filtroApi), Encoding.UTF8, "application/json");
                    HttpResponseMessage result = await client.PostAsync(new Uri(url), content);

                    if (result != null)
                    {
                        response = await result.Content.ReadAsStringAsync();

                        statusCode = (int)result.StatusCode;
                    }
                }

                ResponseProductoObtenerPorIdUsuarioDtoApi root = JsonConvert.DeserializeObject <ResponseProductoObtenerPorIdUsuarioDtoApi>(response);
                if (root != null && root.Cuerpo != null)
                {
                    lista          = root.Cuerpo;
                    totalRegistros = root.CantidadTotalRegistros;
                    if (lista.Any())
                    {
                        int indice = Convert.ToInt32(prm.Start) + 1;
                        foreach (var item in lista)
                        {
                            item.Item = indice;
                            indice++;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                string exMessage = (ex.InnerException == null ? ex.Message : ex.InnerException.Message).Replace(Environment.NewLine, " ");
                Log(Level.Error, exMessage);
                resultado.error = exMessage;
            }
            finally
            {
                resultado.data            = lista;
                resultado.draw            = prm.Draw;
                resultado.recordsTotal    = (int)totalRegistros;
                resultado.recordsFiltered = (int)totalRegistros;
                if (resultado != null)
                {
                    resultado.StatusCode = statusCode;
                }
            }

            return(resultado);
        }