public ListCard ListaPromo(int?p, double ULat, double ULon, string tipo = "Local", string q = "") { ListCard lc = new ListCard(); List <PromoCard> listPromo = new List <PromoCard>(); int registroPorPagina = 8; int page = p ?? 1; int skipReg = 0; if (page > 1) { skipReg = (page - 1) * registroPorPagina; } var query = db.Promocaos.Where(x => x.Ativo == true && x.TipoAnuncio == tipo && x.DataFim >= DateTime.Now); //q => keyword if (!string.IsNullOrEmpty(q)) { query = query.Where(x => x.Titulo.Contains(q) || x.Descricao.Contains(q) || x.Empresa.Nome.Contains(q) || x.Empresa.Descricao.Contains(q)); } foreach (var promo in query) { PromoCard pc = new PromoCard(); pc.Distancia = pc.Distance(ULat, ULon, Convert.ToDouble(promo.Empresa.Latitude), Convert.ToDouble(promo.Empresa.Longitude)); pc.Titulo = promo.Titulo; pc.TipoAnuncio = promo.TipoAnuncio; pc.PromoId = promo.PromocaoId; pc.PrecoNormal = promo.PrecoNormal; pc.PrecoComDesconto = promo.PrecoComDesconto; pc.TipoDesconto = promo.TipoDesconto; pc.DescDesconto = promo.DescDesconto; pc.Cidade = promo.Empresa.Cidade; pc.EmpresaNome = promo.Empresa.Nome; pc.Bairro = promo.Empresa.Bairro; pc.Endereco = promo.Empresa.Logradouro + ", " + promo.Empresa.Numero + " " + promo.Empresa.Complemento; pc.Desconto = promo.Desconto; pc.DataFim = promo.DataFim.Value.ToString("dd/MM/yyyy"); pc.Site = promo.LinkPromocao; listPromo.Add(pc); } lc.Registros = listPromo.Count; lc.PromoCards = listPromo.OrderBy(x => x.Distancia).Skip(skipReg).Take(registroPorPagina).ToList(); if (lc.Registros > registroPorPagina) { Decimal pags = Convert.ToDecimal(lc.Registros) / Convert.ToDecimal(registroPorPagina); //decimal d = pags; lc.Paginas = Math.Ceiling(pags); } else { lc.Paginas = 1; } return(lc); }
public ListCard ListaPromoByUsuario(Guid uid) { ListCard lc = new ListCard(); List <PromoCard> listPromo = new List <PromoCard>(); var query = db.Promocaos.Where(x => x.Empresa.UsuarioEmpresas.Where(y => y.UsuarioId == uid).Any() == true); query = query.Where(x => x.Ativo != null); foreach (var promo in query) { PromoCard pc = new PromoCard(); pc.Distancia = 0;//pc.Distance(ULat, ULon, Convert.ToDouble(promo.Empresa.Latitude), Convert.ToDouble(promo.Empresa.Longitude)); pc.Titulo = promo.Titulo; pc.TipoAnuncio = promo.TipoAnuncio; pc.PromoId = promo.PromocaoId; pc.PrecoNormal = promo.PrecoNormal; pc.PrecoComDesconto = promo.PrecoComDesconto; pc.TipoDesconto = promo.TipoDesconto; pc.DescDesconto = promo.DescDesconto; pc.EmpresaNome = promo.Empresa.Nome; pc.Bairro = promo.Empresa.Bairro; pc.Endereco = promo.Empresa.Logradouro + ", " + promo.Empresa.Numero + " " + promo.Empresa.Complemento; pc.Desconto = promo.Desconto; pc.DataFim = promo.DataFim.Value.ToString("dd/MM/yyyy"); pc.Site = promo.LinkPromocao; pc.Ativo = promo.Ativo; listPromo.Add(pc); } lc.Registros = listPromo.Count; lc.PromoCards = listPromo.OrderBy(x => x.EmpresaNome).ToList(); return(lc); }