Пример #1
0
        public IActionResult Repository()
        {
            if (!this.User.IsAuthenticated)
            {
                return(new RedirectResult("/home/index"));
            }

            string username = this.User.Name;

            using (var db = new SimpleMVCDbContext())
            {
                var user = db.Users.FirstOrDefault(u => u.Username == username);

                if (user == null)
                {
                    return(this.Login("Sorry! User authentication error. Please try again!"));
                }

                var notes = db.Notes.Where(n => n.UserId == user.Id && n.IsDeleted == false).ToList();

                StringBuilder sb = new StringBuilder();

                foreach (var note in notes)
                {
                    sb.AppendLine(string.Format(PartialViews.NoteView, note.Id, note.Title, note.Content));
                }

                string result = sb.ToString();

                this.Model["allNotes"] = result;
            }

            return(View());
        }
Пример #2
0
        public IActionResult Register(RegisterUserBindingModel model)
        {
            if (!this.IsValidModel(model))
            {
                this.Model["message"] = "Invalid data in the fields!";

                return(this.View());
            }
            string username = model.Username;
            string passHash = PasswordUtilities.GetHash(model.Password);

            User user = new User(username, passHash);

            using (var db = new SimpleMVCDbContext())
            {
                if (!db.Users.Select(u => u.Username).Contains(username))
                {
                    db.Users.Add(user);

                    db.SaveChanges();

                    return(this.Login("Successful registration!"));
                }

                this.Model["message"] = "Username is allready taken!";
            }

            return(this.View());
        }
Пример #3
0
        public IActionResult New(AddNoteBindingModel model)
        {
            if (!this.IsValidModel(model))
            {
                this.Model["message"] = "Can't save invalid note!";
            }
            else
            {
                using (var db = new SimpleMVCDbContext())
                {
                    var user = db.Users.FirstOrDefault(u => u.Username == this.User.Name);

                    if (user == null)
                    {
                        this.Model["message"] = "No such user!";

                        return(View());
                    }

                    var note = new Note(model.Title, model.Content, user.Id);

                    user.Notes.Add(note);

                    db.SaveChanges();
                }

                this.Model["message"] = "Saved";
            }

            return(this.View());
        }
Пример #4
0
        public static void Main()
        {
            using (var dbContext = new SimpleMVCDbContext())
            {
                dbContext.Database.Migrate();
            }

            WebServer server = new WebServer(55000, new ControllerRouter());

            MvcEngine.Run(server);
        }
Пример #5
0
        public IActionResult Delete(int Id)
        {
            using (var db = new SimpleMVCDbContext())
            {
                var note = db.Notes.Find(Id);

                note.IsDeleted = true;

                db.SaveChanges();
            }

            return(new RedirectResult("/user/repository"));
        }
Пример #6
0
        public IActionResult Edit(EditNoteBindingModel model)
        {
            using (var db = new SimpleMVCDbContext())
            {
                var note = db.Notes.Find(model.Id);

                note.Title   = model.Title;
                note.Content = model.Content;

                db.SaveChanges();
            }
            return(new RedirectResult("/user/repository"));
        }
Пример #7
0
        public IActionResult Edit(int Id)
        {
            this.Model["message"] = "Editing";

            using (var db = new SimpleMVCDbContext())
            {
                var note = db.Notes.Find(Id);

                this.Model["Id"]      = note.Id.ToString();
                this.Model["Title"]   = note.Title;
                this.Model["Content"] = note.Content;
            }

            return(this.View());
        }
Пример #8
0
        public IActionResult <AllUsernamesViewModel> All()
        {
            List <string> usernames = null;

            using (var db = new SimpleMVCDbContext())
            {
                usernames = db.Users.Select(u => u.Username).ToList();
            }

            var viewModel = new AllUsernamesViewModel()
            {
                Usernames = usernames
            };

            return(View(viewModel));
        }
Пример #9
0
        public IActionResult Register(RegisterUserBindingModel model)
        {
            string username = model.Username;
            string passHash = PasswordUtilities.GetHash(model.Password);

            User user = new User(username, passHash);

            using (var db = new SimpleMVCDbContext())
            {
                db.Users.Add(user);

                db.SaveChanges();
            }

            return(View());
        }
Пример #10
0
        public static void Main()
        {
            using (var dbContext = new SimpleMVCDbContext())
            {
                dbContext.Database.Migrate();
            }

            int port = 55000;

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

            MvcEngine.Run(server);
        }
Пример #11
0
        public IActionResult <UserProfileViewModel> Profile(AddNoteBindingModel model)
        {
            using (var db = new SimpleMVCDbContext())
            {
                User user = db.Users.Find(model.UserId);

                Note note = new Note()
                {
                    Title = model.Title, Content = model.Content
                };

                user.Notes.Add(note);

                db.SaveChanges();
            }

            return(this.Profile(model.UserId));
        }
Пример #12
0
        public IActionResult <UserProfileViewModel> Profile(int id)
        {
            User        user  = null;
            List <Note> notes = null;

            using (var db = new SimpleMVCDbContext())
            {
                user  = db.Users.FirstOrDefault(u => u.Id == id);
                notes = db.Notes.Where(n => n.UserId == id).ToList();
            }

            var viewModel = new UserProfileViewModel()
            {
                UserId   = user.Id,
                Username = user.Username,
                Notes    = notes.Select(n => new NoteViewModel(n.Title, n.Content))
            };

            return(View(viewModel));
        }
Пример #13
0
        public IActionResult Login(RegisterUserBindingModel model)
        {
            string username = model.Username;

            string passHash = PasswordUtilities.GetHash(model.Password);

            using (var db = new SimpleMVCDbContext())
            {
                User user = db.Users.FirstOrDefault(u => u.Username == username && u.PasswordHash == passHash);

                if (user == null)
                {
                    this.Model["message"] = "Invalid username or password!";

                    return(View());
                }

                this.SignIn(user.Username);
            }

            return(new RedirectResult("/home/index"));
        }