Пример #1
0
        private static void PopulatedAgenda_Turistas_Trilhos(Trails4HealthDbContext dbContext)
        {
            Turista turista1 = dbContext.Turista.SingleOrDefault(tu => tu.NIF == "987654321");
            Turista turista2 = dbContext.Turista.SingleOrDefault(tu => tu.NIF == "234567889");
            Turista turista3 = dbContext.Turista.SingleOrDefault(tu => tu.NIF == "589455366");
            Turista turista4 = dbContext.Turista.SingleOrDefault(tu => tu.NIF == "977654321");
            Turista turista5 = dbContext.Turista.SingleOrDefault(tu => tu.NIF == "123456789");
            Turista turista6 = dbContext.Turista.SingleOrDefault(tu => tu.NIF == "568123456");

            Trilho trilho1 = dbContext.Trilho.SingleOrDefault(t => t.Nome_Trilho == "Poço do Inferno");
            Trilho trilho2 = dbContext.Trilho.SingleOrDefault(t => t.Nome_Trilho == "Torre");
            Trilho trilho3 = dbContext.Trilho.SingleOrDefault(t => t.Nome_Trilho == "Covão de Santa Maria");
            Trilho trilho4 = dbContext.Trilho.SingleOrDefault(t => t.Nome_Trilho == "Corredor de Mouros");
            Trilho trilho5 = dbContext.Trilho.SingleOrDefault(t => t.Nome_Trilho == "Vale Glaciar do Zezere");

            dbContext.Agenda_Turista_Trilho.Add(new Agenda_Turista_Trilho {
                TuristaId = turista2.TuristaId, TrilhoId = trilho1.TrilhoId, Data_Reserva = new DateTime(2017, 11, 11), Data_Prevista_Inicio_Trilho = new DateTime(2017, 1, 26), Tempo_Gasto = 00, Estado_Agendamento = "Agendado", Data_Estado_Agendamento = new DateTime(2017, 11, 24)
            });
            dbContext.Agenda_Turista_Trilho.Add(new Agenda_Turista_Trilho {
                TuristaId = turista4.TuristaId, TrilhoId = trilho5.TrilhoId, Data_Reserva = new DateTime(2017, 10, 03), Data_Prevista_Inicio_Trilho = new DateTime(2017, 11, 30), Tempo_Gasto = 00, Estado_Agendamento = "Agendado", Data_Estado_Agendamento = new DateTime(2017, 11, 27)
            });

            dbContext.Agenda_Turista_Trilho.Add(new Agenda_Turista_Trilho {
                TuristaId = turista2.TuristaId, TrilhoId = trilho2.TrilhoId, Data_Reserva = new DateTime(2017, 07, 03), Data_Prevista_Inicio_Trilho = new DateTime(2017, 10, 15), Tempo_Gasto = 50, Estado_Agendamento = "Realizado", Data_Estado_Agendamento = new DateTime(2017, 12, 02)
            });
            dbContext.Agenda_Turista_Trilho.Add(new Agenda_Turista_Trilho {
                TuristaId = turista2.TuristaId, TrilhoId = trilho5.TrilhoId, Data_Reserva = new DateTime(2017, 11, 10), Data_Prevista_Inicio_Trilho = new DateTime(2017, 11, 18), Tempo_Gasto = 00, Estado_Agendamento = "Não Realizado", Data_Estado_Agendamento = new DateTime(2017, 11, 27)
            });

            dbContext.Agenda_Turista_Trilho.Add(new Agenda_Turista_Trilho {
                TuristaId = turista3.TuristaId, TrilhoId = trilho3.TrilhoId, Data_Reserva = new DateTime(2017, 11, 15), Data_Prevista_Inicio_Trilho = new DateTime(2017, 12, 16), Tempo_Gasto = 00, Estado_Agendamento = "Cancelado", Data_Estado_Agendamento = new DateTime(2017, 12, 15)
            });
        }
        public VisualizarEstatisticas(Trilho t, IRepositorioTrails rp)
        {
            trilho = t;

            TrilhosPercorridos = rp.TrilhosPercorridos.Where(tp => tp.ID_Trilho == t.ID_Trilho);
            Turistas           = rp.Turistas;
        }
