public IActionResult Getchannels([FromBody] ChannelQueryFilter filters) { var channels = _channelService.GetChannels(filters); var channelsDto = _mapper.Map <IEnumerable <ChannelDto> >(channels); var metadata = new Metadata { TotalCount = channels.TotalCount, PageSize = channels.PageSize, CurrentPage = channels.CurrentPage, TotalPages = channels.TotalPages, HasNextPage = channels.HasNextPage, HasPreviousPage = channels.HasPreviousPage, NextPageUrl = _uriService.GetPostPaginationUri(filters, Url.RouteUrl(nameof(Getchannels))).ToString(), PreviousPageUrl = _uriService.GetPostPaginationUri(filters, Url.RouteUrl(nameof(Getchannels))).ToString() }; var response = new ApiResponse <IEnumerable <ChannelDto> >(channelsDto) { Meta = metadata }; Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(metadata)); return(Ok(response)); }
public PagedList <Channel> GetChannels(ChannelQueryFilter filters) { filters.PageNumber = filters.PageNumber == 0 ? _paginationOptions.DefaultPageNumber : filters.PageNumber; filters.PageSize = filters.PageSize == 0 ? _paginationOptions.DefaultPageSize : filters.PageSize; var Channel = _unitOfWork.ChannelRepository.GetAll(); if (filters.filter != null) { Channel = Channel.Where(x => x.Ambiente.ToLower().Contains(filters.filter.ToLower())); Channel = Channel.Where(x => x.Bodega.ToLower().Contains(filters.filter.ToLower())); Channel = Channel.Where(x => x.CategoriaCliente.ToLower().Contains(filters.filter.ToLower())); Channel = Channel.Where(x => x.CodigoProducto.ToLower().Contains(filters.filter.ToLower())); Channel = Channel.Where(x => x.CuentaContable.ToLower().Contains(filters.filter.ToLower())); Channel = Channel.Where(x => x.DocumentoElectronico.ToLower().Contains(filters.filter.ToLower())); Channel = Channel.Where(x => x.FormaPago.ToLower().Contains(filters.filter.ToLower())); Channel = Channel.Where(x => x.Enlace.ToLower().Contains(filters.filter.ToLower())); Channel = Channel.Where(x => x.GrupoCredito.ToLower().Contains(filters.filter.ToLower())); Channel = Channel.Where(x => x.Iva.ToString().ToLower().Contains(filters.filter.ToLower())); Channel = Channel.Where(x => x.LimiteCredito.ToLower().Contains(filters.filter.ToLower())); Channel = Channel.Where(x => x.ListaPrecioContado.ToLower().Contains(filters.filter.ToLower())); Channel = Channel.Where(x => x.ListaPrecioCredito.ToLower().Contains(filters.filter.ToLower())); Channel = Channel.Where(x => x.NombreProducto.ToLower().Contains(filters.filter.ToLower())); Channel = Channel.Where(x => x.PuntoEmision.ToLower().Contains(filters.filter.ToLower())); Channel = Channel.Where(x => x.Relacionado.ToLower().Contains(filters.filter.ToLower())); Channel = Channel.Where(x => x.Segmento.ToLower().Contains(filters.filter.ToLower())); Channel = Channel.Where(x => x.Status.ToLower().Contains(filters.filter.ToLower())); Channel = Channel.Where(x => x.Uge.ToLower().Contains(filters.filter.ToLower())); Channel = Channel.Where(x => x.VendorSeccion.ToLower().Contains(filters.filter.ToLower())); } if (filters.Ambiente != null) { Channel = Channel.Where(x => x.Ambiente.ToLower().Contains(filters.Ambiente.ToLower())); } if (filters.Bodega != null) { Channel = Channel.Where(x => x.Bodega.ToLower().Contains(filters.Bodega.ToLower())); } if (filters.Enlace != null) { Channel = Channel.Where(x => x.Enlace.ToLower().Contains(filters.Enlace.ToLower())); } if (filters.CategoriaCliente != null) { Channel = Channel.Where(x => x.CategoriaCliente.ToLower().Contains(filters.CategoriaCliente.ToLower())); } if (filters.CodigoProducto != null) { Channel = Channel.Where(x => x.CodigoProducto.ToLower().Contains(filters.CodigoProducto.ToLower())); } if (filters.CuentaContable != null) { Channel = Channel.Where(x => x.CuentaContable.ToLower().Contains(filters.CuentaContable.ToLower())); } if (filters.DocumentoElectronico != null) { Channel = Channel.Where(x => x.DocumentoElectronico.ToLower().Contains(filters.DocumentoElectronico.ToLower())); } if (filters.FormaPago != null) { Channel = Channel.Where(x => x.FormaPago.ToLower().Contains(filters.FormaPago.ToLower())); } if (filters.GrupoCredito != null) { Channel = Channel.Where(x => x.GrupoCredito.ToLower().Contains(filters.GrupoCredito.ToLower())); } if (filters.Iva.ToString() != null) { Channel = Channel.Where(x => x.Iva.ToString().ToLower().Contains(filters.Iva.ToString().ToLower())); } if (filters.LimiteCredito != null) { Channel = Channel.Where(x => x.LimiteCredito.ToLower().Contains(filters.LimiteCredito.ToLower())); } if (filters.ListaPrecioContado != null) { Channel = Channel.Where(x => x.ListaPrecioContado.ToLower().Contains(filters.ListaPrecioContado.ToLower())); } if (filters.ListaPrecioCredito != null) { Channel = Channel.Where(x => x.ListaPrecioCredito.ToLower().Contains(filters.ListaPrecioCredito.ToLower())); } if (filters.NombreProducto != null) { Channel = Channel.Where(x => x.NombreProducto.ToLower().Contains(filters.NombreProducto.ToLower())); } if (filters.PuntoEmision != null) { Channel = Channel.Where(x => x.PuntoEmision.ToLower().Contains(filters.PuntoEmision.ToLower())); } if (filters.Segmento != null) { Channel = Channel.Where(x => x.Segmento.ToLower().Contains(filters.Segmento.ToLower())); } if (filters.Status != null) { Channel = Channel.Where(x => x.Status.ToLower().Contains(filters.Status.ToLower())); } if (filters.Uge != null) { Channel = Channel.Where(x => x.Uge.ToLower().Contains(filters.Uge.ToLower())); } if (filters.VendorSeccion != null) { Channel = Channel.Where(x => x.VendorSeccion.ToLower().Contains(filters.VendorSeccion.ToLower())); } if (filters.orderedBy != null && filters.orderedBy.Count() > 0) { foreach (var sortM in filters.orderedBy) { Channel = Channel.OrderBy(sortM.PairAsSqlExpression); } } var pagedPosts = PagedList <Channel> .Create(Channel, filters.PageNumber, filters.PageSize); return(pagedPosts); }
public Uri GetPostPaginationUri(ChannelQueryFilter filter, string actionUrl) { string baseUrl = $"{_baseUri}{actionUrl}"; return(new Uri(baseUrl)); }