Esempio n. 1
0
        public void DetailsView()
        {
            var context  = new TestGesNaturaAppContext();
            var percurso = new Percurso();

            percurso.ID                = 1;
            percurso.Nome              = "Um Caminho";
            percurso.Tipologia         = "Linear";
            percurso.Dificuldade       = "Baixa";
            percurso.DuracaoAproximada = 2;
            percurso.Distancia         = 5;
            context.Percursos.Add(percurso);
            //context.Percursos.Add(new Percurso { ID = 1, Nome="Um Caminho" });

            var percCriado = new PercursosCriados();

            percCriado.IDCliente   = "12345";
            percCriado.NomeCliente = "Luis";

            var percursoVM = new PercursoVM();

            percursoVM.ID       = percurso.ID;
            percursoVM.Nome     = percurso.Nome;
            percursoVM.ClientID = percCriado.IDCliente;
            percursoVM.Nome     = percCriado.NomeCliente;

            //Act
            var controller = new PercursosController(context);
            var result     = controller.Details(1) as ViewResult;
            var perc       = (Percurso)result.ViewData.Model;

            //Assert
            Assert.AreEqual("Um Caminho", perc.Nome);
        }
Esempio n. 2
0
        public void Index()
        {
            //Arrange
            var context  = new TestGesNaturaAppContext();
            var percurso = new Percurso();

            percurso.ID                = 1;
            percurso.Nome              = "Um Caminho";
            percurso.Tipologia         = "Linear";
            percurso.Dificuldade       = "Baixa";
            percurso.DuracaoAproximada = 2;
            percurso.Distancia         = 5;
            context.Percursos.Add(percurso);
            //context.Percursos.Add(new Percurso { ID = 1, Nome="Um Caminho" });
            var percursoVM = new PercursoVM();

            percursoVM.ID   = percurso.ID;
            percursoVM.Nome = percurso.Nome;

            //Act
            var controller = new PercursosController(context);
            var result     = controller.Index(percursoVM);

            //Assert
            Assert.IsNotNull(result);
            Assert.IsInstanceOfType(result, typeof(ViewResult));
        }
Esempio n. 3
0
        //public async Task<ActionResult> Index()
        //{

        //  var percursos = db.Percursos.ToListAsync();
        //  return View(await percursos);
        //}
        // GET: Percursos
        public ActionResult Index(PercursoVM model = null)
        {
            Percurso percurso = db.Percursos.FirstOrDefault();

            if (percurso == null)
            {
                return(View(percurso));
            }
            //int i;
            //if (model != null)
            //{
            //    i = model.CurrentPageIndex;
            //}
            model = new PercursoVM
            {
                Cust      = db.Percursos.ToList(),
                CustDDL   = db.Percursos.ToList(),
                Nome      = percurso.Nome,
                Distancia = percurso.Distancia,
                Latitude  = percurso.GPS_Lat_Inicio,
                Longitude = percurso.GPS_Long_Inicio
            };


            //var res = (from s in model.Cust
            //           select s);
            //res = res.ToList();
            //if (model.CurrentPageIndex == 0)
            //{
            //    model.CurrentPageIndex = 0;
            //}
            //model.PageSize = 8;
            //model.PageCount = ((res.Count() + model.PageSize - 1) / model.PageSize);
            //if (model.CurrentPageIndex > model.PageCount)
            //{
            //    model.CurrentPageIndex = model.PageCount;
            //}
            //model.Cust = res.Skip(model.CurrentPageIndex * model.PageSize).Take(model.PageSize);

            //model.ID = percurso.ID;
            //model.Nome = percurso.Nome;
            //model.Descricao = percurso.Descricao;
            //model.Distancia = percurso.Distancia;
            //model.Duracao = percurso.DuracaoAproximada;
            //model.Dificuldade = percurso.Dificuldade;
            //model.Tipologia = percurso.Tipologia;

            //model.Latitude = percurso.GPS_Lat_Inicio;
            //model.Longitude = percurso.GPS_Long_Inicio;
            //model.Kml = percurso.KmlPath;

            return(View(model));
            //var percursos = db.Percursos.Include(p => p.POIs);

            //return View();
        }
