예제 #1
0
        public void VerOertaShowldReturnViewWithViewModel()
        {
            Aeroporto aeroporto1 = new Aeroporto()
            {
                AeroportoId = 1,
                Nome        = "Aeroporto1",
                Latitude    = 38.779444,
                Longitude   = -9.136111,
            };

            Aeroporto aeroporto2 = new Aeroporto()
            {
                AeroportoId = 2,
                Nome        = "Aeroporto1",
                Latitude    = 39.779444,
                Longitude   = -10.136111,
            };

            Companhia companhia = new Companhia()
            {
                Nome          = "Companhia1",
                CompanhiaId   = 1,
                ListaReservas = new List <Reserva>()
            };

            Jato jato1 = new Jato()
            {
                CompanhiaId          = 1,
                AeroportoId          = 1,
                Nome                 = "Jato1",
                EmFuncionamento      = true,
                CreditosBase         = 2200,
                CreditosPorKilometro = 1.1,
                DistanciaMaxima      = 1000000,
                TempoPreparacao      = 1,
                VelocidadeMedia      = 200
            };

            Disponibilidade disponibilidade1 = new Disponibilidade()
            {
                DisponibilidadeId = 1,
                Inicio            = "2017-09-22",
                Fim = "2017-09-24"
            };

            jato1.ListaDisponibilidade.Add(disponibilidade1);

            DateTime dataPartida = new DateTime(2017, 9, 23);



            MyController <ClienteController>
            .Instance()
            .WithDbContext(dbContext => dbContext     // <---
                           .WithEntities(entities => entities.AddRange(
                                             aeroporto2, aeroporto1, companhia, jato1, disponibilidade1)))
            .Calling(c => c.VerOferta(aeroporto1.AeroportoId, aeroporto2.AeroportoId, dataPartida, jato1.JatoId))
            .ShouldReturn()
            .View();
        }
예제 #2
0
        public ActionResult Create()
        {
            var companhia = new Companhia();

            companhia.Batalhoes = _batalhaoStore.GetAll();
            return(View(companhia));
        }
예제 #3
0
        public void AeroportosDisponiveisDestinoShowReturnListEmpty()
        {
            Aeroporto aeroporto1 = new Aeroporto()
            {
                AeroportoId = 1,
                Nome        = "Aeroporto1",
                Latitude    = 38.779444,
                Longitude   = -9.136111,
            };

            Aeroporto aeroporto2 = new Aeroporto()
            {
                AeroportoId = 2,
                Nome        = "Aeroporto2",
                Latitude    = 39.779444,
                Longitude   = -10.136111,
            };

            Companhia companhia = new Companhia()
            {
                Nome          = "Companhia1",
                CompanhiaId   = 1,
                ListaReservas = new List <Reserva>()
            };

            Jato jato1 = new Jato()
            {
                CompanhiaId          = 1,
                AeroportoId          = 1,
                Nome                 = "Jato1",
                EmFuncionamento      = true,
                CreditosBase         = 2200,
                CreditosPorKilometro = 1.1,
                DistanciaMaxima      = 1000000,
                TempoPreparacao      = 1,
                VelocidadeMedia      = 0
            };

            Disponibilidade disponibilidade1 = new Disponibilidade()
            {
                DisponibilidadeId = 1,
                Inicio            = "2017-09-22",
                Fim = "2017-09-26"
            };

            jato1.ListaDisponibilidade.Add(disponibilidade1);

            DateTime dataPartida = new DateTime(2017, 9, 23);

            MyController <ClienteController>
            .Instance()
            .WithDbContext(dbContext => dbContext    // <---
                           .WithEntities(entities => entities.AddRange(
                                             aeroporto2, aeroporto1, companhia, jato1, disponibilidade1)))
            .Calling(c => c.AeroportosDestinoDisponiveis(aeroporto1.AeroportoId, dataPartida))
            .ShouldReturn()
            .ResultOfType <IEnumerable <Aeroporto> >()
            .Passing(c => c.Count() == 0);
        }
