public async Task <ActionResult> Update(string advertisementId, [FromBody] UpdateAdvertisementRequestModel model) { var userId = this.User.GetId(); var updateRequest = await this.advertisementsService .UpdateAsync(userId, advertisementId, model); if (!updateRequest.Success) { return(this.BadRequest(new ErrorsResponseModel { Errors = updateRequest.Errors, })); } return(this.Ok()); }
public async Task <ResultModel <bool> > UpdateAsync(string userId, string advertisementId, UpdateAdvertisementRequestModel model) { var advertisement = await this.GetByIdAsync(advertisementId); if (advertisement == null) { return(new ResultModel <bool> { Errors = new string[] { Errors.InvalidAdvertisementId }, }); } if (advertisement.AuthorId == userId || await this.usersService.IsAdminAsync(userId)) { advertisement.Title = model.Title; advertisement.Description = model.Description; advertisement.ModifiedOn = DateTime.UtcNow; foreach (var imageUrl in model.ImageURLs) { await this.imagesService.CreateAsync(imageUrl, advertisementId); } var editCarRequest = await this.carsService.UpdateAsync(userId, advertisement.CarId, model.Car); if (!editCarRequest.Success) { return(new ResultModel <bool> { Errors = editCarRequest.Errors, }); } this.dbContext.Advertisements.Update(advertisement); await this.dbContext.SaveChangesAsync(); return(new ResultModel <bool> { Success = true, }); } return(new ResultModel <bool> { Errors = new string[] { Errors.NoPermissionToEditAdvertisement }, }); }