Esempio n. 4
0
        public ActionResult Pesquisa(PercursoVM model, string btn = null)
        {
            Percurso percurso = db.Percursos.FirstOrDefault();

            model.ID        = percurso.ID;
            model.Latitude  = percurso.GPS_Lat_Inicio;
            model.Longitude = percurso.GPS_Long_Inicio;
            model.Nome      = percurso.Nome;
            model.Descricao = percurso.Descricao;

            return(View(model));
        }
        public ActionResult Dados(string clientID)
        {
            PercursoVM percVM = new PercursoVM();

            percVM.ListaPercurosPercorridosVM = new List <PercursoPercorridoVM>();
            percVM.ListaPercursosCriadosVM    = new List <PercursoCriadoVM>();
            percVM.ListaComentarios           = new List <PercursoComentarioVM>();


            var listaPercursos        = db.PercursosPercorridos.Include(p => p.Percurso).Where(pr => pr.ClientID == clientID).ToList();
            var listaPercursosCriados = db.PercursosCriados.Include(p => p.Percurso).Where(pc => pc.IDCliente == clientID).ToList();
            var listaComentarios      = db.PercursoComentarios.Include(p => p.Percurso).Where(c => c.CriadorPercurso == clientID).ToList();


            float  contaKms   = 0;
            float  contaHoras = 0;
            float  media      = 0;
            int    nmrComentariosPorPercurso = 0;
            double numeroPercursosCriados    = 0;
            int    maiorNmrComentarios       = 0;

            foreach (var item in listaPercursos)
            {
                PercursoPercorridoVM ppercVM = new PercursoPercorridoVM();
                ppercVM.Nome            = item.Percurso.Nome;
                ppercVM.ID              = item.PercursoID;
                ppercVM.ClientID        = item.ClientID;
                ppercVM.Distancia       = item.Percurso.Distancia;
                ppercVM.KmsPercorridos += percVM.Distancia;
                contaKms          += item.Percurso.Distancia;
                ViewBag.TotalKms   = contaKms.ToString();
                contaHoras        += item.Percurso.DuracaoAproximada;
                ViewBag.TotalHoras = contaHoras.ToString();
                media         = contaKms / contaHoras;
                ViewBag.Media = media.ToString();

                percVM.ListaPercurosPercorridosVM.Add(ppercVM);
            }
            var    maior             = 0;
            double numeroComentarios = 0;

            foreach (var item in listaComentarios)
            {
                PercursoComentarioVM pComentVM = new PercursoComentarioVM();

                pComentVM.PercursoID    = item.PercursoID;
                ViewBag.ID              = pComentVM.PercursoID;
                pComentVM.NomePercurso  = item.Percurso?.Nome ?? "Sem Correspondencia";
                pComentVM.Classificacao = item.Classificacao;
                pComentVM.Comentario    = item.Comentario;

                var listaComentPorPercurso = listaComentarios.Where(p => p.PercursoID == item.PercursoID).ToList();

                if (listaComentPorPercurso.Count > 1 && numeroComentarios < listaComentarios.Count)
                {
                    int somaPerc = 0;
                    foreach (var perc in listaComentPorPercurso)
                    {
                        somaPerc += perc.Classificacao;
                        nmrComentariosPorPercurso++;
                        int classPerc = somaPerc / nmrComentariosPorPercurso;
                        pComentVM.Classificacao = classPerc;

                        if (nmrComentariosPorPercurso > maiorNmrComentarios)
                        {
                            maiorNmrComentarios     = nmrComentariosPorPercurso;
                            ViewBag.MaisComentarios = perc.Percurso.Nome;
                        }
                    }
                    nmrComentariosPorPercurso = 0;
                    numeroComentarios         = nmrComentariosPorPercurso - 1;
                }
                numeroComentarios++;
                if (pComentVM.Classificacao > maior)
                {
                    maior         = pComentVM.Classificacao;
                    ViewBag.Maior = maior.ToString();
                    ViewBag.Nome  = pComentVM.NomePercurso;
                }

                if (numeroComentarios > listaComentarios.Count)
                {
                    numeroComentarios--;
                }

                percVM.ListaComentarios.Add(pComentVM);
            }

            foreach (var item in listaPercursosCriados)
            {
                PercursoCriadoVM pCriadoVM = new PercursoCriadoVM();
                pCriadoVM.IDCliente    = item.IDCliente;
                pCriadoVM.NomeCliente  = item.NomeCliente;
                pCriadoVM.PercursoID   = item.PercursoID;
                pCriadoVM.NomePercurso = item.Percurso.Nome;
                numeroPercursosCriados++;
                percVM.ListaPercursosCriadosVM.Add(pCriadoVM);
            }


            double percentagem = (listaComentarios.Count / numeroPercursosCriados) * 100;

            ViewBag.Percentagem = percentagem.ToString();

            return(View(percVM));
        }
