示例#1
0
        public IHttpActionResult UpdateNote(int id, Note note)
        {
            //if (!ModelState.IsValid)
            //{
            //    return BadRequest(ModelState);
            //}

            if (id != note.Id)
            {
                var errorString = string.Format($"{id} not {note.Id}");
                return(BadRequest(errorString));
            }

            db.Entry(note).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!NoteExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
示例#2
0
        public void CreateNote([FromForm] Note noteFromClient)
        {
            Console.WriteLine("обрабатываю HttpPost-запрос api/notes/create входные данные: \n" +
                              $"Title='{noteFromClient.Title}', " +
                              $"Content='{noteFromClient.Content}'");

            var title   = string.IsNullOrEmpty(noteFromClient.Title) ? null : noteFromClient.Title;
            var newNote = new Note(title, noteFromClient.Content);

            _db.Notes.Add(newNote);
            _db.SaveChanges();
        }
示例#3
0
        public IActionResult Profile(AddNoteBindingModel model)
        {
            // Validate model
            if (!this.IsValidModel(model))
            {
                return(View());
            }

            using (var context = new NotesDbContext())
            {
                // Check if user exists
                var foundUser = context.Users.Any(u => u.Id == model.UserId);
                if (!foundUser)
                {
                    return(Redirect(UsersAllPath));
                }

                // Add note to db
                var note = new Note
                {
                    Title   = model.Title,
                    Content = model.Content,
                    OwnerId = model.UserId
                };

                context.Notes.Add(note);
                context.SaveChanges();
            }

            return(Profile(model.UserId));
        }
示例#4
0
        public IActionResult Register(RegisterUserBindingModel model)
        {
            // Validate model
            if (!this.IsValidModel(model))
            {
                return(View());
            }

            // Add user to db
            using (var context = new NotesDbContext())
            {
                var user = new User
                {
                    Username = model.Username,
                    Password = model.Password
                };

                context.Users.Add(user);
                context.SaveChanges();
            }

            // SignIn user
            this.SignIn(model.Username);

            return(Redirect(HomePath));
        }
示例#5
0
        public IActionResult Register(RegisterBindingModel model)
        {
            if (!this.IsValidModel(model))
            {
                return(this.View());
            }
            using (var db = new NotesDbContext())
            {
                if (db.Users.Any(u => u.Username == model.Username))
                {
                    throw new ArgumentException("Username already taken!");
                }

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

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

            return(this.View());
        }
示例#6
0
        public IActionResult Login(LoginUserBindingModel loginUserBindingModel)
        {
            if (loginUserBindingModel.Username == "" || loginUserBindingModel.Password == "")
            {
                this.ViewModel["message"] = "Empty input fields !";
                return(View());
            }

            using (var context = new NotesDbContext())
            {
                var foundUser = context
                                .Users
                                .FirstOrDefault(u => u.Username == loginUserBindingModel.Username &&
                                                u.Password == PasswordUtilities.GenerateHash256(loginUserBindingModel.Password));

                if (foundUser == null)
                {
                    this.ViewModel["message"] = "Invalid Username or password !";
                    return(View());
                }

                //we add it to the session storage
                context.SaveChanges();
                this.SignIn(foundUser.Username);
            }

            return(Redirect("/home/index"));
        }
        public void Add(NoteViewModel model)
        {
            using (var context = new NotesDbContext()){
                var note = Mapper.NoteViewModelToNote(model);
                note.NoteCategories = mapStringCategoriesToNoteCategory(context, model.Categories, note);

                context.Notes.Add(note);
                context.SaveChanges();
            }
        }
示例#8
0
        public IActionResult Register(RegisterUserBindingModel model)
        {
            var user = new User(model.Username, model.Password);

            using (var context = new NotesDbContext())
            {
                context.Users.Add(user);
                context.SaveChanges();
            }

            return(View());
        }
示例#9
0
        public IActionResult Post([FromBody] Note model)
        {
            try
            {
                context.Add(model);
                context.SaveChanges();

                return(Created($"/api/notes/{model.Id}", model));
            }
            catch (Exception ex) {
                return(BadRequest("Failed to post a note"));
            }
        }
        public void Delete(int id)
        {
            using (var context = new NotesDbContext()){
                Note original = context.Notes.Find(id);
                if (original == null)
                {
                    return;
                }

                context.Notes.Remove(original);
                context.SaveChanges();
            }
        }
示例#11
0
        public IActionResult <UserProfileViewModel> Profile(AddNoteBindingModel model)
        {
            using (var context = new NotesDbContext())
            {
                var user = context.Users.Include(u => u.Notes).First(u => u.Id == model.UserId);
                var note = new Note(model.Title, model.Content);

                user.Notes.Add(note);
                context.SaveChanges();
            };

            return(Profile(model.UserId));
        }
示例#12
0
        public void Save(string username, string password)
        {
            using (var ctx = new NotesDbContext())
            {
                ctx.Users.Add(new User
                {
                    Username = username,
                    Password = password
                });

                ctx.SaveChanges();
            }
        }
示例#13
0
        public void Create(string title, string content, int userId)
        {
            using (var db = new NotesDbContext())
            {
                var note = new Note
                {
                    OwnerId = userId,
                    Title   = title,
                    Content = content
                };

                db.Add(note);
                db.SaveChanges();
            }
        }
示例#14
0
        public void Create(string username, string password)
        {
            using (var db = new NotesDbContext())
            {
                var user = new User
                {
                    Username = username,
                    Password = password
                };

                db.Add(user);

                db.SaveChanges();
            }
        }
        public IActionResult Register(RegisterUserBindingModel model)
        {
            var user = new User()
            {
                Username = model.Username,
                Password = model.Password
            };

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

            return(View());
        }
示例#16
0
        public void AddNoteToUser(int userId, string title, string content)
        {
            using (var db = new NotesDbContext())
            {
                User user = db.Users.Find(userId);

                Note note = new Note
                {
                    Title   = title,
                    Content = content
                };

                user.Notes.Add(note);
                db.SaveChanges();
            }
        }
        public IActionResult Register(RegisterUserBindingModel registerUserBindingModel)
        {
            var user = new User()
            {
                Username = registerUserBindingModel.Username,
                Password = PasswordUtilities.GenerateHash256(registerUserBindingModel.Password)
            };

            using (var context = new NotesDbContext())
            {
                context.Users.Add(user);
                context.SaveChanges();
            }

            return(View());
        }
示例#18
0
        public IActionResult Login(LoginViewModel model)
        {
            using (var context = new NotesDbContext())
            {
                var foundUser = context.Users.FirstOrDefault(u => u.Username == model.Username);

                if (foundUser == null)
                {
                    return(Redirect("/users/login"));
                }

                context.SaveChanges();
                this.SignIn(foundUser.Username);
            }

            return(Redirect("/home/index"));
        }
示例#19
0
 public bool SaveNote(INote note)
 {
     try
     {
         Note NoteToSave = note as Note;
         using (NotesDbContext notesDb = new NotesDbContext())
         {
             notesDb.Notes.Add(NoteToSave);
             notesDb.SaveChanges();
             return(true);
         }
     }
     catch (Exception)
     {
         return(false);
     }
 }
示例#20
0
        public IActionResult Login(LoginUserBindingModel model)
        {
            using (var db = new NotesDbContext())
            {
                var foundUser = db.Users.FirstOrDefault(x => x.Username == model.Username);

                if (foundUser == null)
                {
                    return(RedirectToAction(LoginRoute));
                }

                db.SaveChanges();
                this.SignIn(foundUser.Username);
            }

            return(RedirectToAction(HomeRoute));
        }
        public IActionResult <UsersProfileViewModel> Profile(AddNoteBindingModel model)
        {
            using (var db = new NotesDbContext())
            {
                var user = db.Users.Find(model.UserId);

                var note = new Note
                {
                    Title   = model.Title,
                    Content = model.Content
                };
                user.Notes.Add(note);
                db.SaveChanges();
            }

            return(Profile(model.UserId));
        }
示例#22
0
        public IActionResult Register(RegisterUserBindingModel registerUserBindingModel)
        {
            if (!this.IsValidModel(registerUserBindingModel))
            {
                this.ViewModel["message"] = "<p>Something went wrong !</p>";
                return(View());
            }

            if (registerUserBindingModel.Password == "" ||
                registerUserBindingModel.ConfirmPassword == "" ||
                registerUserBindingModel.Username == "")
            {
                this.ViewModel["message"] = "<p>Empty input fields !</p>";
                return(View());
            }

            if (registerUserBindingModel.Password != registerUserBindingModel.ConfirmPassword)
            {
                this.ViewModel["message"] = "<p>Passwords must match !</p>";
                return(View());
            }

            var user = new User()
            {
                Username = registerUserBindingModel.Username,
                Password = PasswordUtilities.GenerateHash256(registerUserBindingModel.Password)
            };

            //add user to db
            using (var context = new NotesDbContext())
            {
                if (context.Users.Any(u => u.Username == registerUserBindingModel.Username))
                {
                    this.ViewModel["message"] = "<p>Username is taken !</p>";
                    return(View());
                }

                context.Users.Add(user);
                context.SaveChanges();
            }

            this.SignIn(user.Username);

            return(Redirect("/users/login"));
        }
示例#23
0
        public IActionResult Register(RegisterUserBindingModel model)
        {
            string hashedPassword = PasswordUtilities.GenerateHash(model.Password);

            User userToRegister = new User()
            {
                Username = model.Username,
                Password = hashedPassword
            };

            using (var db = new NotesDbContext())
            {
                db.Users.Add(userToRegister);
                db.SaveChanges();
            }

            return(View());
        }
        public IActionResult <UserProfileViewModel> Profile(AddNoteBindingModel model)
        {
            // Add note to db
            using (var context = new NotesDbContext())
            {
                var user = context.Users.Find(model.UserId);
                var note = new Note
                {
                    Title   = model.Title,
                    Content = model.Content
                };

                user.Notes.Add(note); // !!!
                context.SaveChanges();
            }

            return(Profile(model.UserId));
        }
示例#25
0
        public IActionResult Profile(AddNoteBindingModel model)
        {
            using (var context = new NotesDbContext())
            {
                var user = context.Users.Find(model.UserId);

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

                user.Notes.Add(note);
                context.SaveChanges();
            }

            return(this.Profile(model.UserId));
        }
示例#26
0
 public bool DeleteNote(INote note)
 {
     try
     {
         using (NotesDbContext notesDb = new NotesDbContext())
         {
             Note SelectedNote = notesDb.Notes.FirstOrDefault(
                 (NOTE) => (NOTE.Title == note.Title) && (NOTE.Desc == note.Desc)
                 );
             notesDb.Notes.Remove(SelectedNote);
             notesDb.SaveChanges();
         }
         return(true);
     }
     catch (Exception)
     {
         return(false);
     }
 }
示例#27
0
        public IActionResult Profile(AddNoteBindingModel model)
        {
            using (var db = new NotesDbContext())
            {
                User user = db.Users.FirstOrDefault(u => u.Id == model.UserId);

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

                user.Notes.Add(note);

                db.SaveChanges();
            }

            return(this.Profile(model.UserId));
        }
示例#28
0
        public IViewable Profile(AddNoteBindingModel model)
        {
            using (var context = new NotesDbContext())
            {
                var note = new Note()
                {
                    Title   = model.Title,
                    Content = model.Content,
                    Owner   = context.Users.Find(model.UserId),
                };

                context.Notes.Add(note);
                context.Users.Find(model.UserId).Notes.Add(note);

                context.SaveChanges();
            };

            return(Profile(model.UserId));
        }
示例#29
0
        public IActionResult Register(RegisterUserBindingModel registerUserBinding)
        {
            if (!this.IsValidModel(registerUserBinding))
            {
                return(View());
            }

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

            using (var context = new NotesDbContext())
            {
                context.Users.Add(user);
                context.SaveChanges();
            }

            return(RedirectToAction("/home/index"));
        }
示例#30
0
        public IActionResult Register(RegisterUserBindingModel model)
        {
            using (var db = new NotesDbContext())
            {
                if (db.Users.Any(u => u.Username == model.Username))
                {
                    return(this.Register());
                }

                User user = new User
                {
                    Username = model.Username,
                    Password = model.Password
                };

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

            return(View());
        }