Exemplo n.º 1
0
        public bool Create(string username, string title, string author, string youTubeId, string description)
        {
            using (MeTubeDbContext db = new MeTubeDbContext())
            {
                Tube tube = new Tube
                {
                    Title        = title,
                    Author       = author,
                    YouTubeVideo = youTubeId,
                    Description  = description
                };

                User user = db.Users.FirstOrDefault(u => u.Username == username);

                db.Tubes.Add(tube);

                if (user != null)
                {
                    user.Tubes.Add(tube);
                    db.SaveChanges();
                    return(true);
                }
                return(false);
            }
        }
Exemplo n.º 2
0
        public IActionResult Register(RegisterModel model)
        {
            if (this.User.IsAuthenticated)
            {
                return(this.RedirectToAction(LoggedInHomePage));
            }

            if (!this.IsValidModel(model))
            {
                this.ShowErrorInfo("Your form is incorrect!");
                return(this.View());
            }

            var user = new User()
            {
                Username = model.Username,
                Email    = model.Email,
                Password = model.Password,
            };

            using (var db = new MeTubeDbContext())
            {
                db.Users.Add(user);
                db.SaveChanges();
            }

            this.SignIn(user.Id, user.Username);
            return(this.RedirectToAction(LoggedInHomePage));
        }
Exemplo n.º 3
0
        public static void Main()
        {
            var server = new WebServer(8000, new ControllerRouter(), new ResourceRouter());
            var db     = new MeTubeDbContext();

            MvcEngine.Run(server, db);
        }
Exemplo n.º 4
0
        public IActionResult Login(LoginModel model)
        {
            if (this.User.IsAuthenticated)
            {
                return(this.RedirectToAction(LoggedInHomePage));
            }

            if (!this.IsValidModel(model))
            {
                this.ShowErrorInfo("Your form is incorrect!");
                return(this.View());
            }

            User user;

            using (var db = new MeTubeDbContext())
            {
                user = db.Users
                       .FirstOrDefault(u => u.Username == model.Username);
            }

            if (user.Password != model.Password)
            {
                this.ShowErrorInfo("Your login details are incorrect!");
                return(this.View());
            }

            this.SignIn(user.Id, user.Username);
            return(this.RedirectToAction(LoggedInHomePage));
        }
Exemplo n.º 5
0
        public static void Main(string[] args)
        {
            var server = new WebServer(1337, new ControllerRouter(), new ResourceRouter());

            var dbContext = new MeTubeDbContext();

            MvcEngine.Run(server, dbContext);
        }
Exemplo n.º 6
0
        public static void Main(string[] args)
        {
            WebServer server = new WebServer(8000, new ControllerRouter(), new ResourceRouter());

            MeTubeDbContext context = new MeTubeDbContext();

            MvcEngine.Run(server, context);
        }
Exemplo n.º 7
0
        public Tube TubeExist(int id)
        {
            using (MeTubeDbContext db = new MeTubeDbContext())
            {
                Tube tube = db.Tubes.Find(id);

                return(tube);
            }
        }
Exemplo n.º 8
0
        public void IncrementTubeViews(int id)
        {
            using (MeTubeDbContext db = new MeTubeDbContext())
            {
                Tube tube = db.Tubes.Find(id);

                tube.Views++;
                db.SaveChanges();
            }
        }
Exemplo n.º 9
0
        public static void Main()
        {
            using (var db = new MeTubeDbContext())
            {
                db.Database.Migrate();
            }

            var server = new HttpServer(1337, new ControllerRouter(), new ResourceRouter());

            MvcEngine.Run(server);
        }
Exemplo n.º 10
0
 public bool UserExist(string username, string password)
 {
     using (MeTubeDbContext db = new MeTubeDbContext())
     {
         if (db.Users.Any(u => u.Username == username && u.Password == PasswordUtilities.GetPasswordHash(password)))
         {
             return(true);
         }
         return(false);
     }
 }
Exemplo n.º 11
0
 public List <AllTubeViewModel> All()
 {
     using (MeTubeDbContext db = new MeTubeDbContext())
     {
         return(db.Tubes
                .Select(t => new AllTubeViewModel
         {
             Title = t.Title,
             Author = t.Author,
             YouTubeId = t.YouTubeVideo
         })
                .ToList());
     }
 }
Exemplo n.º 12
0
        public IActionResult Profile()
        {
            if (!this.User.IsAuthenticated)
            {
                return(this.RedirectToAction(LoggedOutHomePage));
            }

            User user;
            IList <ProfileTubesViewModel> tubes;

            using (var db = new MeTubeDbContext())
            {
                user = db.Users
                       .FirstOrDefault(u => u.Username == this.User.Name);

                tubes = db.Tubes
                        .Where(t => t.UploaderId == user.Id)
                        .Select(t => new ProfileTubesViewModel
                {
                    Id     = t.Id,
                    Title  = t.Title,
                    Author = t.Author,
                })
                        .ToList();
            }

            var tubesResult = new StringBuilder();

            for (int i = 0; i < tubes.Count; i++)
            {
                var tube = tubes[i];

                tubesResult.AppendLine(
                    $@"<tr>
                        <td>{i+1}</td>
                        <td>{tube.Title}</td>
                        <td>{tube.Author}</td>
                        <td><a href=""/tubes/details?id={tube.Id}"">Details</a></td>
                    </tr>"
                    );
            }

            this.ViewData["username"] = user.Username;
            this.ViewData["email"]    = user.Email;
            this.ViewData["tubes"]    = tubesResult.ToString();

            return(this.View());
        }
