public async Task <IActionResult> CreateMessage(int propertyId, MessageForCreationDto messageForCreationDto) { messageForCreationDto.PropertyId = propertyId; var sender = await _repo.GetUser(messageForCreationDto.SenderId); if (sender == null) { return(BadRequest("Cound not find sender")); } var property = await _repo.GetProperty(messageForCreationDto.PropertyId); if (property == null) { return(BadRequest("Cound not find property")); } var message = _mapper.Map <Message>(messageForCreationDto); message.Sender = sender; _repo.Add(message); if (await _repo.SaveAll()) { var messageToRetun = _mapper.Map <MessageToReturnDto>(message); return(CreatedAtRoute("GetMessage", new { propertyId, id = message.Id }, messageToRetun)); } throw new Exception("Creation the message failed on save"); }
public async Task <IActionResult> RentProperty(int id, int userId) { var rent = await _repo.GetRent(userId, id); if (rent != null) { return(BadRequest("You already rent this property")); } if (await _repo.GetUser(userId) == null) { return(NotFound()); } rent = new Models.Rent { UserId = userId, PropertyId = id }; _repo.Add <Models.Rent>(rent); if (await _repo.SaveAll()) { return(Ok()); } return(BadRequest("Failed to rent property")); }