示例#1
0
        public async Task <IHttpActionResult> PostProfileWord(ProfileWordDTO profileWord)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var userId = User.Identity.GetUserId();

            if (string.IsNullOrEmpty(profileWord.ProfileId))
            {
                profileWord.ProfileId = userId;
            }
            if (profileWord.ProfileId != userId)
            {
                return(Unauthorized());
            }

            var profWord = AutoMapper.Mapper.Map <ProfileWord>(profileWord);

            db.ProfileWords.Add(profWord);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = profWord.Id },
                                  AutoMapper.Mapper.Map <ProfileWordDTO>(profWord)));
        }
示例#2
0
        public async Task <IHttpActionResult> GetProfileWord(int id)
        {
            var            userId      = User.Identity.GetUserId();
            ProfileWordDTO profileWord = AutoMapper.Mapper.Map <ProfileWordDTO>(await db.ProfileWords
                                                                                .Where(pw => pw.Id == id && pw.ProfileId == userId)
                                                                                .FirstOrDefaultAsync());

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

            return(Ok(profileWord));
        }
示例#3
0
        public async Task <IHttpActionResult> PutProfileWord(int id, ProfileWordDTO profileWord)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != profileWord.Id)
            {
                return(BadRequest());
            }

            var userId = User.Identity.GetUserId();

            if (string.IsNullOrEmpty(profileWord.ProfileId))
            {
                profileWord.ProfileId = userId;
            }
            if (profileWord.ProfileId != userId)
            {
                return(Unauthorized());
            }

            db.Entry(AutoMapper.Mapper.Map <ProfileWord>(profileWord)).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!ProfileWordExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }