public async Task <PayloadResult <Ad> > CreateAdAsync(string userId, AdCreationModel adModel) { var ad = _mapper.Map <AdCreationModel, Ad>(adModel); ad.UserId = userId; ad.User = await _dataContext.Users.FindAsync(userId); ad.Category = await _dataContext.Categories.FirstOrDefaultAsync(x => x.Id == adModel.CategoryId); await _dataContext.AddAsync(ad); var success = await _dataContext.SaveChangesAsync() > 0; if (!success) { return(new PayloadResult <Ad> { Errors = new[] { "Could not save changes." }, Success = false }); } return(new PayloadResult <Ad> { Payload = ad }); }
public async Task <IActionResult> Create([FromForm] AdCreationModel model) { var create = await _adService.CreateAdAsync(HttpContext.GetUserId(), model); var locationUri = _uriService.GetAdUri(create.Payload.Id.ToString()); return(Created(locationUri, _mapper.Map <AdDetailsModel>(create.Payload))); }