Exemplo n.º 13
0
        static void Main(string[] args)
        {
            int port = 8000;

            var context = new MeTubeDbContext();

            context.Database.Migrate();

            Console.WriteLine("Database Ready!");

            var server = new WebServer(port,
                                       new ControllerRouter(),
                                       new ResourceRouter());

            MvcEngine.Run(server, context);
        }
Exemplo n.º 14
0
 public List <ProfileTubeModel> ProfileTubes(int userId)
 {
     using (MeTubeDbContext db = new MeTubeDbContext())
     {
         return(db.Tubes
                .Where(t => t.UserId == userId)
                .Select(t => new ProfileTubeModel
         {
             Id = t.Id,
             Title = t.Title,
             Author = t.Author,
             YouTubeId = t.YouTubeVideo
         })
                .ToList());
     }
 }
Exemplo n.º 15
0
        public IActionResult Home()
        {
            if (!this.User.IsAuthenticated)
            {
                return(this.RedirectToAction(LoggedOutHomePage));
            }

            IList <IndexTubesViewModel> tubes;

            using (var db = new MeTubeDbContext())
            {
                tubes = db.Tubes
                        .Select(t => new IndexTubesViewModel
                {
                    Title     = t.Title,
                    Author    = t.Author,
                    YoutubeId = t.YoutubeId
                })
                        .ToList();
            }

            var tubesResult = new StringBuilder();

            foreach (var tube in tubes)
            {
                tubesResult.Append(
                    $@"<div class=""col-md-4"">
                        <img class=""img-fluid img-thumbnail"" src=""https://img.youtube.com/vi/{tube.YoutubeId}/hqdefault.jpg"" alt=""{tube.Title}"" />
                        <p class=""text-center"">
                            {tube.Title}<br />
                            {tube.Author}
                        </p>
                    </div>"
                    );
            }

            this.ViewData["username"] = this.User.Name;
            this.ViewData["tubes"]    = tubesResult.ToString();

            return(this.View());
        }
Exemplo n.º 16
0
        public bool Create(string username, string password, string email)
        {
            using (MeTubeDbContext db = new MeTubeDbContext())
            {
                if (db.Users.Any(u => u.Username == username && u.Email == email))
                {
                    return(false);
                }

                User user = new User
                {
                    Username = username,
                    Email    = email,
                    Password = PasswordUtilities.GetPasswordHash(password)
                };

                db.Users.Add(user);
                db.SaveChanges();

                return(true);
            }
        }
Exemplo n.º 17
0
        public IActionResult Upload(TubeUploadModel model)
        {
            if (!this.User.IsAuthenticated)
            {
                return(this.RedirectToAction(LoggedOutHomePage));
            }

            if (!this.IsValidModel(model))
            {
                this.ShowErrorInfo("Your form is incorrect!");
                return(this.View());
            }

            var youtubeId = GetYoutubeId(model.YoutubeLink);

            if (string.IsNullOrEmpty(youtubeId))
            {
                this.ShowErrorInfo("Invalid Youtube Link!");
                return(this.View());
            }

            var tube = new Tube()
            {
                Title       = model.Title,
                Author      = model.Author,
                YoutubeId   = youtubeId,
                Description = model.Description,
                UploaderId  = this.User.Id
            };

            using (var db = new MeTubeDbContext())
            {
                db.Tubes.Add(tube);
                db.SaveChanges();
            }

            return(this.RedirectToAction(LoggedInHomePage));
        }
Exemplo n.º 18
0
        public IActionResult Details(int id)
        {
            if (!this.User.IsAuthenticated)
            {
                return(this.RedirectToAction(LoggedOutHomePage));
            }

            TubeDetailsViewModel tubeDetails;

            using (var db = new MeTubeDbContext())
            {
                var tube = db.Tubes.Find(id);
                if (tube == null)
                {
                    return(this.RedirectToAction(LoggedInHomePage));
                }

                tube.Views++;
                db.SaveChanges();

                tubeDetails = new TubeDetailsViewModel
                {
                    Title       = tube.Title,
                    Author      = tube.Author,
                    Description = tube.Description,
                    YoutubeId   = tube.YoutubeId,
                    Views       = tube.Views
                };
            }

            this.ViewData["title"]       = tubeDetails.Title;
            this.ViewData["author"]      = tubeDetails.Author;
            this.ViewData["description"] = tubeDetails.Description;
            this.ViewData["youtubeId"]   = tubeDetails.YoutubeId;
            this.ViewData["views"]       = $"{tubeDetails.Views} View{(tubeDetails.Views == 1 ? "" : "s")}";

            return(this.View());
        }
Exemplo n.º 19
0
 public BaseController()
 {
     this.Context = new MeTubeDbContext();
 }
Exemplo n.º 20
0
 protected BaseController()
 {
     DbContext = new MeTubeDbContext();
 }
Exemplo n.º 21
0
 protected BaseController()
 {
     this.Db = new MeTubeDbContext();
 }
 public TubesService()
 {
     this.db = new MeTubeDbContext();
 }
Exemplo n.º 23
0
 public DataService()
 {
     this.db = new MeTubeDbContext();
 }