Exemple #1
0
        public async Task <IActionResult> Update([FromRoute] Guid adId, [FromForm] AdUpdateModel model)
        {
            var userOwnsPost = await _adService.UserOwnsPostAsync(adId, HttpContext.GetUserId());

            if (!userOwnsPost.Success)
            {
                return(BadRequest(new { error = "You do not own this ad." }));
            }
            var update = await _adService.UpdateAdAsync(adId, model);

            if (update.Success)
            {
                return(Ok(_mapper.Map <AdDetailsModel>(update.Payload)));
            }

            return(NotFound("Such ad does not exists."));
        }
Exemple #2
0
        public async Task <PayloadResult <Ad> > UpdateAdAsync(Guid adId, AdUpdateModel adModel)
        {
            var ad = await _dataContext.Ads.FirstOrDefaultAsync(x => x.Id == adId);

            if (ad == null)
            {
                return new PayloadResult <Ad>
                       {
                           Errors = new[] { $"Ad with Id '{adId}' does not exists." },
                       }
            }
            ;

            ad.Title          = adModel.Title ?? ad.Title;
            ad.Author         = adModel.Author ?? ad.Author;
            ad.Content        = adModel.Content ?? ad.Content;
            ad.BookName       = adModel.BookName ?? ad.BookName;
            ad.Price          = adModel.Price;
            ad.LastEditedDate = DateTime.UtcNow;

            ad.User = await _dataContext.Users.FindAsync(ad.UserId);

            var updated = await _dataContext.SaveChangesAsync() > 0;

            if (!updated)
            {
                return(new PayloadResult <Ad>
                {
                    Errors = new[] { "Could not save changes." },
                    Success = false
                });
            }
            return(new PayloadResult <Ad>
            {
                Payload = ad,
                Success = true
            });
        }