Esempio n. 6
0
        public ActionResult Index(PercursoVM model, string btn = null)
        {
            Percurso percurso = db.Percursos.FirstOrDefault();



            if (model.SortField == null)
            {
                model.SortField     = "TipologiaSelecionada";
                model.SortDirection = "ascending";
            }
            #region SortData

            switch (model.SortField)
            {
            case "TipologiaSelecionada":
                model.Cust = (model.SortDirection == "ascending" ?
                              db.Percursos.OrderBy(p => p.Tipologia) :
                              db.Percursos.OrderByDescending(p => p.Tipologia));
                break;

            case "DificuldadeSelecionada":
                model.Cust = (model.SortDirection == "ascending" ?
                              db.Percursos.OrderBy(p => p.Dificuldade) :
                              db.Percursos.OrderByDescending(p => p.Dificuldade));
                break;
            }

            #endregion

            var ddl = (from d in model.Cust
                       select d);
            model.CustDDL = ddl;

            #region FilterData

            if (!String.IsNullOrEmpty(model.TipologiaSelecionada))
            {
                model.Cust = model.Cust.Where(s => s.Tipologia.ToString().Trim().Equals(model.TipologiaSelecionada.Trim()));
            }
            if (!String.IsNullOrEmpty(model.DificuldadeSelecionada))
            {
                model.Cust = model.Cust.Where(s => s.Dificuldade.ToString().Trim().Equals(model.DificuldadeSelecionada.Trim()));
            }

            #endregion

            var res = (from s in model.Cust
                       select s);
            res = res.ToList();
            if (model.CurrentPageIndex == 0)
            {
                model.CurrentPageIndex = 0;
            }
            model.PageSize  = 6;
            model.PageCount = ((res.Count() + model.PageSize - 1) / model.PageSize);
            if (model.CurrentPageIndex > model.PageCount)
            {
                model.CurrentPageIndex = model.PageCount;
            }
            model.Cust = res.Skip(model.CurrentPageIndex * model.PageSize).Take(model.PageSize);

            model.ID          = percurso.ID;
            model.Nome        = percurso.Nome;
            model.Descricao   = percurso.Descricao;
            model.Distancia   = percurso.Distancia;
            model.Duracao     = percurso.DuracaoAproximada;
            model.Dificuldade = percurso.Dificuldade;
            model.Tipologia   = percurso.Tipologia;

            model.Latitude  = percurso.GPS_Lat_Inicio;
            model.Longitude = percurso.GPS_Long_Inicio;
            model.CodPostal = percurso.CodPostal;
            model.Kml       = percurso.KmlPath;

            return(View(model));
        }