예제 #4
0
        public void DisponibilidadePontualTesteDeslocacao()
        {
            Aeroporto aeroporto1 = new Aeroporto()
            {
                AeroportoId = 1,
                Nome        = "Aeroporto1",
                Latitude    = 38.779444,
                Longitude   = -9.136111,
            };

            Aeroporto aeroporto2 = new Aeroporto()
            {
                AeroportoId = 2,
                Nome        = "Aeroporto2",
                Latitude    = 40.472222,
                Longitude   = -3.560833,
            };

            Companhia companhia = new Companhia()
            {
                Nome          = "Companhia1",
                CompanhiaId   = 1,
                ListaReservas = new List <Reserva>()
            };

            Jato jato1 = new Jato()
            {
                CompanhiaId          = 1,
                AeroportoId          = 1,
                Nome                 = "Jato1",
                EmFuncionamento      = true,
                CreditosBase         = 2200,
                CreditosPorKilometro = 1.1
            };

            Disponibilidade disponibilidade1 = new Disponibilidade()
            {
                DisponibilidadeId = 1,
                Inicio            = "22/09/2017",
                Fim = "24/09/2017"
            };

            jato1.ListaDisponibilidade.Add(disponibilidade1);

            DateTime dataPartida = new DateTime(2017, 9, 23);

            MyController <ClienteController> .Instance()
            .WithDbContext(dbContext => dbContext
                           .WithEntities(entities => entities.AddRange(
                                             aeroporto1,
                                             aeroporto2,
                                             companhia,
                                             jato1,
                                             disponibilidade1)))
            .Calling(c => c.AeroportosDisponiveis(dataPartida))
            .ShouldReturn()
            .ResultOfType <IEnumerable <Aeroporto> >()
            .Passing(c => c.Any(a => a.AeroportoId == aeroporto2.AeroportoId));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            Companhia companhia = db.Companhias.Find(id);

            db.Companhias.Remove(companhia);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "Id,Nome,Cnpj,Endereco")] Companhia companhia)
 {
     if (ModelState.IsValid)
     {
         db.Entry(companhia).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(companhia));
 }
        public ActionResult Create([Bind(Include = "Id,Nome,Cnpj,Endereco")] Companhia companhia)
        {
            if (ModelState.IsValid)
            {
                db.Companhias.Add(companhia);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(companhia));
        }
예제 #8
0
 public JsonResult Edit(Companhia companhia)
 {
     try
     {
         var newCompanhia = _companhiaStore.Save(companhia);
         return(Json(new { success = true, message = "Companhia guardada com sucesso!" }));
     }
     catch (Exception)
     {
         return(Json(new { success = false, message = "Erro ao guardar este Companhia" }));
     }
 }
        // GET: Companhias/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Companhia companhia = db.Companhias.Find(id);

            if (companhia == null)
            {
                return(HttpNotFound());
            }
            return(View(companhia));
        }
예제 #10
0
        public Companhia Update(Companhia companhia)
        {
            if (companhia == null)
            {
                return(null);
            }

            using (var context = new MapaDaForcaDbContext(Options))
            {
                context.Companhias.Add(companhia);
                context.Entry(companhia).State = EntityState.Modified;

                return(context.SaveChanges() > 0 ? companhia : null);
            }
        }
        public Companhia Save(Companhia save)
        {
            Companhia saved = null;

            if (_repository.IsExisting(save.Id))
            {
                saved = _repository.Update(save);
            }
            else
            {
                saved = _repository.Create(save);
            }

            return(saved);
        }
예제 #12
0
        /// <summary>
        /// Responsável por alterar o estado de uma companhia.
        /// </summary>
        /// <param name="id">id da companhia</param>
        /// <param name="estadoActualId">estado actual da companhia</param>
        /// <param name="estadoDestinoId">estado que o utilizador de helpdesk indicou para a companhia</param>
        /// <returns>Retorna a view das companhias ou das companhias recusadas, dependendo da
        /// localização do utilizador de helpdesk</returns>
        public IActionResult AlterarEstadoCompanhia(int id, int estadoActualId, int estadoDestinoId)
        {
            setupNav();
            var       comp      = _context.Companhia.Select(c => c).Where(i => (i.CompanhiaId == id)).First();
            Companhia companhia = (Companhia)comp;

            companhia.EstadoId = estadoDestinoId;
            _context.Update(companhia);
            _context.SaveChanges();

            if (estadoActualId == 0) //no state
            {
                ViewBag.CompanhiasAceites         = getCompanhiaPorEstado(1);
                ViewBag.NumeroCompanhiasRecusadas = getCompanhiaPorEstado(3).Count();
            }

            // se a companhia estiver recusada volto para a página de companhias recusadas.
            //return estadoActualId == 3 ? View("~/Views/Helpdesk/RecuperarCompanhias.cshtml") : View("~/Views/Helpdesk/Companhias.cshtml");

            // optar por esta forma, porque assim o url é sempre actualizado!
            return(estadoActualId == 3 ? RedirectToAction("RecuperarCompanhias") : RedirectToAction("Companhias"));
        }
