public IActionResult Login(LoginUserBindingModel model) { if (!this.IsValidModel(model)) { this.Model["message"] = this.GetErrors(); return(this.View()); } using (var db = new MyTubeDbContext()) { User user = db.Users .FirstOrDefault(u => u.Username == model.Username && u.Password == model.Password); if (user == null) { this.Model["message"] = "<p>Invalid user or password</p>"; return(this.View()); } this.SignIn(user.Username, user.Id); } return(new RedirectResult("/home/wellcome")); }
public IActionResult Details(int tubeId) { if (!this.User.IsAuthenticated) { return(new RedirectResult("/")); } using (var db = new MyTubeDbContext()) { Tube tube = db.Tubes.FirstOrDefault(t => t.Id == tubeId); if (tube == null) { return(new RedirectResult("/")); } tube.Views++; db.SaveChanges(); this.Model["title"] = tube.Title; this.Model["tubeId"] = tube.YouTubeId; this.Model["author"] = tube.Author; this.Model["views"] = tube.Views.ToString(); this.Model["desc"] = tube.Description; } return(this.View()); }
public IActionResult Upload(UploadTubeBindingModel model) { if (!this.User.IsAuthenticated) { return(new RedirectResult("/")); } if (!this.IsValidModel(model)) { this.Model["message"] = this.GetErrors(); return(this.View()); } var userId = this.Request.Session.Get <int>(SessionStore.CurrentUserIdKey); Tube tube = new Tube(); tube.Title = model.Title; tube.Author = model.Author; tube.YouTubeId = model.YouTubeId; tube.Description = model.Description; tube.UploaderId = userId; using (var db = new MyTubeDbContext()) { db.Tubes.Add(tube); db.SaveChanges(); } this.Model["message"] = "<p>The Tube Successfully added</p>"; return(this.View()); }
public IActionResult Wellcome() { if (!this.User.IsAuthenticated) { return(this.Index()); } this.Model["username"] = this.User.Name; using (var db = new MyTubeDbContext()) { var allTubes = db.Tubes.ToList(); string tubeCard = File.ReadAllText(Paths.PartialViewsPath + "TubeCard.html"); StringBuilder allTubesView = new StringBuilder(); foreach (var tube in allTubes) { string tubeView = string.Format(tubeCard, tube.Id, tube.YouTubeId, tube.Title, tube.Author); allTubesView.AppendLine(tubeView); } this.Model["allTubes"] = allTubesView.ToString(); } return(this.View()); }
public IActionResult Profile() { if (!this.User.IsAuthenticated) { return(new RedirectResult("/users/login")); } int userId = this.Request.Session.Get <int>(SessionStore.CurrentUserIdKey); using (var db = new MyTubeDbContext()) { var userInfo = db.Users .Where(u => u.Id == userId) .Select(u => new { u.Username, u.Email }) .First(); var userTubes = db.Tubes .Where(t => t.UploaderId == userId) .Select(t => new { t.Id, t.Title, t.Author }) .ToList(); StringBuilder userTubesTable = new StringBuilder(); string tableRow = File.ReadAllText(Paths.PartialViewsPath + "TableRow.html"); int row = 0; foreach (var tube in userTubes) { row++; string rowFilled = string.Format(tableRow, row, tube.Title, tube.Author, tube.Id); userTubesTable.AppendLine(rowFilled); } this.Model["userInfo"] = $"@{userInfo.Username}<br />({userInfo.Email})"; this.Model["userTubes"] = userTubesTable.ToString(); } return(this.View()); }
public IActionResult Register(RegisterUserBindingModel model) { if (!this.IsValidModel(model)) { this.Model["message"] = this.GetErrors(); return(this.View()); } using (var db = new MyTubeDbContext()) { var user = new User(); user.Username = model.Username; user.Password = model.Password; user.Email = model.Email; db.Users.Add(user); db.SaveChanges(); } this.Model["message"] = "<p>Successful registration</p>"; return(this.View()); }