public async Task <IActionResult> Create([Bind("Id,Tarefa")] Profissao profissao)
        {
            if (ModelState.IsValid)
            {
                _context.Add(profissao);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(profissao));
        }
示例#2
0
        public async Task <IActionResult> Create([Bind("Id,Nome")] Genero genero)
        {
            if (ModelState.IsValid)
            {
                _context.Add(genero);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(genero));
        }
示例#3
0
        public async Task <IActionResult> Create([Bind("Id,Premio,FilmeFK,PessoaFK")] PessoaFilme pessoaFilme)
        {
            if (ModelState.IsValid)
            {
                _context.Add(pessoaFilme);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["FilmeFK"]  = new SelectList(_context.Filme, "Id", "Titulo", pessoaFilme.FilmeFK);
            ViewData["PessoaFK"] = new SelectList(_context.Pessoa, "Id", "Nome", pessoaFilme.PessoaFK);
            return(RedirectToAction("Index", "Filmes"));
        }
        public async Task <IActionResult> Create([Bind("Id,FilmeFK,GeneroFK")] FilmeGenero filmeGenero)
        {
            if (ModelState.IsValid)
            {
                _context.Add(filmeGenero);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["FilmeFK"]  = new SelectList(_context.Filme, "Id", "Titulo", filmeGenero.FilmeFK);
            ViewData["GeneroFK"] = new SelectList(_context.Genero, "Id", "Nome", filmeGenero.GeneroFK);
            return(View(filmeGenero));
        }
        public async Task <IActionResult> Create([Bind("Id,Estado,UtilIdFK,FilFK")] UtilFilme utilFilme)
        {
            utilFilme.UtilIdFK = _userManager.GetUserId(User);


            if (ModelState.IsValid)
            {
                _context.Add(utilFilme);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["FilFK"] = new SelectList(_context.Filme, "Id", "Titulo", utilFilme.FilFK);
            return(View(utilFilme));
        }
示例#6
0
        public async Task CreateGestorAsync(WatchListDbContext context, UserManager <ApplicationUser> userManager)
        {
            const string nome     = "gestor";
            const string email    = "*****@*****.**";
            const string password = "******";



            var user = new ApplicationUser
            {
                UserName       = email,
                Email          = email,
                DataRegisto    = DateTime.Now,
                EmailConfirmed = true, // o email está confirmado
            };

            if (!userManager.Users.Contains <ApplicationUser>(user))
            {
                var util = new Watch_List.Models.Utilizador

                {
                    Email    = email,
                    Id       = 1,
                    Nome     = nome,
                    UtilIdFK = user.Id,
                };
                var result = await userManager.CreateAsync(user, password);

                if (result.Succeeded)
                {
                    await userManager.AddToRoleAsync(user, "Gestor");
                }
                context.Add(context.Utilizador); // adicionar o utilizador
                await context.SaveChangesAsync();
            }
        }
        public async Task <IActionResult> Create([Bind("Id,Nome,Foto,DataNasc,DataObi,DataInic,Nacionalidade,ProfissaoFK")] Pessoa pessoa, IFormFile imagem)
        {
            if (pessoa.ProfissaoFK < 0)
            {
                // não foi escolhido uma profissao válida
                ModelState.AddModelError("", "Não se esqueça de escolher uma profissão...");
                // devolver o controlo à View
                var profissao = (from pr in _context.Profissao
                                 join p in _context.Pessoa on pr.Id equals p.ProfissaoFK
                                 select pr)
                                .OrderBy(pr => pr.Tarefa);

                ViewData["ProFK"] = new SelectList(profissao, "Id", "Tarefa");
                return(View(pessoa));
            }
            // var auxiliar
            string caminhoCompleto = "";


            if (imagem == null)
            {
                // não há ficheiro
                // adicionar msg de erro
                ModelState.AddModelError("", "Adicione uma fotografia, por favor");
                // devolver o controlo à View
                var profissao = (from pr in _context.Profissao
                                 join p in _context.Pessoa on pr.Id equals p.ProfissaoFK
                                 select pr)
                                .OrderBy(pr => pr.Tarefa);

                ViewData["ProFK"] = new SelectList(profissao, "Id", "Tarefa");

                return(View(pessoa));
                //pessoa.Foto = "noimage.png";
            }
            else
            {
                // há ficheiro. Mas, será um ficheiro válido?
                if (imagem.ContentType == "image/jpeg" || imagem.ContentType == "image/png" || imagem.ContentType == "image/jpg")
                {
                    // definir o novo nome da fotografia
                    Guid g;
                    g = Guid.NewGuid();
                    caminhoCompleto = g.ToString(); // determinar a extensão do nome da imagem

                    string extensao = Path.GetExtension(imagem.FileName).ToLower();
                    // caminho completo do ficheiro
                    caminhoCompleto = caminhoCompleto + extensao;

                    // associar este ficheiro aos dados ds foto
                    pessoa.Foto = caminhoCompleto;

                    // localização do armazenamento da imagem
                    string localizacaoFicheiro = _caminho.WebRootPath;
                    caminhoCompleto = Path.Combine(localizacaoFicheiro, "Imagens", caminhoCompleto);
                }
                else
                {
                    // ficheiro não é válido
                    // adicionar msg de erro
                    ModelState.AddModelError("", "Só pode escolher uma imagem");
                    // devolver o controlo à View
                    var profissao = (from pr in _context.Profissao
                                     join p in _context.Pessoa on pr.Id equals p.ProfissaoFK
                                     select pr)
                                    .OrderBy(pr => pr.Tarefa);

                    ViewData["ProFK"] = new SelectList(profissao, "Id", "Tarefa");
                    return(View(pessoa));
                }
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Add(pessoa);
                    await _context.SaveChangesAsync();

                    // vou guardar, agora, no disco rígido do Servidor a imagem
                    using var stream = new FileStream(caminhoCompleto, FileMode.Create);
                    await imagem.CopyToAsync(stream);

                    return(RedirectToAction(nameof(Index)));
                }
                catch (Exception)
                {
                    ModelState.AddModelError("", "Ocorreu um erro...");
                }
            }
            ViewData["ProFK"] = new SelectList(_context.Profissao.OrderBy(pr => pr.Tarefa), "Id", "Tarefa", pessoa.ProfissaoFK);

            return(View(pessoa));
        }
示例#8
0
        /// <summary>
        /// criar um novo Utilizador
        ///  registar os dados pessoais do utilizador
        /// </summary>
        /// <param name="returnUrl"></param>
        /// <returns></returns>
        public async Task <IActionResult> OnPostAsync(string returnUrl = null)
        {
            returnUrl ??= Url.Content("~/");

            if (ModelState.IsValid)

            {
                var user = new ApplicationUser {
                    UserName       = Input.Email,
                    Email          = Input.Email,
                    DataRegisto    = DateTime.Now,
                    EmailConfirmed = true, // o email está confirmado
                };
                var result = await _userManager.CreateAsync(user, Input.Password);

                if (result.Succeeded)
                {
                    _logger.LogInformation("User created a new account with password.");

                    await _userManager.AddToRoleAsync(user, "Gestor");

                    //    //*************************************************************
                    //    // Guardar os dados do Utilizador
                    //    //*************************************************************
                    //    // preparar os dados do utilizador para serem adicionados à BD


                    //    Input.Utilizador.Email = Input.Email;

                    //    Input.Utilizador.UtilIdFK = user.Id;  // adicionar o ID do utilizador,
                    //                                          // para formar uma 'ponte' (foreign key) entre
                    //                                          // os dados da autenticação e os dados do 'negócio'


                    //    // estamos em condições de guardar os dados na BD
                    try
                    {
                        //           _context.Add(Input.Utilizador); // adicionar o utilizador
                        await _context.SaveChangesAsync();



                        // Enviar para o utilizador para a página de confirmação da criaçao de Registo
                        return(RedirectToPage("RegisterConfirmation"));
                    }
                    catch (Exception)
                    {
                        // Mas, o USER já foi criado na BD
                        // é efetuado o Roolback da ação
                        await _userManager.DeleteAsync(user);

                        // avisar que houve um erro
                        ModelState.AddModelError("", "Ocorreu um erro na criação de dados");
                    }

                    /*Codigo default*/
                    //    var code = await _userManager.GenerateEmailConfirmationTokenAsync(user);
                    //    code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code));
                    //    var callbackUrl = Url.Page(
                    //        "/Account/ConfirmEmail",
                    //        pageHandler: null,
                    //        values: new { area = "Identity", userId = user.Id, code = code, returnUrl = returnUrl },
                    //        protocol: Request.Scheme);

                    //    await _emailSender.SendEmailAsync(Input.Email, "Confirm your email",
                    //        $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>.");

                    //    if (_userManager.Options.SignIn.RequireConfirmedAccount)
                    //    {
                    //        return RedirectToPage("RegisterConfirmation", new { email = Input.Email, returnUrl = returnUrl });
                    //    }
                    //    else
                    //    {
                    //        await _signInManager.SignInAsync(user, isPersistent: false);
                    //        return LocalRedirect(returnUrl);
                    //    }
                }
                foreach (var error in result.Errors)
                {
                    ModelState.AddModelError(string.Empty, error.Description);
                }
            }

            // If we got this far, something failed, redisplay form
            return(Page());
        }
        public async Task<IActionResult> PutFilme(int id, [FromForm]Filme filme, IFormFile poster)
        {
            if (id != filme.Id)
            {
                return BadRequest();
            }

            string caminhoCompleto = "";
            var deprecatedFilme = await _context.Filme.FindAsync(id);

            if (poster.FileName == "null")
            {
                filme.Poster = deprecatedFilme.Poster;
            }
            else
            {

                // definir o novo nome da fotografia     
                Guid g;
                g = Guid.NewGuid();

                //apagar a imagem anterior
                string localizacaoFicheiro = _path.WebRootPath;
                    caminhoCompleto = Path.Combine(localizacaoFicheiro, "Imagens", deprecatedFilme.Poster);
                if (System.IO.File.Exists(caminhoCompleto))
                {
                    System.IO.File.Delete(caminhoCompleto);
                }

                caminhoCompleto = g.ToString(); // determinar a extensão do nome da imagem

                string extensao = Path.GetExtension(poster.FileName).ToLower();
                // caminho completo do ficheiro
                caminhoCompleto += extensao;

                // associar este ficheiro aos dados ds foto
                filme.Poster = caminhoCompleto;

                // localização do armazenamento da imagem

                caminhoCompleto = Path.Combine(localizacaoFicheiro, "Imagens", caminhoCompleto);
            }
            _context.Entry<Filme>(deprecatedFilme).State = EntityState.Detached;
            try
            {
                _context.Entry(filme).State = EntityState.Modified;
                await _context.SaveChangesAsync();
                if(poster.FileName != "null")
                {
                    using var stream = new FileStream(caminhoCompleto, FileMode.Create);
                    await poster.CopyToAsync(stream);
                }
                
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!FilmeExists(id))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return NoContent();
        }
示例#10
0
        public async Task <IActionResult> Create([Bind("Id,Titulo,Ano,Resumo,Poster,Trailer")] Filme filme, IFormFile foto)
        {
            string caminhoCompleto = "";
            bool   haImagem        = false;

            // avaliar se  o utilizador escolheu uma opção válida na dropdown
            /******************************************/


            if (foto == null)
            {
                // não há ficheiro!

                filme.Poster = "noimage.png";
            }
            else
            {
                // há ficheiro.

                if (foto.ContentType == "image/jpeg" || foto.ContentType == "image/png")
                {
                    //existe imagem

                    Guid g;
                    g = Guid.NewGuid();
                    // identificar a Extensão do ficheiro
                    string extensao = Path.GetExtension(foto.FileName).ToLower();
                    // nome do ficheiro
                    string nome = g.ToString() + extensao;


                    // Identificar o caminho onde o ficheiro vai ser guardado
                    caminhoCompleto = Path.Combine(_caminho.WebRootPath, "Imagens", nome);
                    // associar o nome da fotografia
                    filme.Poster = nome;
                    // assinalar que existe imagem
                    haImagem = true;
                }
                else
                {
                    filme.Poster = "noimage.png";
                }
            }
            if (ModelState.IsValid)
            {
                try {
                    _context.Add(filme);
                    await _context.SaveChangesAsync();

                    if (haImagem)
                    {
                        using var stream = new FileStream(caminhoCompleto, FileMode.Create);
                        await foto.CopyToAsync(stream);
                    }

                    // redireciona o utilizador para a View Index
                    return(RedirectToAction(nameof(Index)));
                }
                catch (Exception)
                {
                    ModelState.AddModelError("", "Ocorreu um erro...");
                }
            }

            ViewData["ListFilmes"] = new SelectList(_context.Filme.OrderBy(c => c.Titulo), "Id", "Titulo", foto);

            return(View(filme));
        }