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.")); }
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 }); }