示例#1
0
        public async Task <IActionResult> PutNote(long id, NoteDTO noteDTO)
        {
            if (id != noteDTO.Id)
            {
                return(BadRequest());
            }

            var note = await _context.Notes.FindAsync(id);

            if (note == null)
            {
                return(NotFound());
            }

            note.Title = noteDTO.Title;
            note.Body  = noteDTO.Body;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!await NoteExistsAsync(id))
                {
                    return(NotFound());
                }

                throw;
            }

            return(NoContent());
        }
示例#2
0
        public async Task <IActionResult> PutUser(UserDTO userDTO)
        {
            var email = User.Identity.Name;
            var user  = await _context.Users.SingleAsync(u => u.Email == email);

            if (user == null)
            {
                return(NotFound());
            }

            if (user.Id != userDTO.Id)
            {
                return(BadRequest());
            }

            user.Email    = userDTO.Email;
            user.Username = userDTO.Username;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!await _userService.IsAnExistingUserAsync(email))
                {
                    return(NotFound());
                }

                throw;
            }

            return(NoContent());
        }
示例#3
0
        public async Task <RefreshToken> CreateTokenAsync(string email, int expiry, DateTime now)
        {
            var refreshToken = new RefreshToken
            {
                Email       = email,
                TokenString = await GenerateRefreshTokenString(),
                ExpireAt    = now.AddMinutes(expiry)
            };

            var entry = await _context.RefreshTokens.AddAsync(refreshToken);

            await _context.SaveChangesAsync();

            return(entry.Entity);
        }
示例#4
0
        public async Task <IActionResult> PutNote(long id, NoteDTO noteDTO)
        {
            if (id != noteDTO.Id)
            {
                return(BadRequest());
            }

            var user = await _userService.FindUserByEmailAsync(User.Identity.Name);

            if (user == null)
            {
                return(BadRequest());
            }

            var note = await _context.Notes.FindAsync(id);

            if (note == null)
            {
                return(BadRequest());
            }

            if (note.UserId != user.Id)
            {
                return(Forbid());
            }

            note.Title = noteDTO.Title;
            note.Body  = noteDTO.Body;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!NoteExists(id))
                {
                    return(NotFound());
                }

                throw;
            }

            return(NoContent());
        }