public static void Initialize(IServiceProvider serviceProvider) { using (var context = new GameCatalogContext(serviceProvider.GetRequiredService <DbContextOptions <GameCatalogContext> >())) { if (context.Game.Any()) { return; } context.AddRange( new Game { Title = "God of War (2018)", ReleaseDate = DateTime.Parse("2018-4-20"), Genre = "Action-Adventure", Price = 15.99M }, new Game { Title = "Red Dead Redemption II", ReleaseDate = DateTime.Parse("2018-10-26"), Genre = "Action-Adventure", Price = 15.99M }, new Game { Title = "Marvel's Spider-Man", ReleaseDate = DateTime.Parse("2018-9-07"), Genre = "Action-Adventure", Price = 15.99M } ); context.SaveChanges(); } }
public async Task <IActionResult> Edit(Game game, IFormFile image, string publisherName) { if (ModelState.IsValid) { await using var db = new GameCatalogContext(); if (db.Publishers.FirstOrDefault(publisher => publisher.Name == publisherName) == null) { await db.Publishers.AddAsync(new Publisher() { Name = publisherName }); await db.SaveChangesAsync(); } game.PublisherId = db.Publishers.FirstOrDefault(publisher => publisher.Name == publisherName).Id; var dir = _env.WebRootPath; if (image != null) { await using var fileStream = new FileStream(Path.Combine(dir, $"{game.Name}.png"), FileMode.Create, FileAccess.Write); await image.CopyToAsync(fileStream); game.Img = $"{game.Name}.png"; } else { game.Img = game?.Img; } await _catalog.UpdateGameAsync(game); } else { return(BadRequest()); } return(RedirectToAction("Index", "Home")); }
public async Task <IActionResult> Redirect(int id) { await using var db = new GameCatalogContext(); var game = db.Games.FirstOrDefault(nGame => nGame.Id == id); return(RedirectToAction("GamePage", "Game", game)); }
public async Task <IActionResult> Edit(User user, IFormFile image) { if (user == null) { return(BadRequest()); } var dir = _env.WebRootPath; await using var db = new GameCatalogContext(); var needUser = db.Users.FirstOrDefault(nU => nU.Login == Request.Cookies["Auth"]); if (image != null) { await using var fileStream = new FileStream(Path.Combine(dir, $"{user.Login}.png"), FileMode.Create, FileAccess.Write); await image.CopyToAsync(fileStream); user.Img = $"{user.Login}.png"; } else { user.Img = needUser?.Img; } user.Password = user.Password != null?GetHash(user.Password) : db.Users.FirstOrDefault(needUser => needUser.Login == Request.Cookies["Auth"])?.Password; user.RoleId = db.Users.FirstOrDefault(needUser => needUser.Login == Request.Cookies["Auth"]).RoleId; await _catalog.UpdateUserAsync(user); Response.Cookies.Delete("Auth"); return(RedirectToAction("Login", "Users")); }
public async Task <IActionResult> Edit(int id) { await using var db = new GameCatalogContext(); var needGame = db.Games.FirstOrDefault(game => game.Id == id); return(View(needGame)); }
public async Task <IActionResult> DeleteComment(int id) { await using var db = new GameCatalogContext(); Game ng = db.Games.FirstOrDefault(game => game.Id == db.Comments.FirstOrDefault(nComment => nComment.Id == id).GameId); await _catalog.RemoveCommentAsync(id); return(RedirectToAction("GamePage", "Game", ng)); }
public async Task <IActionResult> AddComment(int id, string content) { await using var db = new GameCatalogContext(); Comment comment = new(){ Content = content, Date = DateTime.Now, GameId = id, UserId = db.Users.FirstOrDefault(user => user.Login == Request.Cookies["Auth"]).Id }; await _catalog.AddCommentAsync(comment); return(RedirectToAction("GamePage", "Game", db.Games.FirstOrDefault(game => game.Id == id))); }
public async Task <IActionResult> AddPurchases(int id) { await using var db = new GameCatalogContext(); Purchases purchases = new(){ GameId = id, UserId = db.Users.FirstOrDefault(user => user.Login == Request.Cookies["Auth"]).Id }; await _catalog.BuyAsync(purchases); await db.SaveChangesAsync(); return(RedirectToAction("GamePage", "Game", db.Games.FirstOrDefault(game => game.Id == id))); }
public async Task <IActionResult> Edit() { await using var db = new GameCatalogContext(); var needUser = db.Users.FirstOrDefault(user => user.Login == Request.Cookies["Auth"]); if (needUser != null) { needUser.Password = null; } return(View(needUser)); }
public async Task <IActionResult> Login(string login, string password) { await using var db = new GameCatalogContext(); if (db.Users.ToList().Exists(user => user.Login == $"{login}")) { if (db.Users.FirstOrDefault(user => user.Login == $"{login}")?.Password == $"{GetHash(password)}") { Response.Cookies.Append("Auth", login); } else { await Response.WriteAsync("Wrong passwod"); } } else { await Response.WriteAsync("User with that login does not exist"); } return(RedirectToAction("Index", "Home")); }