Esempio n. 7
0
        // GET: Percursos/Details/5
        //[Authorize(Roles = "Supervisor,Admin")]
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Percurso percurso = db.Percursos.Where(p => p.ID == id).
                                Include("POIs").Include("FotoPercursos").Include("PercursoComentarios").Include("Especies").FirstOrDefault();

            PercursosCriados percCriado = db.PercursosCriados.Where(pc => pc.PercursoID == id).FirstOrDefault();

            //PercursosPercorridos percursosPercorridos = db.PercursosPercorridos.Include(p => p.Percurso).Where(ppc => ppc.PercursoID == id).FirstOrDefault();

            PercursoVM percursoVM = new PercursoVM();

            percursoVM.ListaPOIVM          = new List <PoiVM>();
            percursoVM.ListaFotoPercursoVM = new List <FotoPercursoVM>();
            percursoVM.ListaFotoPoiVM      = new List <FotoPoiVM>();
            percursoVM.ListaComentarios    = new List <PercursoComentarioVM>();
            percursoVM.ListaEspeciesVM     = new List <EspecieViewModel>();

            percursoVM.ID          = percurso.ID;
            percursoVM.Nome        = percurso.Nome;
            percursoVM.Descricao   = percurso.Descricao;
            percursoVM.Distancia   = percurso.Distancia;
            percursoVM.Duracao     = percurso.DuracaoAproximada;
            percursoVM.Dificuldade = percurso.Dificuldade;
            percursoVM.Tipologia   = percurso.Tipologia;
            percursoVM.ClientID    = percCriado.IDCliente;
            percursoVM.NomeCliente = percCriado.NomeCliente;
            percursoVM.Latitude    = percurso.GPS_Lat_Inicio;
            percursoVM.Longitude   = percurso.GPS_Long_Inicio;
            percursoVM.Kml         = percurso.KmlPath;

            foreach (var poi in percurso.POIs)
            {
                PoiVM poiVM = new PoiVM();

                poiVM.Nome      = poi.Nome;
                poiVM.Descricao = poi.Descricao;
                poiVM.Latitude  = poi.GPS_Lat;
                poiVM.Longitude = poi.GPS_Long;
                percursoVM.ListaPOIVM.Add(poiVM);

                //FotoPoiVM fotoPoiVM = new FotoPoiVM();
                //fotoPoiVM.Caminho = poi.FotoPoi.Caminho;
                //percursoVM.ListaFotoPoiVM.Add(fotoPoiVM);
            }

            foreach (var foto in percurso.FotoPercursos)
            {
                FotoPercursoVM fotoVM = new FotoPercursoVM();
                fotoVM.ID      = foto.ID;
                fotoVM.GPS_Lat = foto.GPS_Lat;
                fotoVM.GPS_Lng = foto.GPS_Long;
                fotoVM.Caminho = foto.Caminho;
                percursoVM.ListaFotoPercursoVM.Add(fotoVM);
            }

            foreach (var comentario in percurso.PercursoComentarios)
            {
                PercursoComentarioVM percComent = new PercursoComentarioVM();

                percComent.ID            = comentario.ID;
                percComent.Classificacao = comentario.Classificacao;
                percComent.UserName      = comentario.UserName;
                percComent.SomaRating   += comentario.Classificacao;
                //ViewBag.SomaRating = percComent.SomaRating;
                percComent.ContRating++;
                //ViewBag.ContRating = percComent.ContRating;
                percComent.Comentario = comentario.Comentario;
                percComent.DataHora   = comentario.DataHora;
                percursoVM.ListaComentarios.Add(percComent);
            }

            foreach (var espec in percurso.Especies)
            {
                EspecieViewModel especVM = new EspecieViewModel();

                especVM.ID   = espec.ID;
                especVM.Nome = espec.Nome;
                percursoVM.ListaEspeciesVM.Add(especVM);
            }


            var ratings = percursoVM.ListaComentarios;

            if (ratings.Count() > 0)
            {
                var ratingSum = ratings.Sum(d => d.Classificacao);
                ViewBag.SomaRating = ratingSum;
                var ratingCount = ratings.Count();
                ViewBag.ContRating = ratingCount;
                var classTotal = ratingSum / ratingCount;
                percursoVM.Classificacao = classTotal;
            }
            else
            {
                ViewBag.SomaRating = 0;
                ViewBag.ContRating = 0;
            }
            if (percurso == null)
            {
                return(HttpNotFound());
            }

            return(View(percursoVM));
        }