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)); }
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); }