예제 #13
0
        public async Task <IActionResult> RegisterCompanhia(RegisterCompanhiaViewModel model, string returnUrl = null)
        {
            ViewData["ReturnUrl"] = returnUrl;
            if (ModelState.IsValid)
            {
                HistoricoTransacoeMonetarias h1 = new HistoricoTransacoeMonetarias();
                ContaDeCreditos conta           = new ContaDeCreditos();
                conta.HistoricoTransacoeMonetarias = h1;
                Companhia companhia = new Companhia
                {
                    Contact         = model.Contact,
                    PaisId          = model.PaisId,
                    Morada          = model.Morada,
                    Nif             = model.Nif,
                    Nome            = model.Nome,
                    Email           = model.Email, //added -> Tive que acrescentar
                    ContaDeCreditos = conta
                };


                Colaborador user = new Colaborador {
                    Nome = "Colaborador", Apelido = "Admin", UserName = model.Email, Email = model.Email, IsAdministrador = true, Companhia = companhia
                };
                var result = await _userManager.CreateAsync(user, model.Password);// cria um user com a pw

                if (result.Succeeded)
                {
                    Notificacao notificacao1 = new Notificacao()
                    {
                        Mensagem = "Bem vindo à plataforma", Tipo = Notificacao.TYPE_INFO, Lida = false, UtilizadorId = user.Id
                    };
                    _context.Notificacao.Add(notificacao1);

                    Notificacao notificacao2 = new Notificacao()
                    {
                        Mensagem = "Confirme o seu email", Tipo = Notificacao.TYPE_WARNING, Lida = false, UtilizadorId = user.Id
                    };
                    _context.Notificacao.Add(notificacao2);

                    await _userManager.AddToRoleAsync(user, Roles.ROLE_COLABORADOR_ADMIN);//atribui a role


                    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=532713
                    // Send an email with this link
                    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);

                    var callbackUrl = Url.Action("ConfirmEmail", "Autenticacao", new { userId = user.Id, code = code }, protocol: HttpContext.Request.Scheme);
                    await _emailSender.SendEmailAsync(model.Email, "Confirm your account",
                                                      $"Please confirm your account by clicking this link: <a href='{callbackUrl}'>link</a>");

                    await _signInManager.SignInAsync(user, isPersistent : false);//para ele depois fazer login, regista-se e fica logo loged-in

                    _logger.LogInformation(3, "User created a new account with password.");
                    return(RedirectToLocal(returnUrl));// redirecionar para o homeloged in? sim xD
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
예제 #14
0
        public void DisponibilidadeIntervaloTesteIndisponivelReservado()
        {
            Aeroporto aeroporto1 = new Aeroporto()
            {
                AeroportoId = 1,
                Nome        = "Aeroporto1",
                Latitude    = 38.779444,
                Longitude   = -9.136111,
            };

            Aeroporto aeroporto2 = new Aeroporto()
            {
                AeroportoId = 2,
                Nome        = "Aeroporto2",
                Latitude    = 40.472222,
                Longitude   = -3.560833,
            };

            Companhia companhia = new Companhia()
            {
                Nome          = "Companhia1",
                CompanhiaId   = 1,
                ListaReservas = new List <Reserva>()
            };

            Jato jato1 = new Jato()
            {
                CompanhiaId          = 1,
                AeroportoId          = 1,
                Nome                 = "Jato1",
                EmFuncionamento      = true,
                CreditosBase         = 2200,
                CreditosPorKilometro = 1.1
            };

            Disponibilidade disponibilidade1 = new Disponibilidade()
            {
                DisponibilidadeId = 1,
                Inicio            = "22/09/2017",
                Fim = "24/09/2017"
            };

            Reserva reserva = new Reserva()
            {
                DataPartida        = new DateTime(2017, 9, 20),
                DataChegada        = new DateTime(2017, 9, 25),
                JatoId             = 1,
                AeroportoPartidaId = 1,
                AeroportoDestinoId = 2
            };

            companhia.ListaReservas.Add(reserva);

            jato1.ListaDisponibilidade.Add(disponibilidade1);

            DateTime dataPartida = new DateTime(2017, 9, 23);

            MyController <ClienteController> .Instance()
            .WithDbContext(dbContext => dbContext
                           .WithEntities(entities => entities.AddRange(
                                             aeroporto1, aeroporto2, reserva, companhia, jato1, disponibilidade1)))
            .Calling(c => c.AeroportosDestinoDisponiveis(aeroporto1.AeroportoId, dataPartida))
            .ShouldReturn()
            .ResultOfType <IEnumerable <Aeroporto> >()
            .Passing(c => c.Count() == 0);
        }
예제 #15
0
        public ActionResult Create(Companhia companhia)
        {
            var newCompanhia = _companhiaStore.Save(companhia);

            return(new RedirectToActionResult("Detail", "Companhia", new { @id = newCompanhia.Id, @message = true }));
        }