public async Task <IActionResult> Reservar([Bind("Id_anuncio, Id_reserva, Utilizador.Id_utilizador, Data_inicio, Data_fim")] ReservasAnuncios reservasAnuncios, string Preco)
        {
            var claimsidentity = User.Identity as ClaimsIdentity;

            if (User.Identity.IsAuthenticated)
            {
                if (!_context.Reservas.Where(a => a.Utilizador.Email == claimsidentity.Name && a.Anuncio.Id_anuncio == reservasAnuncios.Id_anuncio && a.Data_inicio == reservasAnuncios.Data_inicio && a.Data_fim == reservasAnuncios.Data_fim).Any())
                {
                    var claimsIdentity = User.Identity as ClaimsIdentity;
                    var utilizador     = _context.Utilizador.FirstOrDefault(a => a.Email == User.Identity.Name);
                    var anuncio        = _context.Anuncios.FirstOrDefault(a => a.Id_anuncio == reservasAnuncios.Id_anuncio);



                    ViewBag.mensagem = "";

                    double Total = double.Parse(Preco, CultureInfo.InvariantCulture.NumberFormat);


                    if (reservasAnuncios.Data_fim > reservasAnuncios.Data_inicio)
                    {
                        Reservas novaReserva = new Reservas
                        {
                            Anuncio     = anuncio,
                            Utilizador  = utilizador,
                            Data_inicio = reservasAnuncios.Data_inicio,
                            Data_fim    = reservasAnuncios.Data_fim,
                            Preco       = Total,
                            Cancelado   = false,
                            Aceite      = false
                        };



                        await _context.Reservas.AddAsync(novaReserva);

                        await _context.SaveChangesAsync();

                        return(RedirectToAction("Anuncio", new { id = reservasAnuncios.Id_anuncio }));
                    }
                    else
                    {
                        ViewBag.mensagem = "Data inválida.";
                        return(RedirectToAction("Anuncio", new { id = reservasAnuncios.Id_anuncio }));
                    }
                }
                else
                {
                    ViewBag.mensagem = "Já tens uma reserva para esta data";
                    return(RedirectToAction("Anuncio", new { id = reservasAnuncios.Id_anuncio }));
                }
            }
            else
            {
                string url = "../Identity/Account/Login";
                return(Redirect(url));
            }
        }
        public async Task <IActionResult> Aceitar(int id)
        {
            var reserva = await _context.Reservas.FindAsync(id);

            reserva.Aceite    = true;
            reserva.Cancelado = false;

            await _context.SaveChangesAsync();

            return(RedirectToAction("Index", "Painel", new { area = "" }));
        }
示例#3
0
        public async Task <IActionResult> EditarFoto(UtilizadorModel model)
        {
            var claimsidentity = User.Identity as ClaimsIdentity;
            var utilizador     = _context.Utilizador.FirstOrDefault(a => a.Email == User.Identity.Name);

            if (ModelState.IsValid)
            {
                if (model.ImagemPerfil != null)
                {
                    string folder = "DBImages/perfil/";
                    folder += Guid.NewGuid().ToString() + "_" + model.ImagemPerfil.FileName;

                    model.UrlImagemPerfil = "/" + folder;

                    string serverFolder = Path.Combine(_hostEnvironment.WebRootPath, folder);
                    await model.ImagemPerfil.CopyToAsync(new FileStream(serverFolder, FileMode.Create));

                    utilizador.UrlImagemPerfil = model.UrlImagemPerfil;

                    _context.Utilizador.Update(utilizador);

                    await _context.SaveChangesAsync();
                }
            }


            if (ViewBag.Title == "Faturacao")
            {
                return(RedirectToAction("GerirFaturacao"));
            }
            else if (ViewBag.Title == "Verificacao")
            {
                return(RedirectToAction("GerirVerificacao"));
            }
            return(RedirectToAction("GerirConta"));
        }