예제 #1
0
        public async Task <IActionResult> SetAprovado(int id, bool aprovado)
        {
            string Status = CheckStatus();

            switch (Status)
            {
            case "Admin":
                Restaurante _restaurante = _context.Restaurantes.Where(r => r.UtilizadorId == id).FirstOrDefault();

                if (aprovado)
                {
                    _restaurante.Aprovado = true;
                    _context.Update(_restaurante);
                    await _context.SaveChangesAsync();
                }
                else
                {
                    _context.Restaurantes.Remove(_restaurante);
                    await _context.SaveChangesAsync();

                    Utilizador _utilizador = _context.Utilizadors.Where(r => r.Id == id).FirstOrDefault();
                    _context.Utilizadors.Remove(_utilizador);
                    await _context.SaveChangesAsync();
                }


                return(RedirectToAction("ListarRestaurantesPro", "Restaurantes"));

            case "Cliente":
            case "Restaurante":
            case "NaoAutenticado":
                return(RedirectToAction("Login", "Utilizador"));

            default:
                return(RedirectToAction("Bloqueado", new RouteValueDictionary(
                                            new { controller = "Utilizador", action = "Bloqueado", Motivo = Status })));
            }
        }
예제 #2
0
        public async Task <string> AdicionarFavorito(int Id)
        {
            var _Cliente = _context.Clientes.Where(p => p.UtilizadorId.ToString() == HttpContext.Session.GetString("Id")).FirstOrDefault();
            var pC       = _context.PratoClientes.Where(p => p.PratoId == Id && p.ClienteId == _Cliente.Id).FirstOrDefault();

            if (pC != null)
            {
                _context.Remove(pC);
                await _context.SaveChangesAsync();

                return("<input id='FavoritoButton' class='ButaoFavoritos' type='submit' value='Adicionar Favorito' />");
            }
            else
            {
                PratoCliente _pC = new PratoCliente {
                    PratoId = Id, ClienteId = _Cliente.Id, Cliente = _Cliente
                };

                _context.PratoClientes.Add(_pC);
                await _context.SaveChangesAsync();

                return("<input id='FavoritoButton' class='ButaoFavoritos' style='text - decoration: none; outline: none; background - color: #006600;' type='submit' value='Tirar Favorito' />");
            }
        }
예제 #3
0
        public async Task <IActionResult> Registar([Bind("Id,Name,Email,Username,Password")] Utilizador utilizador, IFormFile files)   //ESTE ESTA FUNCIONAL
        {
            if (ModelState.IsValid)
            {
                List <Utilizador> existe = _context.Utilizadors.AsNoTracking().ToList();
                //Parte com cookies
                var u = existe.FirstOrDefault(u => (u.Username.Equals(utilizador.Username)) || (u.Email.Equals(utilizador.Email)));
                if (u == null)
                {
                    try
                    {
                        Random numAleatorio = new Random();
                        int    valorInteiro = numAleatorio.Next(10000, 100000);
                        string NomeFicheiro = valorInteiro + Path.GetFileName(files.FileName);

                        string uploads = Path.Combine(_he.ContentRootPath, "wwwroot/Images/Utilizadores/", NomeFicheiro);

                        FileStream fs = new FileStream(uploads, FileMode.Create);

                        files.CopyTo(fs);
                        fs.Close();

                        utilizador.Imagem = NomeFicheiro; // opiniao dar id + nome da imagem pq as imagens podem ter nomes iguais
                    }
                    catch (Exception)
                    {
                        utilizador.Imagem = "default_img.jpg";
                    }
                    utilizador.Bloqueado = true;
                    string codigo = RandomString(10);
                    utilizador.Motivo = "$" + codigo;
                    HttpContext.Session.SetString("Imagem", utilizador.Imagem);

                    // ENVIA EMAIL!!!!

                    var          fromAddress  = new MailAddress("*****@*****.**", "Jiro");
                    var          toAddress    = new MailAddress(utilizador.Email, utilizador.Name);
                    const string fromPassword = "******";
                    const string subject      = "Verificação Email";
                    string       body         = "Utilizador/VerificarConta?Ver=" + utilizador.Motivo;

                    var smtp = new SmtpClient
                    {
                        Host                  = "smtp.gmail.com",
                        Port                  = 587,
                        EnableSsl             = true,
                        DeliveryMethod        = SmtpDeliveryMethod.Network,
                        UseDefaultCredentials = false,
                        Credentials           = new NetworkCredential(fromAddress.Address, fromPassword)
                    };
                    using (var message = new MailMessage(fromAddress, toAddress)
                    {
                        Subject = subject,
                        Body = body
                    })
                    {
                        smtp.Send(message);
                    }


                    _context.Add(utilizador);
                    await _context.SaveChangesAsync();

                    int     clienteId = utilizador.Id;
                    Cliente cliente   = new Cliente();
                    cliente.UtilizadorId = clienteId;
                    _context.Add(cliente);
                    await _context.SaveChangesAsync();

                    return(RedirectToAction("Login", "Utilizador"));
                }
                else
                {
                    ModelState.AddModelError("Username", "This user already exists");
                }
            }

            return(View(utilizador));
        }