コード例 #1
0
        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());
        }
コード例 #2
0
        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());
        }
コード例 #3
0
ファイル: LikesController.cs プロジェクト: jva44ka/RandomFilm
        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));
        }