Example #1
0
        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);
        }
Example #2
0
        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);
        }