public async Task <ActionResult <PlaceOwnerFullResponse> > PostPlaceOwner(PlaceOwnerRequest placeOwnerRequest, long id) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (!IsAuthorized(id)) { return(Unauthorized()); } var user = await _context.Users.FirstOrDefaultAsync(u => u.Username.Equals(placeOwnerRequest.Username, StringComparison.OrdinalIgnoreCase)); if (user == null) { return(NotFound("User not found")); } var placeOwner = new PlaceOwner { UserID = user.ID, PlaceID = id }; _context.PlaceOwners.Add(placeOwner); await _context.SaveChangesAsync(); return(_mapper.Map <PlaceOwnerFullResponse>(placeOwner)); }
public async Task <ActionResult <PlaceResponse> > PostPlace(PlaceRequest placeRequest) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } //var id = Convert.ToInt64(User.FindFirst(ClaimTypes.NameIdentifier).Value); var place = _mapper.Map <Place>(placeRequest); _context.Places.Add(place); await _context.SaveChangesAsync(); var placeOwner = new PlaceOwner { PlaceID = place.ID, UserID = CurrentUserId }; _context.PlaceOwners.Add(placeOwner); await _context.SaveChangesAsync(); place = await _context.Places .Include(p => p.OpeningTimes) .Include(p => p.PlaceType) .Include(p => p.Owners) .Include(p => p.Images) .FirstOrDefaultAsync(p => p.ID == place.ID); var placeResponse = _mapper.Map <PlaceResponse>(place); return(CreatedAtAction(nameof(GetPlace), new { id = place.ID }, placeResponse)); }