public async Task <IActionResult> Edit(int id, [Bind("Id,Name,Capacity,City,Location")] Cinemas cinema) { if (id != cinema.Id) { RedirectToAction(nameof(Index)); } if (ModelState.IsValid) { try { if (await _context.Sessions.Where(s => s.Movie.Id == id).AnyAsync())//verifica se o filme tem sessoes agendadas { ViewData["message"] = "Não é possivel alterar o cinema, tendo sessões agendadas para o mesmo."; return(View(cinema)); } if (_context.Cinemas.Where(c => c.Name == cinema.Name && c.Id != cinema.Id).Any())//verifica se existe algum cinema com o mesmo nome { ViewData["message"] = "Já existe um cinema com o mesmo nome."; return(View(cinema)); } _context.Update(cinema); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!CinemasExists(cinema.Id)) { RedirectToAction(nameof(Index)); } else { RedirectToAction(nameof(Index)); } } return(RedirectToAction(nameof(Index))); } return(View(cinema)); }
public async Task <IActionResult> Edit(int Id, string Email, string Name, DateTime DoB, string Role, IFormFile Avatar) { var user = _context.User.Find(Id); if (user == null) { return(NotFound()); } if (ModelState.IsValid) { if (_context.User.Where(u => u.Email == Email && u.Id != Id).Any())//verifica se existe algum utilizador com o mesmo email { ViewData["message"] = "Já existe um utilizador com o mesmo email."; return(View(_context.User.Find(Id))); } try { //verifica se o avatar mudou if (Avatar == null) { } //não muda a imagem else if (!Avatar.ContentType.Contains("image")) //se o poster não fôr imagem usa-se a imagem default { //apaga a antiga imagem if (user.Avatar != "default.png") { System.IO.File.Delete(_environment.WebRootPath + "/images/users/" + user.Avatar); } //guarda a nova imagem user.Avatar = "default.png"; } else { //update atualiza a imagem //apaga o antigo poster excepto se for o poster default if (user.Avatar != "default.png") { System.IO.File.Delete(_environment.WebRootPath + "/images/users/" + user.Avatar); } Guid g; g = Guid.NewGuid(); string extensao = Path.GetExtension(Avatar.FileName).ToLower(); // caminho do ficheiro user.Avatar = g.ToString() + extensao; //guarda a imagem using var fileStream = new FileStream(_environment.WebRootPath + "/images/users/" + g.ToString() + extensao, FileMode.Create); await Avatar.CopyToAsync(fileStream); } //altera os dados do utilizador user.Email = Email; user.Name = Name; user.DoB = DoB; user.Role = Role; _context.Update(user); //altera os dados do application user var netUser = await _context.Users.Where(u => u.User == Id).FirstOrDefaultAsync(); netUser.UserName = Email; netUser.Email = Email; netUser.Nome = Name; //altera o cargo dependendo da opcao escolhida var userRole = await _context.UserRoles.Where(uR => uR.UserId == netUser.Id).FirstOrDefaultAsync(); if (userRole.RoleId == "1" && Role == "User") //remove Admin e dá User { await _userManager.RemoveFromRoleAsync(netUser, "Admin"); await _userManager.AddToRoleAsync(netUser, "User"); } else if (userRole.RoleId == "2" && Role == "Admin") // remove User e dá Admin { await _userManager.RemoveFromRoleAsync(netUser, "User"); await _userManager.AddToRoleAsync(netUser, "Admin"); } await _userManager.UpdateAsync(netUser); //edita o application user com os novos dados _context.Update(userRole); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!UsersExists(Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } List <SelectListItem> list = new List <SelectListItem> { new SelectListItem() { Text = "User", Value = "User" }, new SelectListItem() { Text = "Admin", Value = "Admin" } }; ViewData["Roles"] = new SelectList(list, "Value", "Text"); return(View(user)); }
public async Task <IActionResult> Edit(int id, int Id, string Name, string Description, string Genres, int Duration, int Min_age, bool Highlighted, IFormFile Poster) { Movies movie = _context.Movies.Find(Id); if (id != movie.Id) { RedirectToAction(nameof(Index)); } if (ModelState.IsValid) { if (_context.Movies.Where(m => m.Name == movie.Name && m.Id != movie.Id).Any())//verifica se existe algum filme com o mesmo nome { ViewData["message"] = "Já existe um filme com o mesmo nome."; return(View(movie)); } try { //verifica se há sessões ativas para o filme if (await _context.Sessions.Where(s => s.Movie.Id == id).AnyAsync()) { ViewData["message"] = "Não é possivel alterar o filme, tendo sessões agendadas para o mesmo."; return(View(movie)); } //verifica se o cartaz mudou if (Poster == null) { } //não muda a imagem else if (!Poster.ContentType.Contains("image")) //se o poster não fôr imagem usa-se a imagem default { //apaga a antiga imagem if (movie.Poster != "default.png") { System.IO.File.Delete(_environment.WebRootPath + "/images/movies/" + movie.Poster); } //guarda a nova imagem movie.Poster = "default.png"; await _context.SaveChangesAsync(); } else { //update atualiza a imagem //apaga o antigo poster excepto se for o poster default if (movie.Poster != "default.png") { System.IO.File.Delete(_environment.WebRootPath + "/images/movies/" + movie.Poster); } Guid g; g = Guid.NewGuid(); string extensao = Path.GetExtension(Poster.FileName).ToLower(); // caminho do ficheiro movie.Poster = g.ToString() + extensao; //guarda a imagem using var fileStream = new FileStream(_environment.WebRootPath + "/images/movies/" + g.ToString() + extensao, FileMode.Create); await Poster.CopyToAsync(fileStream); } movie.Name = Name; movie.Description = Description; movie.Genres = Genres; movie.Duration = Duration; movie.Highlighted = Highlighted; movie.Min_age = Min_age; _context.Update(movie); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!MoviesExists(movie.Id)) { RedirectToAction(nameof(Index)); } else { RedirectToAction(nameof(Index)); } } return(RedirectToAction(nameof(Index))); } return(View(movie)); }
public async Task <IActionResult> OnPostAsync() { var netUser = await _userManager.GetUserAsync(User); if (netUser == null) { return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.")); } if (!ModelState.IsValid) { LoadAsync(netUser); return(Page()); } var bdUser = await _context.User.FindAsync(netUser.User); var file = HttpContext.Request.Form.Files.GetFile("Avatar"); //verifica se o avatar mudou if (file == null) { } //não muda a imagem else if (!file.ContentType.Contains("image")) //se o poster não fôr imagem usa-se a imagem default { //apaga a antiga imagem if (bdUser.Avatar != "default.png") { System.IO.File.Delete(_environment.WebRootPath + "/images/users/" + bdUser.Avatar); } //guarda a nova imagem bdUser.Avatar = "default.png"; } else { //update atualiza a imagem //apaga o antigo poster excepto se for o poster default if (bdUser.Avatar != "default.png") { System.IO.File.Delete(_environment.WebRootPath + "/images/users/" + bdUser.Avatar); } Guid g; g = Guid.NewGuid(); string extensao = Path.GetExtension(file.FileName).ToLower(); // caminho do ficheiro bdUser.Avatar = g.ToString() + extensao; //guarda a imagem using var fileStream = new FileStream(_environment.WebRootPath + "/images/users/" + g.ToString() + extensao, FileMode.Create); await file.CopyToAsync(fileStream); } if (Input.Nome != netUser.Nome) //atualiza o nome { netUser.Nome = Input.Nome; } if (Input.DoB != bdUser.DoB) //atualiza a data de nascimento { bdUser.DoB = Input.DoB; } _context.Update(bdUser); //atualiza a imagem await _userManager.UpdateAsync(netUser); await _context.SaveChangesAsync(); await _signInManager.RefreshSignInAsync(netUser); StatusMessage = "O seu perfil foi atualizado."; return(RedirectToPage()); }