public async Task <ActionResult> CreateAccount([FromBody] Account account) { // Валидация полей (в емейле собака и точка, в пароле заглавные и цифры и т.д.) // Создание нового аккаунта(user) на основе присланых данных (account) Account newAccount = new Account() { Email = account.Email, Login = account.Login, Password = account.Password, Role = await db.Roles.FirstOrDefaultAsync(x => x.Name == "user"), }; db.Accounts.Add(newAccount); try { await db.SaveChangesAsync(); } catch (DbUpdateException) { if (AccountExists(newAccount.Id)) { return(Conflict()); } else { throw; } } return(Ok()); }
public async Task <IActionResult> PutFilm(int id, Film film) { if (id != film.Id) { return(BadRequest()); } db.Entry(film).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!FilmExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <Like> > PostLike([FromBody] Like requestLike) { //Лайк уже существует? if (db.Likes.FirstOrDefault(x => (x.FilmId == requestLike.FilmId) && (x.AccountId == db.Accounts.FirstOrDefault(y => y.Login == HttpContext.User.Identity.Name).Id)) != null) { //Пользователь пытается поставить существующий лайк return(Conflict()); } Like like = new Like { FilmId = requestLike.FilmId, AccountId = db.Accounts.FirstOrDefault(x => x.Login == HttpContext.User.Identity.Name).Id, LikeOrDislike = requestLike.LikeOrDislike, }; db.Likes.Add(like); await db.SaveChangesAsync(); return(CreatedAtAction("GetLike", new { id = like.Id }, like)); }