Пример #3
0
        public async Task <IActionResult> Edit(int id, [Bind("TrilhoId,Nome_Trilho,Local_Inicio_Trilho,Local_Fim_Trilho,Distancia_Total,Duracao_Media,Esta_Ativo,Tempo_Gasto,ProfessorId,DificuldadeId")] Trilho trilho)
        {
            if (id != trilho.TrilhoId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(trilho);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TrilhoExists(trilho.TrilhoId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Index"));
            }
            ViewData["DificuldadeId"] = new SelectList(_context.Set <Dificuldade>(), "DificuldadeId", "DificuldadeId", trilho.DificuldadeId);
            ViewData["ProfessorId"]   = new SelectList(_context.Professor, "ProfessorId", "DataNascimento", trilho.ProfessorId);
            return(View(trilho));
        }
Пример #4
0
        public async Task <IActionResult> Create([Bind("TrilhoId,Nome_Trilho,Local_Inicio_Trilho,Local_Fim_Trilho,Distancia_Total,Duracao_Media,Esta_Ativo,Tempo_Gasto,ProfessorId,DificuldadeId")] Trilho trilho)
        {
            if (ModelState.IsValid)
            {
                _context.Add(trilho);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewData["DificuldadeId"] = new SelectList(_context.Set <Dificuldade>(), "DificuldadeId", "DificuldadeId", trilho.DificuldadeId);
            ViewData["ProfessorId"]   = new SelectList(_context.Professor, "ProfessorId", "DataNascimento", trilho.ProfessorId);
            return(View(trilho));
        }
        public async Task <IActionResult> Editar(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            // registo do trilho seleccionado
            Trilho trilho = await _context.Trilhos.SingleOrDefaultAsync(m => m.TrilhoID == id);

            // registo do ultimo EstadoTrilho do trilho seleccionado
            EstadoTrilho ultimoEstadoTrilho = await _context.EstadoTrilhos.SingleOrDefaultAsync(uet => uet.TrilhoID == id &&
                                                                                                uet.DataFim == null);

            //
            if (ultimoEstadoTrilho == null)
            {
                return(NotFound("GET: ultimoEstadoTrilho == null"));
            }

            //
            if (trilho == null)
            {
                return(NotFound("GET: trilho == null"));
            }
            // ViewModel com dados para exibir
            ViewModelTrilho VMTrilho = new ViewModelTrilho
            {
                TrilhoID        = trilho.TrilhoID,
                TrilhoNome      = trilho.Nome,
                TrilhoInicio    = trilho.Inicio,
                TrilhoFim       = trilho.Fim,
                TrilhoDistancia = trilho.Distancia,
                //TrilhoFoto = trilho.Foto,
                TrilhoFoto       = trilho.Foto,
                TrilhoDesativado = trilho.Desativado,
                TrilhoDetalhes   = trilho.Detalhes,
                TrilhoSumario    = trilho.Sumario,
                DificuldadeID    = trilho.DificuldadeID,
                // fica com o Id do ultimo estado inserido para mostrar na view:GET
                EstadoID = ultimoEstadoTrilho.EstadoID
            };

            // passar campos pretendidos (Trilho, Dificuldade e Estado) para a view
            ViewData["DificuldadeID"] = new SelectList(_context.Dificuldades, "DificuldadeID", "Nome", VMTrilho.DificuldadeID);
            ViewData["EstadoID"]      = new SelectList(_context.Estados, "EstadoID", "Nome", VMTrilho.EstadoID);
            return(View(VMTrilho));
        }
        public async Task <IActionResult> BuscarTrilho(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            Trilho t = repository.Trilhos.FirstOrDefault(tr => tr.ID_Trilho == id);

            if (t == null)
            {
                return(NotFound());
            }

            return(View(t));
        }
        public ViewResult  Trilho(int id)
        {
            //BuscarTrilho(id);
            Trilho t = repository.Trilhos.SingleOrDefault(tr => tr.ID_Trilho == id);
            VisualizarEstatisticas ve = new VisualizarEstatisticas(t, repository);

            if (ModelState.IsValid)
            {
                //Repository.AddResponse(response);

                return(View("EstatisticasTrilho", ve));
            }
            else
            {
                // There are validation errors
                return(View(repository));
            }
        }
        public async Task <IActionResult> Editar(int id, [Bind("TrilhoID,TrilhoNome,TrilhoInicio,TrilhoFim,TrilhoDetalhes," +
                                                               "TrilhoSumario,TrilhoDistancia,TrilhoFoto,TrilhoDesativado,DificuldadeID,EstadoID,TrilhoImagem,ImageFile")] ViewModelTrilho VMTrilho)
        {
            // crio novo trilho a partir dos valores introduzidos no form (ver Bind)
            Trilho trilho = new Trilho
            {
                TrilhoID  = VMTrilho.TrilhoID,
                Nome      = VMTrilho.TrilhoNome,
                Inicio    = VMTrilho.TrilhoInicio,
                Fim       = VMTrilho.TrilhoFim,
                Distancia = VMTrilho.TrilhoDistancia,
                //Foto = VMTrilho.TrilhoFoto,
                Foto          = VMTrilho.TrilhoFoto,
                Desativado    = VMTrilho.TrilhoDesativado,
                Detalhes      = VMTrilho.TrilhoDetalhes,
                Sumario       = VMTrilho.TrilhoSumario,
                DificuldadeID = VMTrilho.DificuldadeID
            };

            if (VMTrilho.ImageFile != null)
            {
                // upload de imagem
                // nota: criado controlador UploadFiles, ver mudanças em ViewModelTrilho e Trilho.cs
                using (var memoryStream = new MemoryStream())
                {
                    await VMTrilho.ImageFile.CopyToAsync(memoryStream);

                    trilho.Foto = memoryStream.ToArray();
                }
            }

            // registo do ultimo EstadoTrilho do trilho seleccionado
            EstadoTrilho ultimoEstadoTrilho = await _context.EstadoTrilhos.SingleOrDefaultAsync(uet => uet.TrilhoID == id &&
                                                                                                uet.DataFim == null);

            //
            if (ultimoEstadoTrilho == null)
            {
                return(NotFound("POST: ultimoEstadoTrilho = NULL"));
            }

            // EstadoTrilho a inserir (se novo Estado)
            EstadoTrilho novoEstadoTrilho = new EstadoTrilho
            {
                Trilho     = trilho,
                EstadoID   = VMTrilho.EstadoID,
                DataInicio = DateTime.Now
            };

            if (id != trilho.TrilhoID)
            {
                return(NotFound("POST: TrilhoID NotFound"));
            }

            if (ModelState.IsValid)
            {
                try
                {
                    // Update dbo.trilhos
                    _context.Update(trilho);

                    // Update + insert dbo.EstadoTrilhos
                    if (ultimoEstadoTrilho.EstadoID != VMTrilho.EstadoID)
                    {
                        ultimoEstadoTrilho.DataFim = DateTime.Now;
                        _context.Update(ultimoEstadoTrilho);
                        _context.Add(novoEstadoTrilho);

                        //return NotFound("POST: VMTrilho.EstadoIdAnterior != VMTrilho.EstadoID");
                    }

                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!TrilhoExists(trilho.TrilhoID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Index"));
            }
            // se modelo inválido fica na mma view com os dados introduzidos no form
            ViewData["DificuldadeID"] = new SelectList(_context.Dificuldades, "DificuldadeID", "Nome", VMTrilho.DificuldadeID);
            ViewData["EstadoID"]      = new SelectList(_context.Estados, "EstadoID", "Nome", VMTrilho.EstadoID);
            return(View(VMTrilho));
        }
        public async Task <IActionResult> Criar([Bind("TrilhoID,TrilhoNome,TrilhoInicio,TrilhoFim,TrilhoDetalhes,TrilhoSumario," +
                                                      "TrilhoDistancia,TrilhoFoto, TrilhoDesativado,DificuldadeID,EstadoID,ImageFile")] ViewModelTrilho trilhoVM)
        {
            // Colocar registos da dbo.Trilhos numa lista
            var trilhos = _context.Trilhos
                          .Include(t => t.Dificuldade);

            ListaTrilhosBD = trilhos.ToListAsync().Result;

            // se existir um trilho com o mesmo Nome, mostra msg ErroNomeTrilho e reinsere dados introduzidos na mma View
            // ** fazer com query á B.D. (se houver tempo)
            foreach (var et in ListaTrilhosBD)
            {
                if (et.Nome.Equals(trilhoVM.TrilhoNome))
                {
                    ViewData["ErroNomeTrilho"] = "*Já existe um trilho com esse nome!";
                    ViewData["DificuldadeID"]  = new SelectList(_context.Dificuldades, "DificuldadeID", "Nome", trilhoVM.DificuldadeID);
                    ViewData["EstadoID"]       = new SelectList(_context.Estados, "EstadoID", "Nome", trilhoVM.EstadoID);
                    return(View(trilhoVM));
                }
            }

            if (ModelState.IsValid)
            {
                // crio novo trilho a partir dos valores introduzidos no form (ver Bind)
                Trilho trilho = new Trilho
                {
                    Nome      = trilhoVM.TrilhoNome,
                    Inicio    = trilhoVM.TrilhoInicio,
                    Fim       = trilhoVM.TrilhoFim,
                    Distancia = trilhoVM.TrilhoDistancia,
                    //Foto = trilhoVM.TrilhoFoto,
                    Desativado    = trilhoVM.TrilhoDesativado,
                    Detalhes      = trilhoVM.TrilhoDetalhes,
                    Sumario       = trilhoVM.TrilhoSumario,
                    DificuldadeID = trilhoVM.DificuldadeID
                };

                if (trilhoVM.ImageFile != null)
                {
                    // upload de imagem
                    // nota: criado controlador UploadFiles, ver mudanças em ViewModelTrilho e Trilho.cs
                    using (var memoryStream = new MemoryStream())
                    {
                        await trilhoVM.ImageFile.CopyToAsync(memoryStream);

                        trilho.Foto = memoryStream.ToArray();
                    }
                }

                // coloco trilho na tabela dbo.Trilhos
                _context.Add(trilho);

                EstadoTrilho estadoTrilho = new EstadoTrilho
                {
                    Trilho     = trilho,
                    EstadoID   = trilhoVM.EstadoID,
                    DataInicio = DateTime.Now
                };

                // coloco estadoTrilho na tabela dbo.EstadoTrilhos
                _context.Add(estadoTrilho);
                await _context.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            // se modelo inválido fica na mma view com os dados introduzidos no form
            ViewData["DificuldadeID"] = new SelectList(_context.Dificuldades, "DificuldadeID", "Nome", trilhoVM.DificuldadeID);
            ViewData["EstadoID"]      = new SelectList(_context.Estados, "EstadoID", "Nome", trilhoVM.EstadoID);
            return(View(trilhoVM));
        }